PLC需要控制两个电磁阀。在正常情况下,电磁阀是一开一关的,利用M存储器进行互锁的。也就是说,同一时间只是一个阀门打开。
现在遇到特殊情况,需要两个阀门全部打开,所以把它做到子程序中,
LD SM0.0
=
Q0.1 //阀门1
Q0.2 //阀门2
问题是当子程序返回的后,主程序两个阀门能够正确的执行动作吗?会不会因为上一时刻同时打开,而无法判断现在该开关哪一个阀门呢?
问题补充:
主程序大概如下:
LD M0.1
条件A
条件B
S M0.2 1
R M0.1 1
LD M0.2
条件C
条件D
S M0.1 1
R M0.2 1
LD M0.1
=
Q0.1
LD M0.2
=
Q0.2
条件A,B,C,D代表四种状态,当A,B满足的时候置位M0.2,复位M0.1
当C,D满足的时候,置位M0.1,复位M0.2
现在遇到特殊情况,
LD M0.3
CALL SBR:SBR_0
子程序内容如下所述。(上面输错了,采用的是立即置位指令)
LD SM0.0
SI Q0.1, 1
SI Q0.2, 1
当特殊情况消失后,M0.3复位,子程序自动跳出。
TO shine:
主程序中没有阀门打开条件,只有切换条件。打开条件是做在初始化程序中的(调用sm0.1,只执行一次)。在正常运行过程中,阀门的切换仅靠条件A,B,C,D来完成。
所以不清楚退出子程序后会怎么样
TO SG9:
你的这种做法好像挺不错。
试试看,
谢谢先
最佳答案
你有各自的打开条件在在正确跳出子程序后是不会出问题的,哪个条件满足就打开哪个。就怕你的两组条件同时满足,那就可能出现同时打开。但对于你的子程序条用和返回好象有问题,建议你不用子程序直接进入主程序中,当M0.3=ON SET QO.1Q0.2;
当M0.3=OFF根据M0.1M0.2的状态来置位Q0.1Q0.2。
提问者对于答案的评价:
用了你的办法,解决了问题。谢谢!
同时衷心谢谢所有对这个问题作出解答的朋友,你们的回答都启发了我。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc357659.html