最近用S7-200的SCR命令,做了一个顺序控制,编程过程中有一个问题百思不解。请指教一下。
如下图一,SCR段(S0.0)没有被激活,但是却会把首段置位的M0.0清除。说明SCR段即便不激活,也会一直被扫描,作为条件不满足情况处理。
如下图二,在网络一中激活S0.0。程序执行过后,M0.0=0,M0.1=1。
问题就是不太理解为什么M0.0会等于0。在设想中应该是被置位才对。
问题补充:
感谢二位的回答。问题补充一下吧,尽量说清楚点,也方便给别人个参考。
首先这2个程序是不相关的,就是分别作了个小实验。
第一个程序,就是证明了下。SCR段不管是否激活,都会参与扫描,我理解是类似于。在SCR段中的语句,每个前面都加了个S状态的常开点。这种情况下,当SCR段不激活时,都是做条件非处理。
第二个程序图片中就是全部了。动作也很简单,激活S0.0,就是想看看能不能取到上升沿信号。结果是在SCR段内的不能,在段外的可以。
@芳季所说,无需解释,试验出来是这个结果就这个结果了。或许最后结果也就是如此了。就是挺奇怪这个扫描机制的。
因为SCR段不管激活与否都在不停扫描中,这样的话理论上,坑定有个从0到1的上升沿,但是系统却抓不到。
不知道是发现了个西门子的BUG呢,还是真么设计有什么初衷。
图片说明:
最佳答案
你已经很细致地发现了这两个问题。的确不错。
图一,不激活的段是按照能流off去执行的。
图二,无需解释,试验出来是这个结果就这个结果了。S段里面无法用边缘指令获得首次扫描的标志。我也说不清为什么。
这样做试验很好,很快很快就会有很大的提高。
提问者对于答案的评价:
谢谢指教。同时也感谢 WWCWWC的帮助。
通过这个提问,我也仔细思考了一下,有点模糊的想法。
如图2所示。如果S位状态被激活时,能够取到上升沿的话,会带来一个问题。就是在SCR程序段中,获取其他信号的上升沿时会带来意想不到的混乱。可能会给程序增加意外的变数。
不知道是不是这个原因,才导致目前的结果。开开脑洞胡乱猜测,勿笑。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc370610.html