通过西门子PLC控制花样喷泉的5种形式,通过5个按键控制5种形式:
1号位,按下第一种1~8顺序喷出,逆序收起,间隔2秒,循环。
2号位,按下第二种单数先喷出,然后双数喷出,一起收起,间隔2秒,循环。
3号位,先1278喷,在3456喷,全收,再3456喷,1278喷,全收,循环。
4号位,先1~2喷,然后3~4喷,再5~6喷,78喷,全喷,收起,循环。
5号位,1~4喷2秒,1~8喷2秒,5~8喷2秒,1秒收,单喷2秒,双喷2秒,1秒灭,1278喷2秒,123789喷2秒,2秒1~8喷,2秒收,共20秒,循环
注意:用S7-200编,第5种通过比较来设置时间
编程思路
首先我们看到了该控制要求里面有大量的时间节点来控制不同阀或者电机的输出,这是一个重要的可以利用的信息,我们可以利用不同的时间节点来完成对应的输出。
那么我们如何在繁琐的控制要求下捋顺出清晰的编程思路呢?这个时候就需要我们画出没个控制模式的时序图,在时序图中我们会清晰的看到不同时间对应的不同动作。
时序图的制作与PLC编程
我的时序图采用的是Eplan 制图软件。
模式1
首先这个是模式1的时序图,而模式1的控制要求是:1~8顺序喷出,逆序收起,间隔2秒,循环
T0-T15 不是编程内的T指令,由于S7-200 T指令由T36开始才是100ms为单位的计时器,所以这里面的T0只是作为时间节点的标记!
对应的PLC程序为
在时序图中我们可以看到,不同的时间节点不同的输出,以A阀输出为例,当T40闭合时输出高电平,当T55闭合时输出低电平,平且是连续的输出,因此在其阀的中间继电器M1.0前端串联了T40与T55,其余的输出参照阀A,模式1均为长脉冲输出,因此输出的条件比较单一,并且都是长脉冲是一个循环。
模式2
控制要求:单数先喷出,然后双数喷出,一起收起,间隔2秒,循环。
也就是说1357先喷,2秒后2468跟着喷出去,最后一起收,相隔2秒后进行下一个循环,循环的时间节点一共有3个,相对编程简短一点。
模式2与模式1对比起来相对简单一些。
模式3
控制要求:先1278喷,在3456喷,全收,再3456喷,1278喷,全收,循环。
模式3有6个时间节点,只不过输出的形式是四个为一组进行输出,并且是有点表变化的,不过参照前面的编程思路也会很快得到解决。
模式3唯一与前2中模式有变化的就是间断的脉冲输出,所以输出的时候有2种条件会导致输出。
模式4
控制要求:先1~2喷,然后3~4喷,再5~6喷,78喷,全喷,收起,循环。
模式4是一对一对的喷出,最后一起收回在一对一对的喷出。
对应的输出中间继电器有4个。
模式4的几个输出也是不连续脉冲输出,因此不同条件都会触发最后的输出线圈。
模式5
控制要求:1~4喷2秒,1~8喷2秒,5~8喷2秒,1秒收,单喷2秒,双喷2秒,1秒灭,1278喷2秒,123789喷2秒,2秒1~8喷,2秒收,共20秒,循环
注意:用S7-200编,第5种通过比较来设置时间
模式5的控制要求比较特殊,除了繁琐以外还特殊要求了要通过比较的方式来设置时间,因此就不能采用计时器的方式来设置时间。
为了满足控制要求我把时间变成计数的方式,通过比较计数来进行时间控制。
根据上方的时序图,来进行比较的编程,需要注意的是所有数值的上线都要是小于该值,否则会多计数1秒,而计数的原理是利用了S7-200的内部时钟来实现,SM0.5是一个开0.5S 关0.5S 的内部时钟,加上一个上升沿就变成了1秒一计数的计数器,根据不同计数的比较来实现不同的输出。每个输出点一个循环内最多有3次输出,因此要进行3次条件的并联来实现输出。
所有模式都编程过后最后我们来看看程序是如何组建的!
由于采用5个按钮控制5种模式,所以我采用主程序调用子程序的方法,一共5种模式,采用一个主程序5个子程序的方法来实现功能!
而子程序对应的触发条件为按下对应的按钮,喷泉的停止是靠一个自复位的停止按钮来控制,按下停止按钮会复位所有子程序,并复位子程序内所有计时器,方式启动时不是从第一个输出点输出。
这是我所定义的符号表,仅供参考!