怎样编写这个程序? 关于PLC如何编程的问题讨论(续2) 点击:1036 | 回复:6



wyb2866255

    
  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2011-04-19 09:49:46
楼主
                                              怎样编写这个程序?
                            《 关于PLC如何编程的问题讨论(续2)》
        有这样一个课题:一个按钮控制5个电磁阀。按下启动按钮,保持一段时间后按钮抬起,要求从按下按钮时起,延时1S,使电磁阀1得电,再延时0.9S,使电磁阀2得电,再延时0.8 S,使电磁阀3得电,再延时0.7 S,,使电磁阀4得电,再延时0.6 S,使电磁阀5得电。当按钮抬起时起,延时2S,使电磁阀1断电,再延时1.9 S,使电磁阀2断电,再延时1.8S,使电磁阀3断电,再延时1.7S,,使电磁阀47断电,再延时1.6S,使电磁阀5断电。
       在按钮按下时间里,可能会因按钮抖动,出现打连发现象,要求排除抖动干扰,应如何编程?
                一、 编程的思考:
      1、 可以用5个通电延时定时器控制5个电磁阀得电,再用5个通电延时定时器控制5个电磁阀断电。由于按钮按下的时间是可变的,其长度有可能短于5个电磁阀延时的总时间,故不能用按钮连接的PLC的输入点(如I0.0)来连接5个定时器,可以用I0.0=1的前沿去触发PLC内部的一个位信号(如M1.0)使其置1(即M1.0=1),再用M1.0的常开点使定时器T101(延时1 S)得电且开始延时,延时时间到,T101=1(即吸合),用其前沿使Q0.0=1(电磁阀1得电动作)T101的常开触点闭合,使T102(延时0.9S)得电开始延时,延时时间到,T102=1,其前沿使Q0.1=1(电磁阀2得电动作)。。。。直到第5个电磁阀得电动作。
       按钮抬起(即I0.0=1的后沿)时,使M0.1=1,而M0.1=1使T106(延时2S)得电延时,延时时间到,T106=1,使Q0.0=0(电磁阀1失电断开),同时使T107(延时1.9S)得电延时,延时时间到,T107=1,使Q0.1=0(电磁阀2失电断开)。。。直到电磁阀5失电断开。
      2、 对按钮按下时因抖动产生的打连发现象的消除:
      按下按钮时,因按钮的抖动会产生打连发的现象,是不可避免的。如何在编程时消除这种干扰呢?可以采用这样处理办法:
      (1)、按钮连结PLC输入点为 I0.0,按下按钮时,用I0.0=1 的前沿触发M0.0,使M0.0置1(M0.0=1),用M0.0的常开点去连接控制5个电磁阀延时启动的定时,这样处理后,在M0.0=1后,再出现I0.0=1的连发干扰脉冲,对M0.0=1无影响。
      (2)、用I0.0的常开点连接通电延时定时器T115,其定时时间设定为0.5S。当按下按钮,使I0.0=1,连续导通0.5S,T115才能吸合,如按下时产生抖动,由于抖动引起的干扰脉冲的间距<0.3S,这样T115是不会吸合的,只有抖动现象消除后,再延时0.5S ,T115才能吸合。当按钮抬起时T115立即断开,即T115的断开时间与按钮抬起是同时刻的,我们就用T115=1的后沿去触发5个电磁阀断开的延时定时器,就解决打连发的干扰问题。
                          二、编程:根据上述分析,编出如下程序:

      经上机运行,其控制动作正确。按钮按下时间大于0.5S 都可正常运行。对连续按几下,其彼此间隔都小于0.5S时,程序都不动作。



云锋

  • 精华:1帖
  • 求助:4帖
  • 帖子:252帖 | 5541回
  • 年度积分:0
  • 历史总积分:30376
  • 注册:2005年6月24日
发表于:2011-05-01 17:21:33
1楼

实际中应用的话,可能会遇到按一下,后面延时全依次启动,再按一下依次停止。

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2011-05-01 20:34:00
2楼

云峰版主:你说的情况不会出现,只要按一下按钮的时间大于0.5秒,则第一个电磁阀就会从按钮按下时刻起,延时1秒通,再延时0.9S第二电磁阀通。。。依次延时直到第5个电磁阀通,当按钮抬起时刻起,延时2秒第一电磁阀关,再延时1.9秒,第二阀管关,再延时1.8秒第三阀關。。。直到第5个阀关。

     从程序里可以看到按钮按下瞬间(I0.0=1的前沿)使M0.0=1,按钮抬起瞬间(I0.0=1的后沿)使M0.1=1,直到T110=1的前沿,才使M0.0=0、M0.1=0,T110吸合动作时间,已是第5个阀延时1.6秒关断的时刻,故5个阀都经历延时通电,和延时关断这二个动作过程。不会出现“按一下,后面延时全依次启动,再按一下依次停止”的现象。

      该程序是经过上机运行过的,按下时间从大于0.5S---几秒,甚至更长时间都正常。

云锋

  • 精华:1帖
  • 求助:4帖
  • 帖子:252帖 | 5541回
  • 年度积分:0
  • 历史总积分:30376
  • 注册:2005年6月24日
发表于:2011-05-02 10:05:42
3楼

可能我没表达清楚,我不是说程序有问题。

说的实际工程中可能更多出现的应用实例会是按一下依次启动,再按一下依次停止,而不是一段时间内按住按钮。

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2011-05-02 15:27:04
4楼
云峰版主:这回明白你的意思,你这个思路很好,也有实际应用价值,我准备把上面程序改一下即可实现你说的控制要求。

彩云之滇东北

  • 精华:20帖
  • 求助:5帖
  • 帖子:107帖 | 2725回
  • 年度积分:0
  • 历史总积分:21121
  • 注册:2005年6月14日
发表于:2011-05-02 19:47:05
5楼

学习了                                    

明理

  • 精华:1帖
  • 求助:1帖
  • 帖子:43帖 | 3150回
  • 年度积分:0
  • 历史总积分:20986
  • 注册:2007年6月21日
发表于:2011-05-02 20:48:38
6楼

使用步进梯形图编程比较简单直观。


热门招聘
相关主题

官方公众号

智造工程师