說明
使用“在計數循環中執行”指令,重復執行程序循環,直至運行變量不在指定的取值范圍內。
也可以嵌套程序循環。在程序循環內,可以編寫包含其它運行變量的其它程序循環。
通過指令“復查循環條件”(CONTINUE),可以終止當前連續運行的程序循環。通過指令“立即退出循環”(EXIT) 終止整個循環的執行。有關本主題的更多信息,請參見“另請參見”。
說明 有關運行次數和運行變量的信息 程序運行時無法更改運行次數。 出于性能原因,應在塊接口的“Temp”部分中聲明運行變量。此外,程序運行時不得更改運行變量。否則,該指令可能根據實施情況返回未定義結果。 |
FOR 語句的限制
編寫不會導致死循環的“安全”FOR 語句時,請遵循以下規則和限制:
FOR
END_FOR;
如果... | ... 則 | 說明 |
---|---|---|
起始值 < 結束值 | 結束值 <(PMAX 增量) | 運行變量在正方向上運行 |
起始值 > 結束值 AND 增量 < O | 結束值 >(NMAX 增量) | 運行變量在負方向上運行 |
限制
各種數據類型的限制不同:
數據類型 | PMAX | NMAX |
---|---|---|
SINT 類型的運行變量 | 127 | -128 |
INT 類型的運行變量 | 32767 | -32768 |
DINT 類型的運行變量 | 2147483647 | -2147483648 |
LINT 類型的運行變量 | 9223372036854775807 | -9223372036854775808 |
下表列出了該指令的參數:
參數 | 數據類型 | 存儲區 | 說明 | |
---|---|---|---|---|
S7-1200 | S7-1500 | |||
<執行變量> | SINT、INT、DINT | SINT、INT、DINT、LINT | I、Q、M、D、L | 執行循環時會計算其值的操作數。執行變量的數據類型將確定其它參數的數據類型。 |
<起始值> | SINT, INT, DINT | SINT、INT、DINT、LINT | I、Q、M、D、L | 表達式,在執行變量首次執行循環時,將分配表達式的值。 |
<結束值> | SINT, INT, DINT | SINT、INT、DINT、LINT | I、Q、M、D、L |
表達式,在運行程序最后一次循環時會定義表達式的值。在每個循環后都會檢查運行變量的值: 未達到結束值: 執行符合 DO 的指令 達到結束值: 最后執行一次 FOR 循環 超出結束值: 完成 FOR 循環 執行該指令期間,不允許更改結束值。 |
|
SINT, INT, DINT | SINT、INT、DINT、LINT | I、Q、M、D、L |
執行變量在每次循環后都會遞增(正增量)或遞減(負增量)其值的表達式。可以選擇指定增量的大小。如果未指定增量,則在每次循環后執行變量的值加 1。 執行該指令期間,不允許更改增量。 |
<指令> | - | - | 只有運行變量的值在取值范圍內,每次循環都就會執行的指令。取值范圍由起始值和結束值定義。 |
有關有效數據類型的更多信息,請參見“另請參見”。
示例
以下示例說明了該指令的工作原理:
SCL |
---|
FOR i := 2 TO 8 BY 2 DO "a_array[i] := "Tag_Value"*"b_array[i]"; END_FOR; |
“Tag_Value”操作數乘以“b_array”ARRAY 變量的元素 (2, 4, 6, 8)。并將計算結果讀入到“a_array”ARRAY 變量的元素 (2, 4, 6, 8) 中。
審核編輯:劉清
-
西門子
+關注
關注
94文章
3034瀏覽量
115780 -
計數器
+關注
關注
32文章
2256瀏覽量
94477 -
SCL
+關注
關注
1文章
239瀏覽量
17057 -
S7-1200
+關注
關注
11文章
331瀏覽量
17957 -
S7-1500
+關注
關注
3文章
300瀏覽量
6392
原文標題:西門子博途SCL: FOR:在計數循環中執行
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論