写了一段简单的测试程序测试了 for 指令的逻辑,有问题请教下!
如截图的程序中,测试结果为什么只要"Test".No[3] 为 1 "Test".Out 就为1,"Test".No[3] 为 0 "Test".Out 就为 0
我原本想实现的逻辑是 "Test".No[1], "Test".No[2],"Test".No[3] 都为1 时 "Test".Out 为 1,其中一个为0时 "Test".Out 为 0 ,想要实现这种逻辑正确应该这么写呢?
问题补充:
感谢回答,我这里只是写一个测试下逻辑,实际上的[ ]数量可能会很多,比如有60,所以想用for 来实现一下
图片说明:
最佳答案
1、测试结果为什么只要"Test".No[3] 为 1 "Test".Out 就为1,"Test".No[3] 为 0 "Test".Out 就为 0
很简单,你做的这个循环最后执行的是将Test".No[3]赋值给"Test".Out 所以效果如你所描述的
2、可以这么写:
"Test".Out := 1;
FOR i:= 1 TO 3 BY 1 DO
"Test".Out:="Test".Out AND "Test".No[i];
END_FOR;
不需要用if语句
提问者对于答案的评价:
测试过了,谢谢!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc232655.html