西门子S7-1200可编程控制器在抢答器设计中的应用
2018-12-21华滨
华 滨
(武汉软件工程职业学院,湖北武汉430000)
0 引言
抢答器广泛应用于各种知识竞赛中,传统的抢答器大都采用模拟电路、数字电路或模数混合电路组合而成,这类控制系统虽然小巧灵活,但是制作过程复杂,且可靠性往往达不到要求[1]。
本文介绍一种以西门子S7-1200 PLC为核心控制器的四路抢答器系统,该系统在传统抢答器的基础上加以改进,能够使得比赛过程有条不紊,更加公平、合理。
1 系统主体框架
本文介绍一种用S7-1200 PLC作为主控制器的四路抢答器,共包含一个出题按钮、一个复位按钮、四个抢答按钮,还外接了一个七段数码管,实时显示抢答选手编号。可实现如下要求:
(1)抢答器可同时供四位选手或四个代表队参赛,每个竞赛台均设有一个抢答按钮或并联多个抢答按钮(依据每个代表队人数来定)。
(2)主持人控制台处设有出题按钮以及复位按钮,用来控制选手开始答题和抢答系统的复位。
(3)抢答器能实时锁存抢答成功选手编号,并将其显示到数码管上。主持人按下抢答键,如果选手抢答成功,选手编号立即被锁存,并显示到七段数码管,同时禁止其他选手再进行抢答。抢答成功选手的编号会一直保存在系统里,直至主持人按下复位按钮。
(4)主持人按下开始抢答按钮后,抢答指示灯会以一定的频率开始闪烁,示意选手开始抢答。如果参赛选手在主持人按下开始抢答按钮前已经抢答,则抢答无效,系统还是会锁定主持人按下开始抢答按钮后第一个抢答到的选手。
(5)抢答过程呈现周期性。当主持人按下复位按钮后,将清除数码管上的数字,同时复位系统状态,为下一轮抢答做准备。
2 系统硬件设计
2.1 主控模块
S7-1200使用灵活、功能强大、设计紧凑、组态灵活并具有功能强大的指令。CPU将微处理器、输入和输出电路、内置PROFINET、高速运动控制I/O以及模拟量输入组合到一个设计紧凑的控制器中,可完成简单逻辑控制、高级逻辑控制、HMI和网络通信等任务。S7-1200 PLC还包含4种类型的定时器、3种类型的计数器,可满足各种不同的定时、计数需求[2]。在程序设计结构上,S7-1200可采用模块化程序设计方法,将完成特定任务的代码块封装到一个功能FC或功能块FB中,使程序条理清晰,调试方便[3]。
基于以上控制要求,本文采用S7-1200/CPU1214DC/DC/DC为主控制器,该主控包含14路输入触点、10路输出线圈、2个模拟量输入口、6个高速计数器、4路脉冲输出,且输入回路与输出回路电压均为DC 24 V,满足系统要求。
2.2 数码显示
7段数码管可以组合显示十进制0~9以及十六进制A~F。本控制系统只需显示数字0~3,用来显示4位参赛选手的编号。为了便于控制,本文采用共阴极数码管,当某一字段发光二极管的阳极为高电平时,相应字段就会被点亮,为低电平时,就不亮。通过程序控制PLC输出端电平的高低,来显示不同的数字,从而显示获得抢答机会的选手编号[4]。
2.3 I/O分配
根据系统实际需求,本文总共用到西门子1200 PLC的6个输入触点I0.0~I0.3、I1.0及I1.1,8个输出线圈Q0.0~Q0.6、Q1.0。其中,I0.0~I0.3为0~3号参赛选手面前相对应的输入触点,I1.0为出题触点,I1.1为系统的复位触点;Q0.0~Q0.6输出线圈接7段数码管,Q1.0接出题指示灯。PLC的IO接线图如图1所示。
图1 IO接线图
3 系统软件设计
为了使程序结构简单、明了,在主程序中多次引用中间标志位表示程序运行状态。其中M1.0~M1.3表示4位参赛选手抢答成功的标志位。M2.0表示开始抢答标志位。通过中间标志位来建立系统输入与输出间的关系,这样程序结构更加清晰,便于维护与调试。
3.1 初始化、开始及复位控制
系统上电时,使用系统存储器的首次扫描位初始化所有标志位。当主持人按下开始抢答按钮,建立开始抢答标志位。按下复位按钮后,清除中间标志位,为下次开始抢答做准备。如图2所示,M10.0为首次扫描位,在启动组织块完成后的第一次扫描期间内,该位为1。利用首次扫描位,可实现系统状态的复位功能,清除掉M1.0开始的5个状态标志位,Q0.0开始的8个输出线圈。I1.0为开始抢答按钮,建立开始抢答标志位。I1.1为复位按钮,复位M1.0开始的5个状态标志位。
图2 初始化、开始及复位控制程序
3.2 选手抢答
选手答题时,采用经典的“起保停”控制电路。四位参赛选手抢答成功,分别建立四个不同的抢答标志位M1.0~M1.3。采用互锁程序结构,只要有一位选手抢答成功,其他选手就不能继续抢答[5]。这样做,可以防止抢答现场出现多人抢答成功的混乱局面。如图3所示,I0.0为1号选手抢答按钮端,M1.1~M1.3为2~4号选手抢答成功标志位,M2.0为开始抢答标志位。只有当主持人按下开始抢答按钮后,其他选手还未曾抢答,1号选手方可抢答成功。
图3 1号选手抢答控制程序
3.3 答题指示灯控制及数码管显示
西门子S7-1200 PLC可将中间寄存器配置成多种频率的周期性脉冲,用来产生0.1 s、0.2 s、0.4 s等8种不同周期的方波信号,用于在用户程序中周期性触发动作。本设计使用了该功能,实现从开始抢答到抢答成功时间段的指示灯周期性闪烁。选手抢答成功,相应的M1.0~M1.3标志位会有信号,根据M1.0~M1.3四个不同标志位的状态,再用七段数码管显示1~4不同的选手编号。如图4所示,M2.0为开始抢答标志位,M0.5为系统内部1 Hz周期信号,Q1.0为出题指示灯。主持人按下开始抢答按钮,开始抢答标志位M2.0有效,若4位参赛选手均未按下抢答按钮,则出题指示灯Q1.0会以1 s的周期闪烁,直到有一位选手抢答成功。M1.1为2号选手抢答标志位,M1.2为3号选手抢答标志位,这两位选手编号的显示,均需要点亮7段数码管的“a”字段。
图4 数码管控制程序示例
4 结语
本文主要介绍了一种基于西门子S7-1200系列PLC的四路抢答器控制系统。所给出的程序设计方案合理,易于理解,编程技巧强[6]。通过按钮SB0控制输入端子I1.0进而控制抢答系统的开始;开始抢答后,出题指示灯Q1.0会以1 s的周期闪烁;闪烁期间,选手可按下抢答按键I0.0~I0.3进行抢答,只要有一位选手抢答成功,电路互锁,其他选手就不能抢答,并通过控制七段数码管Q0.0~Q0.6来显示抢答成功的选手编号;通过按钮SB9控制输入端子I1.1来完成抢答系统的复位功能,清除一切系统状态,开启下一轮抢答。本文所介绍的控制系统性能稳定,使用方便,可广泛用于各种比赛抢答系统。