network1
LD SM0.1
MOVW 0, VW0
network2
LD I0.2
TON T37, +50
network3
LD T37
= Q0.0
MOVW 0, T37
INCW VW0
当I0.2接通时,计数到49又重新计数,T37不会被置位,network3中的代码不会被执行,为什么?
问题补充:
LD T37
= Q0.0
MOVW 0, T37
INCW VW0
把上面的改成
LD T37
S Q0.0,1
INCW VW0
MOVW 0, T37
改后Q0.0有输出了,但是INCW指令还是不执行,VW0没有变化
注释掉 MOVW 0, T37 这个后,VW0有变化,为什么?
最佳答案
你在程序里看不到变化,不等于它不变化,要在状态表里看。
LD SM0.5
EU
INCW VW100
VW100每秒加1,你在程序里能看到VW100的值吗?应该在状态图里看。
你看VW0的值方法不对,请在状态图里看,如果在程序里看,当T37不等于1的时候,你是看不到VW0的值的。
LD T37
= Q0.0
MOVW 0, T37
INCW VW0
VW0值肯定在变化,Q0.0也等于1,只不过时间非常短,你从外部看不到。
T37不会置位,是因为MOV 0 T37,就是复位T37了。
提问者对于答案的评价:
谢谢
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc353245.html