PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 76|回复: 0

[西门子] 西门子 200smart程序控制指令(FOR...NEXT、JMP...LBL、STOP、WDT、...

[复制链接]
发表于 2024-7-10 19:46:46 | 显示全部楼层 |阅读模式
>

200 smart PLC程序控制指令包括循环指令、跳转指令、顺序控制指令及看门狗复位指令和停止指令。


循环指令(FOR...NEXT)
循环指令由FOR及NEXT指令组成,FOR重复开始,NEXT重复结束。需要配套一起使用。FOR....NEXT指令中间的程序称为循环体,CPU每次扫描到此处时会循环执行指令中间的程序。当一个或者多个指令(程序)需要重复执行多次时,可使用FOR循环指令,提高编程效率。



​FOR表示循环的开始。

EN为循环控制输入端。
INDX当前已经循环过的次数计数器。
INIT为计数初始值。
FINAL为循环计数终值。
NEXT表示循环结束


在指令输入端EN被激活,且INIT的值小于FINAL时,重复执行FOR和NEXT之间的循环体程序,每执行一次,INDX自加1,直至当前循环计数值大于循环计数终值时,退出循环。FOR-NEXT 循环最大嵌套深度为八层。



如下例所示,循环起始(初始值)是0,计数终值是10时,VW0最终值是11,循环的总次数=10-0+1=11次


​使用FOR循环指令时,循环起始值INIT最好从1开始,终止值假设为n,则循环次数也是n,当前循环次数INDX的最终值总比终止值FINAL大1,就是n+1。


FOR循环指令并非无限制执行次数,受CPU扫描时间影响,循环次数越多,扫描周期就会越长,200SMART最长的扫描时间是500MS,当超过最长扫描周期后CPU会报看门狗出错并停止运行CPU。所以循环次数的扫描时间不能超过500MS。每次重新执行FOR指令时,CPU会自动复位各参数,在使用过程中无需对参数进行清零赋值操作。



利用FOR循环指令找出十个寄存器数据中的最小值保存到VW200中编程案例(VW0、VW2、VW4、VW6、VW8、VW10、VW12、VW14、VW16、VW18)

​跳转指令(JMP....LBL)
PLC程序正常是周而复始从上到下执行扫描,使用JMP跳转指令后,PLC不会执行JMP...LBL之间的程序,当跳转指令不再满足时,PLC会继续扫描JMP...LBL之间的程序。


​JMP...LBL指令需要配套使用,且只能在同一POU内使用(例如不能从主程序呼叫子程序里面跳转标签或者从子程序跳转到另一个子程序标签)。JMP跳转指令的数字需要和LBL标签指令的数字对应一致。标签号可以是常数(0-255)也可以是汉字。


​跳转指令一般用于比较复杂的程序设计,使程序看起来有结构性,可以在主程序、子程序或中断例行程序中使用"跳转"指令。过多的跳转指令会降低程序的可读性。


跳转指令使用时注意事项:
1、在执行跳转指令由下往上跳转时,要注意避免出现看门狗周期时间出错。


2、在执行跳转指令之前,如果JMP...LBL指令之间的程序正在运行,此时跳转指令跳过该段程序后,不再扫描该程序段,而该程序段还在执行,所以该程序段会保持跳转执行之前的结果。执行跳转后,被跳转的程序段不再扫描,其对应的软元件的状态会保持在跳转之前的状态。


3、正在执行的程序段中含有计数器发生跳过该程序段时,计数器会停止计数,计数器当前值会保持在跳转前的计数值不会丢失。


4、正在执行的程序段中含有计时器发生跳过该程序段时,1MS和10MS的定时器会继续工作定时,计时到设定值后,定时器的位触点会发生翻转,直到计时达到32767后停止计时。100MS的定时器在跳转期间,会停止计时,当前计时值会保持在跳转发生前的状态不会丢失,跳转结束后,若定时器计时条件允许,可继续计时,但失去了准确计时的意义,所以在跳转程序段里使用定时器要慎用。
停止指令(STOP)
停止指令 STOP可以让PLC从运行模式切换到停止工作模式,立即中止用户程序的执行。STOP指令可以用在主程序、子程序和中断程序中。

​STOP指令和END指令通常在程序中用来对突发紧急事件进行处理,以避免实际生产中的重大损失。

看门狗复位指令(WDR)如果PLC的扫描时间过长导致PLC报错停机,发出扫描看门狗超时,可以在程序适当位置使用看门狗指令(WDR)来延长扫描时间防止报错停机。
​使用WDR指令可以让程序的扫描时间延长500MS。 每次执行 WDR 指令时,扫描看门狗超时时间都会复位为 500 毫秒。扫描的最大绝对持续时间为 5 秒。

GET_ERROR(获取非致命错误代码)

​将PLC的当前非致命错误代码存储在分配给 ECODE参数的位置。而PLC中的非致命错误代码将在存储后清除。用于将PLC中的报错可视化的情况下可以使用该指令。







免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-8-15 04:16 , Processed in 0.045955 second(s), 26 queries .

快速回复 返回顶部 返回列表