压力检测与系统上电初始化问题

主要硬件组成:两组压力变送器(4~20mA输出)和电磁阀,CPU222,EM231。
 目的:压力变送器4~20mA信号经过线形化分别存储在VD200,VD210中。我想在系统上电的时候做一些初始化工作:如果两个压力均高于设定下限值(VD710),则打开较低压力那一路上对应的电磁阀;如果两个压力一个高于设定值,一个低于设定值,则打开高于设定值那一路上的电磁阀;如果两个压力均低于设定值,则关闭两组电磁阀。
 程序如下:
 LD     SM0.1
 LPS
 AR>    PT1:VD200, PT2:VD210        //当PT1>=PT2>=ALM_PL的时候
 LPS
 AR>=   PT2:VD210, ALM_PL:VD710
 =      EV1:Q0.1                    //EV1上电关闭

 NOT
 =      EV2:Q0.2                    //EV2打开。使用BUDDLE 2
 LPP
 AR>=   PT1:VD200, ALM_PL:VD710     // 当PT1>=ALM_PL>=PT2的时候      
 AR<=   PT2:VD210, ALM_PL:VD710

 
 =      EV2:Q0.2                    //EV2上电关闭
 NOT

 
 =      EV1:Q0.1                    //EV1处于打开状态。使用BUDDLE 1

 

 LRD
 AR<    PT1:VD200, PT2:VD210        //当PT2>=PT1>=ALM_PL的时候
 LPS
 AR>=   PT1:VD200, ALM_PL:VD710
 =      EV2:Q0.2                    //EV2上电关闭
 NOT

 =      EV1:Q0.1                    //EV1处于打开状态,使用BUDDLE 1
 LPP
 AR>=   PT2:VD210, ALM_PL:VD710     //如果PT2>ALM_PL>PT1
 AR<=   PT1:VD200, ALM_PL:VD710
 =      EV1:Q0.1                    //EV1上电关闭
 NOT
 =      EV2:Q0.2                    //EV2处于打开状态,使用BUDDLE 2

 LPP
 AR<    PT1:VD200, ALM_PL:VD710     //如果PT1,PT2均低于报警下限值,则输出报警到Q0.5,Q0.6
 AR<    PT2:VD210, ALM_PL:VD710
 =      EV11:Q0.3
 =      EV22:Q0.4
 NOT                                //同时关闭EV1和EV2。供气系统停止运行。
 =      EV1:Q0.1
 =      EV2:Q0.2

 问题,此段程序不能够完成我想达到的目的,请大家帮我分析一下到底什么问题,不胜感激~

 

问题补充:
Q0.5和Q0.6用作报警输出。上述没有表达清楚。

  此段程序主要目的用来选择一组钢瓶使用,上电时选择一组压力比较低但高于设定值的钢瓶使用。

  在使用过程中,后续程序会继续扫描压力,然后根据压力状况作出切换

 
 请教SG9:那我这段程序怎么写才合理呢?
 能不能给出例子程序,完成此功能

最佳答案

这就是你在一个网络里重复对Q0.1、Q0.2输出造成的。
  Network 1 // 网络标题
  // 网络注释
  LD     SM0.1
  LPS
  AR>    VD200, VD210                //当PT1>=PT2>=ALM_PL的时候
  LPS
  AR>=   VD210, VD710
  =      M0.1                        //EV1上电关闭

  NOT
  =      M0.2                        //EV2打开。使用BUDDLE 2
  LPP
  AR>=   VD200, VD710                // 当PT1>=ALM_PL>=PT2的时候      
  AR<=   VD210, VD710

  
  =      M0.4                        //EV2上电关闭
  NOT

  
  =      M0.3                        //EV1处于打开状态。使用BUDDLE 1

  
  LRD
  AR<    VD200, VD210                //当PT2>=PT1>=ALM_PL的时候
  LPS
  AR>=   VD200, VD710
  =      M0.6                        //EV2上电关闭
  NOT

  =      M0.5                        //EV1处于打开状态,使用BUDDLE 1
  LPP
  AR>=   VD210, VD710                //如果PT2>ALM_PL>PT1
  AR<=   VD200, VD710
  =      M1.1                        //EV1上电关闭
  NOT
  =      M1.2                        //EV2处于打开状态,使用BUDDLE 2

  LPP
  AR<    VD200, VD710                //如果PT1,PT2均低于报警下限值,则输出报警到Q0.5,Q0.6
  AR<    VD210, VD710
  =      Q0.3
  =      Q0.4
  NOT                                //同时关闭EV1和EV2。供气系统停止运行。
  =      M1.3
  =      M1.4

  
  Network 2 
  LD     M0.1
  O      M0.3
  O      M0.5
  O      M1.1
  O      M1.3
  S     Q0.1, 1
  Network 3 
  LD     M0.2
  O      M0.4
  O      M0.6
  O      M1.2
  O      M1.4
  S      Q0.2 ,1
 

提问者对于答案的评价:
虽然你修改后的程序不能够使用,不过还是给了我很多提示,按照这种思路,重新修改了程序。现在可以实现此功能了。

 SG9:同样非常感谢你的回答,你的回答可以说是字字真金。不过在我没有搞明白这个问题之前,我很难领悟到你所讲的。

 cloud21 &  雨文: 也非常谢谢你们的回答。我这个系统在实际使用过程中,可能会遇到断电之类的情况。而且断电后气体仍然会使用,不能够按最后一次正确状态来确定上电后的输出。所以必须有这么一段初始化程序。

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc357602.html

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

相关推荐

发表回复

登录后才能评论