为了进一步简化发射同步控制系统,提高发射工作的可靠性,打算使用可编程控制器代替笔记本电脑+串口继电器组。PLC编程是我未曾涉足的领域,为了逼自己学习,直接上网买了一块PLC工控板,名为国产三菱FX2N-M20T,输出集成了晶体管继电器。找卖家要了资料,带着学生边学变做。经过一个晚上的努力,打工告成,现将自己的认识整理如下。
需求场景:按下发射按钮,继电器闭合,接通电磁阀、触发高速摄像机,维持200ms后继电器自动断开。
PLC工控板接线:输入端接0V有效,将X001输入端经发射按钮开关接地,按下发射按钮开关X001接地有效。输出端内部经过一个开关接地,输出有效就是接通这个开关。Y001经电磁阀接24V电源,当输出有效时,电路接通,电磁阀动作。输出端Y002接高速摄像机触发线的铜芯,触发线屏蔽层接0V,输出有效时,触发线短路,形成触发信号。
PLC编程环境:使用GXC Developer开发环境,可以通过串口直接与PLC工控板通讯,设置PLC参数,检查输出状态,编写梯形图或指令序列,写入PLC程序存储器。也可从PLC读取梯形图,PLC程序可加密,使用88888888加密时,不可读出,只能清除内存。写入程序后,可通过工控板上的启动/停止开关启动,有个绿色指示灯亮,表示正在运行。
PLC运行机制:PLC程序写入后,被硬件系统循环执行。首先扫描输入端状态,写入输入寄存器,然后进行逻辑计算,获得输出状态,写入输出寄存器,最后刷新输出状态。循环往复执行。
首先实现根据输入状态,更新输出状态:
LD X001 ;读入输入X001,接地有效,即开关导通,拉低X001引脚电压,认为输入为1
OUT Y001 ;将X001的状态输出到Y001,当输入为1时,将1输出到Y001,即从内部将Y001接地,可见PLC输入输出均为负逻辑,即接地为1,悬空为零。
这两条置零的执行结果就是,PLC循环扫描X001的状态,将其复制到Y001,X001闭合,Y001就闭合,X001断开,Y001就断开。为了放置按钮的抖动,下面通过输出状态到输入的反馈实现自锁。
LD X001 ;读入X001状态
OR Y001 ;与输出Y001状态进行或运算,用于自锁
OUT Y001 ;将两者或运算结果输出到Y001
END
进一步增加延时断开功能,引入延时器,接通电磁阀的同时触发2台高速摄像
LD X001 ;读入X001状态
OR Y001 ;与输出Y001状态进行或运算,用于自锁
ANI T0 ;与非延时器T0,用于延时解锁
OUT Y001 ;将两者或运算结果输出到Y001
OUT Y002 ;同时送Y002,触发高速摄像
OUT Y003 ;同时送Y003,触发高速摄像
OUT T0 K2 ;启动延时T0,当延时结束后,T0有效,断开Y001
END