新手学PLC编程要避的坑二
初学PLC编程需要注意的几个坑(二)
- 子程序里的相同输出点
- 非置位输出点
- 子程序中使用置位命令控制输出
- 主程序不要有相同的输出点
子程序里的相同输出点
调用子程序(要注意的是子程序调用的条件应该互斥)出现相同输出点,常见的例子就是手/自动运行的程序
非置位输出点
手自动运行情况下,开关1和开关2可分别控制电机1
手自动子程序的调用条件互斥,所以两个子程序互不影响
需要注意的是 手自动转换时的开关1和开关2的状态
在开关1或2被按下的情况下,进行手自动转换时电机会产生动作。
实际的设备中特别是手动情况下开关有可能是切换开关,此时需特别注意:
例如:手动情况下,开关2按下,电机1运转;
当切换到自动时,即使开关2依然按下,电机1会停止运转并由开关1控制,此时如切换到手动,电机1会运转起来。
子程序中使用置位命令控制输出
自动和手动的子程序的调用条件虽然互斥,由于用了置位命令,电机1运转时,手自动切换不会使电机停下。
一般情况下当自动运转程序控制的电机运转时,切换到手动程序,运转中的电机应该立即停止。
主程序不要有相同的输出点
如果主程序中出现相同的输出点会出现更加复杂的情况
1.子程序中使用边沿跳变控制的输出将无法受控(即使用置位命令)
2.子程序中未用边沿触发并且用置位命令控制的输出可以得到输出信号 但手自动切换时,已置位的输出点将自行复位
3.子程序中未用边沿触发未用置位命令的输出将决定于主程序中是先调用子程序还是先控制输出点(相当于双线圈)