小弟在做一个除尘控制程序,控制提升阀和脉冲阀动作,提升阀组和脉冲阀组各做一个循环,提升阀动作循环嵌套脉冲阀动作循环,想用FOR NEXT来做,或者指针来做,一直没有好的思路,请各位大神指点一下吧。
Network 1 // 网络标题
// 网络注释
LD M0.1
FOR VW0, 1, 3
Network 2
LD M0.2
TON T101, 100
Network 3
LD T101
= M0.3
Network 4
NEXT
Network 5
LD M0.4
= M0.5
做了一个测试程序,发现T101始终等不到延时循环就结束了。
最佳答案
建议里仔细看看帮助里关于定时器的内容,100ms分辨率的定时器,不应该在一个扫描周期里多次执行,所以不应该放在循环里,以下内容摘自帮助
100毫秒分辨率
100毫秒定时器记录自现用100毫秒定时器上一次更新以来100毫秒定时器间隔的数目。这种定时器的更新方法是在执行定时器指令时以当前值加上积累的100毫秒间隔的数目(自前一次扫描开始算起)。
只有在执行定时器指令时才对100毫秒定时器的当前值进行更新。因此,如果启用了100毫秒定时器但并未对各扫描循环执行定时器指令,则仍不能更新定时器当前值并将丧失时间。同样,如果在单个扫描循环内多次执行100毫秒定时器指令,将向定时器的当前值多次增加100毫秒间隔数,赢得时间。只有在每次扫描循环仅仅执行一次定时器指令时,才应该使用100毫秒定时器。
因为可在100毫秒内的任意时刻启动定时器,预设值必须设为比最小要求定时器间隔大一个时间间隔。例如,使用100毫秒定时器时,为了保证时间间隔至少为2100毫秒,则预设时间值应设为22。
提问者对于答案的评价:
谢谢两位的回答,让我看到自己的盲点。
移位指令我已经开始用了。
关键的一点是:for next 是在一个扫描周期内执行完么?
楼下的指点也很对,不好意思不能同时给两个人加分。赞一个。
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc221372.html