P111G系列可编程控制器编程容易、连接简单、使用方便、性价比高,若将P111G-MC2主机和P111G-K2扩展单元连在一起使用,就可获得12路继电器输出和19路开关量输入,使它可以适用于更多更为复杂的工控系统。
本文就是想通过一个用P111G制作的随机运动小车控制系统的实例,与各位感兴趣者交流一些应用体会。
1、控制系统介绍
下图是某随机运动小车的工作示意图,该小车担负发料任务。当小车在0#位上料后,由0#位沿轨道驶往1#位并在该位等候。此后,若5#位~1#位中有任何一个呼叫,小车会自动驶向该位,并在该位停留若干秒时间,供工作人员取料。若小车上的料用完,可用各工位的复位按钮,将小车召回装料。
在本例中,输出只需要两路,用以控制小车的前进与后退。复位按钮则全部并接在主机的RST端口上,可不占用输入端口。而每个工位需要接1个呼叫按钮和1个行程开关,故总共需要12个输入口,这就需要将P111G-MC2和P111G-K2连在一起使用。所有端口使用分配可见下表。
2、流程图
主程序的流程图见下图(a)、(b)。由于图形太长,笔者将其折为两段。下图(a)段的原理是:延迟1秒后,小车退行,仪表板千位显示“L”表示返回。当接收到0#位的停车信号,小车停,工作人员给小车装料。之后按发车控制按钮,小车前进,仪表板千位显示“>”。当小车到达1#位后,小车停,位置信号“1”送内存F01,仪表板十位显示小车的当前位置“1”,千位显示“口”表示可以接收呼叫信号。下图(b)段的原理是:系统反复扫描5#~1#工位的呼叫端口,如端口收到呼叫,信号值为“O”,则执行相应的子程序,驱动小车驶往呼叫点。下图(c)段是“小车动2”子程序的流程图,其原理是:千位显示“2”,表示2#位呼叫。比较小车所处位置值与呼叫位置值的大小,若小车所处位置值大,则小车后退,否则前进。当到达2#位,小车停,位置信号“2”送内存F01,十位显示小车的当前位置“2”。延迟10秒钟后(此时间可根据实际需要调节),千位显示“口”表示移动结束,又可以接收呼叫信号了。
“小车动3”、“小车动4”的结构与“小车动2”相同,“小车动1”、“小车动5” 的结构也可以与“小车动2”相同,但由于1#位、5#位处于端部,小车不需要判断行进方向,程序可以省掉判断行进方向的这几步。而所有接收信号的子程序,都是些顺序结构,其流程图就不再画出了。为方便读者阅读流程图及程序,将子程序标号及其意义列于下表。
3、程序及注释
(注:一条指令超出2字节,从第3或第4字节起换行书写。)(1)主程序(a)段(20步)
4、其它说明
(1)下图是实验模型的接线图,按图接入两机的电源、连线、输入开关信号即可实验。
(2)扩展单元的地址码设置为1。
(3)外接继电器KM1驱动小车电动机正转前进,KM2驱动小车电动机反转后退,继电器电源根据实际情况定,继电器电源若能接个指示灯效果会好一些。
(4)细心的读者会发现,笔者在本例中未使用主机的P8、P9两个输入口。这是因为笔者做试验时,发现当主机执行到发送和接收指令时,P8、P9输入口的指示灯会自行发光。
后经请教有关设计人员,知道P8、P9两个口与串行通讯接口是相连的,所以在使用串行通讯口时,主机的P8、本程序在P111G-MC2和P111G-K2上已通过联机运行验证。
P9口就不能使用。这一点在P111G-K2的使用说明书中没有提到,请使用者注意。