设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
西门子SCL基础教学---WHILE/REPEAT
返回列表
发新帖
[西门子]
西门子SCL基础教学---WHILE/REPEAT
[复制链接]
32129
|
0
|
2024-3-11 17:26:39
|
显示全部楼层
|
阅读模式
今天讲两个循环,while和repeat。因为这两个循环有一些共同点。所以放一起讲了。
while:while循环之前会先判断程序的给定条件,如果为true,则执行循环体内的程序,如果是flase,则不执行。
repeat:repeat循环会先执行循环体内的程序,然后判断循环给定条件,如果为true,则结束循环,如果为flase,则回到循环体开始处再一次执行循环。所以,repeat循环至少会执行一次。
while/repeat和for循环不同,for的循环次数是已知的,有起始,有结束。而while/repeat不同,它在很多情况下,循环次数是未知的。
所以,使用while循环的时候,必须要注意给定条件永远不能为true,这样会导致死循环。
反之,在使用repeat循环的时候,必须要注意循环给定条件不能永远为false,这样会导致程序死循环。
while循环示例:
声明变量a=int
#a:=0;
WHILE #a <= 9
DO
#a := #a + 1;
END_WHILE;
程序开始,给a这个变量赋值0,根据while的解释,当a小于等于9的时候,则会执行循环体内的程序,一直执行到a大于9的时候,则结束执行循环体内的程序。
repeat循环示例:
声明变量a=int
a:=0;
REPEAT
#a := #a + 1;
UNTIL #a >= 10 END_REPEAT;
程序开始,给a赋值0,根据repeat的解释,它首先会执行循环程序一次,执行完了之后,until判断,如果a小于等于10,则会再次执行循环体内的程序。如果a大于10,那么就结束执行循环程序。
由此可以看出,while和repeat的条件一直达不到,产生的结果就是这段循环体一直在执行,最终PLC的看门狗时间到,然后报错,就是我们说的,程序死循环了。
当然,循环的那两个CONTINUE和EXIT还是可以搭配使用的。具体使用方式自己根据程序使用。
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
工控亿点点
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』