迭代語句主要用于重復執行的程序,在 CoDeSys 中,常見的迭代語句有 FOR,REPEAT 及WHILE 語句。
FOR 循環
FOR 循環語句用于計算一個初始化序列,當某個條件為 TRUE 時,重復執行嵌套語句并計算一個迭代表達式序列,如果為 FALSE,則終止循環,具體格式如下。
FOR <變量> := <初始值> TO <目標值> {BY <步長>} DO
<語句內容>
END_FOR;
FOR 循環的執行順序如下:
計算<變量>是否在<初始值>與<目標值>的范圍內;
當<變量>小于<目標值>,執行<語句內容>;
當<變量>大于<目標值>,則不會執行<語句內容>;
當每次執行<語句內容>時,<變量>總是按照指定的步長增加其值。步長可以是任意的整數值。
如果不指定步長,則其缺省值是 1。當<變量>大于<目標值>時,退出循環。
示例:使用 FOR 循環實現 2 的五次方計算。
假設 Var1 的初始值是 1,那么循環結束后,Var1的值的為 32。
WHILE 循環
WHILE 循環與 FOR 循環使用方法類似。二者的不同之處是,WHILE 循環的結束條件可以是任意的邏輯表達式。即可以指定一個條件,當滿足該條件時,執行循環,具體格式如下。
WHILE <布爾表達式>
<語句內容> ;
END_WHILE;
WHILE 循環的執行順序如下:
? 計算<布爾表達式>的返回值。
? 當<布爾表達式>的值為 TRUE 時,重復執行<語句內容>。
? 當<布爾表達式>初始值為 FALSE,那么指令<語句內容>不會被執行,跳轉至 WHILE 語句的結尾。
注意:
如果<布爾表達式>的值始終為 TRUE,那么將會產生死循環,應當避免死循環的產生。可以通過改變循環指令的條件來避免死循環的產生。例如:利用可增減的計數器避免死循環的產生。
示例:只要計數器不為零,則始終執行循環體內的程序。
在一定的意義上,WHILE 循環比 FOR 循環的功能更加強大,這是因為在執行循環之前,
WHILE 循環不需要知道循環的次數。因此,如果清楚地知道了循環的次數,那么 FOR 循環更好,因為 FOR 循環可以避免產生死循環。
-
for
+關注
關注
0文章
44瀏覽量
15816 -
CoDeSys
+關注
關注
10文章
39瀏覽量
18660
原文標題:PLC編程中循環語句FOR和WHILE該怎么選呢?
文章出處:【微信號:PLC與自控設備,微信公眾號:PLC與自控設備】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論