NET 1
LD SM0.0
AW<> VW338, 1
A I0.2
EU
MOVW 1, VW336
NET 2
LD SM0.0
AW<> VW336, 1
A I0.2
ED
MOVW 1, VW338
程序中我想使VW336和VW338不同时为1
但这样写出来为什么可以同时为1
求各位前辈指教
最佳答案
NET 1
LD SM0.0
AW<> VW338, 1
A I0.2
EU
MOVW 1, VW336
在I0.2为1且VW338由其它值到1跳变时执行或
VW338不为1且I0.2由0到1跳时执行
NET 2
LD SM0.0
AW<> VW336, 1
A I0.2
ED
MOVW 1, VW338
在I0.2为1且VW336由1到其它值跳变时执行或
VW336不为1且I0.2由1到0跳变时执行
程序存在逻辑错误,两个同时为1是正常的
NET 1
LD SM0.0
AW<> VW338, 1
ED //由非1数值到1跳变时
A I0.2
MOVW 0, VW336 //把这个变成不是1
NET 2
LD SM0.0
AW<> VW333, 1
ED //由非1数值到1跳变时
A I0.2
MOVW 0, VW338 //把这个变成不是1
NET 3
LD SM0.1
AW== VW338, 1
AW== VW336,1
a I0.2
MOVW 0, VW336 //初始时两个同为1,改其中一个
以上把I0.2当允许标志用,以下当检测位用,跳变时检测
NET 1
LD SM0.0
A I0.2
EU
AW<> VW338, 1
MOVW 1, VW336
NET 2
LD SM0.0
A I0.2
ED
AW<> VW336, 1
MOVW 1, VW338
NET 3
LD SM0.1
AW== VW338, 1
AW== VW336,1
MOVW 0, VW336
到这里还存在为1的可能,就是通过其它程序或人为把它改成1
提问者对于答案的评价:
多谢!的确是您所指出的错误。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc320025.html