关于S7 200 FOR语句中NEXT和NEXT后的复位句怎么理解的问题?看题

LD     M31.4
FOR    VW758, +1, +24
LD     M31.4
BMB    *VD750, VB700, 26
MOVW   VW714, *VD730
MOVW   VW716, *VD734
MOVW   VW718, *VD738
MOVW   VW720, *VD742
MOVW   VW722, *VD746
-D     +26, VD750
+D     +2, VD730
+D     +2, VD734
+D     +2, VD738
+D     +2, VD742
+D     +2, VD746
NEXT
R      M31.4, 1
为什么NEXT要单独放一个网络段里?
程序最后的R M31.4,1在整个程序段应该理解更合理,是所有程序循环完成后复位,还是每一次都要复位?
如果整个程序改为LAD语句,怎么才能改为LAD语句?

图片说明:

关于S7 200 FOR语句中NEXT和NEXT后的复位句怎么理解的问题?看题   

最佳答案

循环指令next结束单独放一个网络段是编程规约。
要想把上面的stl语句格式改为lad格式需要分网络段。
LD     M31.4
FOR    VW758, +1, +24
/////////////////////////////////////////
LD     M31.4
BMB    *VD750, VB700, 26
MOVW   VW714, *VD730
MOVW   VW716, *VD734
MOVW   VW718, *VD738
MOVW   VW720, *VD742
MOVW   VW722, *VD746
-D     +26, VD750
+D     +2, VD730
+D     +2, VD734
+D     +2, VD738
+D     +2, VD742
+D     +2, VD746
////////////////////////////////////
NEXT
///////////////////////////////////
R      M31.4, 1     //如果在lad格式下,这个语句为非法语句,需要在前面加一些条件,如VW758=24

提问者对于答案的评价:
谢谢,像这个里面的复位就是VW758=24对吧!不敢确认!

最佳答案作者回复:
for next指令的含义是当循环次数标记位VW758=24时,自动跳出循环体。
indx数据=final数据,循环自动结束。
当重新启动循环时,VW758里面的循环次数仍然会自动的从0次开始循环的,你仅仅需要调用循环指令,循环指令会在一个周期内循环完成,所以,循环次数尽量少用,以免整个程序的扫描周期延长,衍生出看门狗报警及程序执行周期变长带来的麻烦。

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc369250.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日
下一篇 2021年7月5日

相关推荐

发表回复

登录后才能评论