找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
将不同地址的值MOVE到同一地址,这个是非常常用,也是非常高效的编程方法。如你图中的例子,当M0.0=1时,将MW100 MOVE到MW20,当M0.1=1时,将MW200 MOVE到MW20。如果在同一个扫描周期MW0.0和MW0.1都等于1,那么按照两个程序段执行的先后顺序依次MOVE。在第二次MOVE前,MW20等于第一次MOVE的结果,第二次MOVE后,MW20等于第二次MOVE的结果。在使用本地临时变量时,经常在一个块中对同一个变量进行多次MOVE是很常见的。这样可以减少定义变量。如图1,我将B#16#10和B#16#20先后MOVE到MW20,可以看到都能正常运行。
如果你不想在同一个扫描周期中有两个不同的值,你需要对前面的条件进行互锁,比如在第一张图片的move指令前加一个常闭的M0.1,第二张图片的move指令前加常闭的M0.0,这样可以避免在同一扫描周期中MW20有两个不同的取值。如果有必要,还可以在move指令前加上上升沿或者下降沿,这样满足条件时MW20只会被MOVE一次。
另外,同一个地址也是可以有多个线圈的,同样,线圈的值与程序的执行顺序有关。如图2,M0.1就有两个线圈,并且两个线圈的值不一样。不过不建议用多个线圈,建议采用S/R或者SR。
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!