1.FOR 循环
对于FOR循环
而言
可以通过指令CONTINUE,可以终止当前连续运行的程序循环。
通过指令EXIT终止整个循环的执行。这些在前一章中已经提到过。
注意:
不可以使用块接口的“Temp”部分中声明运行变量,这在编译时是无效的;
FOR 语句中不允许组合使用带符号整数和不带符号整数。
使用FOR循环时,不可以使用以下的块接口方式:
使用FOR循环对于越界限制较大,越界情况一般回导致PLC报错,如下数组Data1的大小是10*[INT]而使用FOR循环时遍历数组时遍历到15超过了数组的界限:
FOR 循环使用数据限制:
[tr]数据类型上限最大值下限最大值[/tr]SINT 类型的运行变量127-128
INT 类型的运行变量32767-32768
DINT 类型的运行变量2147483647-2147483648
LINT 类型的运行变量9223372036854775807-9223372036854775808
USINT 类型的运行变量255-
UINT 类型的运行变量65535-
UDINT 类型的运行变量4294967295-
ULINT 类型的运行变量18446744073709551615-
其示例程序如下:
FOR “DATA”.i := 1 TO 10 BY 1 DO “DATA”.Data1[“DATA”.i] := “DATA”.i;END_FOR; 运行结果如下:
2.REPEAT (直到循环)
这个语句类似于UNTIL指令,在西门子给出的帮助文档中称为
“不满足条件时执行”
其实就是简单的顺序型指令。
即:重复执行程序循环,直至不满足执行条件为止。在运行过程中会先运行一次循环,然后再判断一次条件,与后面会提到的WHILE不同
当然所有循环指令都可以使用CONTINUE或者EXIT指令
REPEAT “Result” := “DATA”.i; “DATA”.i:=“DATA”.i+1;UNTIL “DATA”.i》=9END_REPEAT; “DATA”.Error
运行结果如下:
当条件满足时完成循环,结束当前循环。
3.WHILE (当型循环)
可以重复执行程序循环,直至不满足执行条件为止。在执行过程中需要先进性一次条件判断,然后进行循环。
示例程序如下:
WHILE “DATA”.i《=9 DO “Result” := “DATA”.i; “DATA”.i := “DATA”.i + 1; END_WHILE; 主要是和REPEAT 做一个区别,WHILE循环是先判断条件后执行循环,而REPEAT是先执行循环后判断条件,两者之间并没有过多的性能上的区分。
运行结果如下
1.FOR 循环
对于FOR循环
而言
可以通过指令CONTINUE,可以终止当前连续运行的程序循环。
通过指令EXIT终止整个循环的执行。这些在前一章中已经提到过。
注意:
不可以使用块接口的“Temp”部分中声明运行变量,这在编译时是无效的;
FOR 语句中不允许组合使用带符号整数和不带符号整数。
使用FOR循环时,不可以使用以下的块接口方式:
使用FOR循环对于越界限制较大,越界情况一般回导致PLC报错,如下数组Data1的大小是10*[INT]而使用FOR循环时遍历数组时遍历到15超过了数组的界限:
FOR 循环使用数据限制:
[tr]数据类型上限最大值下限最大值[/tr]SINT 类型的运行变量127-128
INT 类型的运行变量32767-32768
DINT 类型的运行变量2147483647-2147483648
LINT 类型的运行变量9223372036854775807-9223372036854775808
USINT 类型的运行变量255-
UINT 类型的运行变量65535-
UDINT 类型的运行变量4294967295-
ULINT 类型的运行变量18446744073709551615-
其示例程序如下:
FOR “DATA”.i := 1 TO 10 BY 1 DO “DATA”.Data1[“DATA”.i] := “DATA”.i;END_FOR; 运行结果如下:
2.REPEAT (直到循环)
这个语句类似于UNTIL指令,在西门子给出的帮助文档中称为
“不满足条件时执行”
其实就是简单的顺序型指令。
即:重复执行程序循环,直至不满足执行条件为止。在运行过程中会先运行一次循环,然后再判断一次条件,与后面会提到的WHILE不同
当然所有循环指令都可以使用CONTINUE或者EXIT指令
REPEAT “Result” := “DATA”.i; “DATA”.i:=“DATA”.i+1;UNTIL “DATA”.i》=9END_REPEAT; “DATA”.Error
运行结果如下:
当条件满足时完成循环,结束当前循环。
3.WHILE (当型循环)
可以重复执行程序循环,直至不满足执行条件为止。在执行过程中需要先进性一次条件判断,然后进行循环。
示例程序如下:
WHILE “DATA”.i《=9 DO “Result” := “DATA”.i; “DATA”.i := “DATA”.i + 1; END_WHILE; 主要是和REPEAT 做一个区别,WHILE循环是先判断条件后执行循环,而REPEAT是先执行循环后判断条件,两者之间并没有过多的性能上的区分。
运行结果如下
举报