我用的PLC时315-2DP,控制两个搅拌机的启停。程序设计为:当M88.0变为1时,自动启动1号和2号搅拌机。我原来1号、2号程序里上升沿都用的是M88.1,但是当满足条件时,只执行1号,2号不执行。把2号上升沿改为M88.2时,条件满足,1号和2号才都执行。这是为什么呢?
问题补充:
按照PLC的工作原理,是统一读取缓存区的数据,执行程序后,把结果统一输出。那在一个执行周期内,--(P)--的状态应该不会变,那为什么在一个程序中不能这样写呢?还有我在主程序OB1中连接了很多子程序,那这些子程序的执行顺序时一起呢还是有先后?
图片说明:
最佳答案
你看一下这个指令的帮助,他是存储这条指令执行前的RLO上一周期的状态和当前状态的变化,指令执行前他的状态必须为0, 但你的第二个搅拌器执行时候M88.1已经是1了,所以无法输出1脉冲. 具体说就是这两个搅拌器谁先执行,谁能输出脉冲,后执行的就没有输出了。所以必须改地址
补充问题:程序的执行是自上而下的,不可能同时执行,先调用的执行完之后状态就改变了,影响到了后执行的指令,你可以尝试把两条指令颠倒位置,肯定结果也不一样
提问者对于答案的评价:
谢谢你的解答。但是还是有一点不太明白。按照我理解的PLC的工作原理,里面M点的状态在一个周期内是不变的,对吗?如果是不变的,就和你的解释对不上,这个该怎么理解呢?现在有点整懵了。
最佳答案作者回复:
面M点的状态在一个周期内是不变的(前提是没有指令再给他赋值), 这个没问题,可能你还是没有理解这个上升沿指令, M88.1在1号搅拌器的时候已经变成1了,所以在2号搅拌器的时候就没有0到1的跳变了,所以他不会再产生沿了
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc183607.html