說明
使用“在計數循環中執行”指令,重復執行程序循環,直至運行變量不在指定的取值范圍內。
也可以嵌套程序循環。在程序循環內,可以編寫包含其它運行變量的其它程序循環。
通過指令“復查循環條件”(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) 中。
審核編輯:劉清
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
西門子
+關注
關注
98文章
3312瀏覽量
120375 -
計數器
+關注
關注
32文章
2316瀏覽量
98176 -
SCL
+關注
關注
1文章
244瀏覽量
18016 -
S7-1200
+關注
關注
11文章
335瀏覽量
19539 -
S7-1500
+關注
關注
3文章
302瀏覽量
7345
原文標題:西門子博途SCL: FOR:在計數循環中執行
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
西門子PLC編程軟件博途下載
西門子PLC編程軟件博途TIA V13 SP1 SIMATIC_WinCC_Runtime_Professional_SP1_for_V13---江西工控論壇有下載密碼www.jx-gongkong.com
發表于 03-01 11:04
?78次下載
西門子博途SCL:WHILE:滿足條件時執行
使用“滿足條件時執行”指令可以重復執行程序循環,直至不滿足執行條件為止。該條件是結果為布爾值(TRUE 或 FALSE)的表達式。可以將邏輯表達式或比較表達式作為條件。
西門子博途SCL: FOR:在計數循環中執行
評論