请教一个逻辑判断与执行问题

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午10:02
下一篇 2021年7月5日

相关推荐

发表回复

登录后才能评论