一个SCL For 指令的程序

写了一段简单的测试程序测试了 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 来实现一下

图片说明:

一个SCL For 指令的程序    一个SCL 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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 下午1:15
下一篇 2018年12月1日 下午1:15

相关推荐