基于PLC抢答器控制系统编程方式探究
2019-05-22张媛媛党丽峰
张媛媛,党丽峰
(江苏联合职业技术学院镇江分院 机电工程系,江苏 镇江 212016)
可编程控制器(PLC)是中控系统常用的控制器之一,已成为现代工业自动化控制的三大支柱之一[1]。很多职业院校开设了“PLC应用技术”课程。对PLC编程而言,可以使用多种方法实现同一种控制功能,每种方法各有优缺点。学生从简单的基本指令入手,进而学习步进指令、功能指令,循序渐进[2]。分析控制流程,使用程序实现控制功能,达到最优设计,是一个长期积累的过程。
抢答器要求实时、准确、快速、公正[3]。抢答器系统是“PLC应用技术”课程中的典型案例。以知识竞赛现场用4组抢答器控制系统为例,使用三菱FX2N系列PLC设计控制系统,使用3种方法编程,研究使用不同指令实现同一控制要求的设计思路。
1 抢答器控制系统任务的提出
知识竞赛现场4组抢答器系统控制要求:按下“启动”键,系统启动,主持人发出抢答信号,任意一组抢先按下按键后,显示器及时显示该组编号,同时蜂鸣器鸣叫提示该组抢答成功,此时其他组按键无效,主持人按下“复位”按钮后可再次抢答,按下“停止”按钮,系统停止工作。
使用PLC控制程序时,需要将所有的输入(输出)器件连接到PLC的输入(输出)端口,并对端口进行说明。该系统的I/O地址分配表如表1所示,PLC控制电路端口接线如图1所示。
表1 I/O地址分配表
2 程序编写
2.1 基本逻辑指令编程
使用基本逻辑指令编写PLC程序时,只使用基本的软元件,需注意软元件的关联性和逻辑性。图2为系统的启动和抢答程序。使用典型的起保停电路实现系统启动。抢答器系统存在2组或多组同时抢答成功的问题,需要使用互锁解决,即利用一组的运行信号进行其他组的运行信号控制[4]。控制程序为先停止后转换的梯形图程序,从输出M1到输出M2运行,先按下复位按钮“X0”,停止M1的输出,再按下启动按钮“X2”,转换到M2运行。互锁各方只要有一方为“ON”,其他组均被锁,具有“先到先得,后到不得”的功能。
图2 抢答器系统的启动和抢答程序
组号显示使用七段数码管实现。七段数码管由7个条形发光二极管组成,通过各段的亮灭实现数字显示[5]。在程序中,M1,M2,M3,M4分别对应4个组抢答成功信号,LED显示数字字符需要把每个组的状态转换成LED对应的输出,如表2所示。
数码管显示程序中需要处理双线圈输出问题,如第2组抢答成功和第3组抢答成功均要求数码管显示A段,按顺序编写程序时用OUT指令驱动两次Y1输出。由PLC运行的工作原理可知,输出继电器Y的状态是最后检测到的状态刷新结果输送到相应的输出端子的。双线圈处理后的数码管显示程序如图3所示。值得注意的是,在程序中加了定时器T0,用来实现抢答成功时蜂鸣器鸣叫1s提示。
表2 七段数码管字符显示
2.2 步进指令编程
工业控制中大多是顺序控制,大多使用步进指令。抢答器控制系统是选择最先抢答的一组执行,是典型的选择分支,可以使用步进程序的选择分支编写程序,程序结构如图4所示。M8002上电后“S0”状态激活,若第2组抢先按下,X2得电,程序进入第2个分支,其他分支不得电,按下复位按钮“X0”后,程序跳转到“S0”重新进行抢答。使用步进指令编程,无需考虑互锁及双线圈问题,可读性较强。
图4 状态转移图
2.3 功能指令编程
使用步进指令编写PLC程序,运行步骤一目了然,但输出元件Y多次重复使用,效率低。在PLC中,功能指令主要用于模拟量控制、运动控制、通讯控制等[6]。功能指令数量多、门类广,而且有些功能指令涉及专业知识和PLC扩展领域。但功能指令可以实现PLC的很多扩展功能,大大提高了编程效率及PLC的使用价值。七段数码管可通过SEGD七段解码功能指令实现数字显示,程序如图5所示。按下复位按钮“X0”时,通过区间复位指令“ZRST”将七段数码管清零。
图5 七段解码指令实现数字显示程序
可通过数据传送指令MOV和位组合元件实现数字显示,程序如图6所示。
用数据传送指令设计程序时,用位元件的组合K2Y001控制七段数码管的输出,当数码管显示数字“1”时,Y7—Y1显示的二进制信息为“0000110”,转化为十进制信息为“K6”,然后,将数据通过MOV指令传送到数码管进行显示。
3 编程方法比较
使用基本逻辑指令编写程序,强调软元件之间的逻辑关系,初学者易上手,但对于复杂的控制系统,存在逻辑关系复杂、程序可读性差的缺点。使用步进指令编写PLC程序,结构清楚,只需考虑转移条件和每步需完成的动作即可,但软元件多次重复使用,编写效率低。使用功能指令时,程序可扩展性强,步骤少,适合模拟控制、过程控制、通讯控制。但PLC功能指令数量多、门类广,很难快速掌握。PLC的编程必须与实践相结合,“做中学,学中做”。