迭代語句主要用于重復(fù)執(zhí)行的程序,在 CoDeSys 中,常見的迭代語句有 FOR,REPEAT 及WHILE 語句。
FOR 循環(huán)
FOR 循環(huán)語句用于計算一個初始化序列,當某個條件為 TRUE 時,重復(fù)執(zhí)行嵌套語句并計算一個迭代表達式序列,如果為 FALSE,則終止循環(huán),具體格式如下。
FOR <變量> := <初始值> TO <目標值> {BY <步長>} DO
<語句內(nèi)容>
END_FOR;
FOR 循環(huán)的執(zhí)行順序如下:
計算<變量>是否在<初始值>與<目標值>的范圍內(nèi);
當<變量>小于<目標值>,執(zhí)行<語句內(nèi)容>;
當<變量>大于<目標值>,則不會執(zhí)行<語句內(nèi)容>;
當每次執(zhí)行<語句內(nèi)容>時,<變量>總是按照指定的步長增加其值。步長可以是任意的整數(shù)值。
如果不指定步長,則其缺省值是 1。當<變量>大于<目標值>時,退出循環(huán)。
示例:使用 FOR 循環(huán)實現(xiàn) 2 的五次方計算。

假設(shè) Var1 的初始值是 1,那么循環(huán)結(jié)束后,Var1的值的為 32。
WHILE 循環(huán)
WHILE 循環(huán)與 FOR 循環(huán)使用方法類似。二者的不同之處是,WHILE 循環(huán)的結(jié)束條件可以是任意的邏輯表達式。即可以指定一個條件,當滿足該條件時,執(zhí)行循環(huán),具體格式如下。
WHILE <布爾表達式>
<語句內(nèi)容> ;
END_WHILE;
WHILE 循環(huán)的執(zhí)行順序如下:
? 計算<布爾表達式>的返回值。
? 當<布爾表達式>的值為 TRUE 時,重復(fù)執(zhí)行<語句內(nèi)容>。
? 當<布爾表達式>初始值為 FALSE,那么指令<語句內(nèi)容>不會被執(zhí)行,跳轉(zhuǎn)至 WHILE 語句的結(jié)尾。

注意:
如果<布爾表達式>的值始終為 TRUE,那么將會產(chǎn)生死循環(huán),應(yīng)當避免死循環(huán)的產(chǎn)生??梢酝ㄟ^改變循環(huán)指令的條件來避免死循環(huán)的產(chǎn)生。例如:利用可增減的計數(shù)器避免死循環(huán)的產(chǎn)生。
示例:只要計數(shù)器不為零,則始終執(zhí)行循環(huán)體內(nèi)的程序。

在一定的意義上,WHILE 循環(huán)比 FOR 循環(huán)的功能更加強大,這是因為在執(zhí)行循環(huán)之前,
WHILE 循環(huán)不需要知道循環(huán)的次數(shù)。因此,如果清楚地知道了循環(huán)的次數(shù),那么 FOR 循環(huán)更好,因為 FOR 循環(huán)可以避免產(chǎn)生死循環(huán)。
-
for
+關(guān)注
關(guān)注
0文章
44瀏覽量
16213 -
CoDeSys
+關(guān)注
關(guān)注
11文章
46瀏覽量
19416
原文標題:PLC編程中循環(huán)語句FOR和WHILE該怎么選呢?
文章出處:【微信號:PLC與自控設(shè)備,微信公眾號:PLC與自控設(shè)備】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
人工智能行業(yè)如何使用for循環(huán)語句進行循環(huán)
基礎(chǔ)篇3:掌握Python中的條件語句與循環(huán)
《ESP32S3 Arduino開發(fā)指南》第三章 C/C++語言基礎(chǔ)
詳解TIA Portal SCL編程語言中的IF語句
深入理解C語言:C語言循環(huán)控制
循環(huán)水設(shè)備PLC數(shù)據(jù)采集解決方案
PLC應(yīng)用技巧,輕松解決PLC故障
技術(shù)干貨驛站 ▏深入理解C語言:嵌套循環(huán)與循環(huán)控制的底層原理
三菱PLC編程語言解析
深入理解C語言:循環(huán)語句的應(yīng)用與優(yōu)化技巧

PLC編程中循環(huán)語句FOR和WHILE如何選擇
評論