在我们编写程序时,往往1个自动化设备可能会有多种模式,列如手动、自动、半自动等模式,那么在切换时,需要有哪些注意事项呢?本文就通过1个案例来给大家讲清楚!
1.案例控制要求:
(1)设备在手动模式下:每按下一次启动按钮,启动1个电机,每次都是从最前面那台开始启动(总共有4台电机);每按一次停止按钮,停止1个电机,每次都是从最后面那台开始停止(总共有4台电机)
(2)设备在自动模式下:按下自动启动按钮,每隔2秒时间启动1个电机,每次都是从最前面那台开始启动(总共有4台电机);按下自动停止按钮,每隔2秒时间停止1个电机,每次都是从最后面那台开始停止(总共有4台电机)
2.程序编写:
(1)手动控制程序
新建“手动控制程序”,手动时每接通一次M50.0则会启动1个电机,从Q0.3开始启动;每接通一次M50.1则会停止1个电机,从Q0.6开始停止。这样,不管你启动了几个电机,都是从后面的开始停止,列如说启动了3台电机,然后按下停止按钮,则是从第3台电机开始停止。
(2)自动控制程
程序段1是当按下了“自动启动”按钮时,自动启动标志接通,从而接通定时器;当按下了“自动停止”按钮时,自动停止标志接通,从而接通“T2”定时器,时间到达后循环2秒。
程序段2是每次时间到达后接通一个电机,从Q0.3开始启动
程序段3是每次时间到达后停止一个电机,从Q0.6开始停止
(3)主程序调用子程序
程序段4是“有条件”调用子程序,也就是通过M1000.0的接通和断开来实现不同模式的切换(在实际的工作中可能是1个外部的输入点)。使用这种方法来实现模式切换,需要特别注意的“坑”就是,当你在执行手动控制程序时,切换到了自动,手动控制里的程序的一些数据是不会复位的,他还保持。列如在手动控制时,置位了Q0.3,那么切换到自动时,它依旧是为”1″的。
所以,基于这种方法编程的话,我们需要编写模式转换时,数据的清零和复位等,如下图所示。
写在最后:当我们要实现调用子程序的时候,最好不要用这种“有条件”调用,否则会出现一些数据错乱的现象!!那么你觉得用哪种方法来实现这种模式切换程序更方便,更实用呢?可以在评论区留言、讨论!
暂无评论内容