当前位置:文档之家› 基于PLC的简单抢答器的设计

基于PLC的简单抢答器的设计

四组抢答器的设计
设计要求:设计一个4组抢答器,即有4组选手,一位主持人。

主持人有一个开始答题按钮,一个系统复位按钮。

如果主持人按下开始答题按钮后,开始计时,时间在数码管上显示,在8秒内仍无选手抢答,则系统超时指示灯亮,此后不能再有选手抢答;若有人抢答,优先抢到者指示灯亮,选手序号在数码管上显示,(不再显示时间)其他选手按钮不起作用。

弱主持人未按下开始按钮,有选手抢答,则犯规指示灯亮并闪烁,同时选手序号在数码管上显示,其他选手按钮不起作用。

所有各种情况,只要主持人按下复位按钮,系统回到初始状态。

抢答器的示意图如下:
SB1SB2SB3SB4
HL4HL2HL31HL第一组第四组第二组第三组
CPU226
a
HL6HL5b
f
g 犯规指示灯超时指示灯c e
SB5SB0d
显示数码管复位按钮开始按钮
系统整体分析
分析设计要求可知,该抢答系统的输入量有4位抢答选手的按钮输入信号,主持人的开始按钮输入信号和复位输入信号。

输出量有各个指
示灯(共六个)和数码管字段码输出信号。

现将I/O分配如下:
备注:该系统数码管采用共阴数码管。

对于该抢答器系统,将之拆分为各个模块,主要有:
1.复位与置位模块:
该模块可以通过RS触发器来实现。

2.倒数计时与显示模块
倒数计时功能可以通过定时器实现,系统要求时间为8秒,可以选用T40(单位为100ms)的定时器实现,初值设定为80。

倒数计时的显示可以根据时间预设变量来进行计算生成相应的字段码送给SEG 显示模块来实现。

3.指示灯响应模块
该模块包括组号指示灯响应,犯规指示灯响应,超时指示灯响应。

可以根据主持人是否按下开始按钮,是否超时,和组员抢答等情况来编写相应的程序。

4.组号显示模块
该模块根据选手抢答状态,将相应的选手号码转换为字段码送到PLC与数码管相连的输出口,可以通过PLC自带的SEG算法实现,
也可以通过MOV指令将相应的字段码发送到输出端,显示相应的组号。


系统流程图
系统模块联系图
系统原理图
系统的示意图。

PLC备注:以上为用单
片机系统对应对应关系如下:P1.5/I0.P1.4/I0.4 P1.3/I0.3
P1.1/I0.1
P1.2/I0.2 P1.0/I0.0
输入量 5
P1.6/ P1.1/ P1.2/ P1.3/ P1.4/ P1.5/ 指示灯Q0.5
Q0.6
Q0.3 Q0.1 Q0.4 Q0.2
输出量P3.0/Q1.P3.1/Q1.P3.2/Q1.P3.3/Q1.P3.4/Q1.P3.5/Q1.P3.6/Q1. 数码
管6
5 4 3 2 1 0
系统主要模块介绍复位置位模块:1.
该模块是由网络1与网
络8构成。

采用RS触发
器进行置位和复位功
能,在没有人提前抢答
的情况下,主持人按下
开始按钮,系统被置位;按下复位按钮后,通过网络8对系统复位,复位置位信号由RS触发器体现。


2.倒数计时显示模块:
1
1
位整数相16T38变量的值参与计算,首先做10该模块通过网络2和,在没有任何抢答信号的情况下,由定时器型数据送到和VB,再将得到的VW型数据转换为和得到的结果相减(为了显示倒数计时)除的运算,然后用8 ,从而显示倒数计时。

QB1相连的输出口SEG数码管.示灯响应模块指2.
第一部分:
该模块分普通抢答响应和犯规响应,以上为抢答响应,在系统被置位后,没有超时的情况下,该模块将对
选手的抢答信号做出相应的动作,该模块主要部分采用互锁形式连接,故只对最先抢答的选手做出相应,
点亮相应组号的灯。


第二部分:
该部分是对选手的犯规情况做出相应,是由网络5和7共同完成的:当系统没有置位而有选手抢答时,将在中的犯规指示灯,7M0.1~M0.4中产生犯规信号,从而出发网络通过PLC自带的SM0.5特殊寄存位(系统自带时钟脉冲,每0.5s 翻转一次)从而时犯规指示灯闪烁。


选手序号显示模块4.
该模块和倒数计
时显示算法有所区别:是通过指示灯响应模块发出的信号,将相应组号数字对应的字段码(共阴数码管)发送到
与SEG连接的端
口QB1,从而显示组号系统源程序
1
1
系统符号表
基于PLC的简单抢答器的设计
系统工作原理
系统的工作按照流程图进行(在任何时候按下复位键,系统均可立即复位),具体过程不再说明,以下把几个重点声明一下:
1.该系统通过RS触发器实现置位与复位:通过开始按钮SB0(I0.0)置系统为开启状态,并且通过常闭的M0.1~M0.4使系统
在非法状态下(有选手提前抢答)关闭定时器,保证在此情况下现实犯规组号。

该系统通过SB5(I0.5)进行复位。

2.当系统置位后,在没有选手犯规的情况下(Q0.1~Q0.4输出无效电平)且定时器8秒及时没有溢出时,对选手的抢答信号进行响应。

3.当定时器正常工作时,在8秒内若没有选手抢答,Q0.6输出有效电平,点亮超时指示灯,必须通过复位按钮才能重置系统。

若有选手抢答,通过SEG模块在数码管上现实相应的组号,即当选手抢答时,相应的SEG显示模块处于使能有效状态,此时将相应的组号数字转换为字段码送到SEG模块显示组号。

当选手犯规时,显示组号的原理与此相同。

4.若选手犯规,点亮犯规指示灯,并通过SM0.5闪烁显示。

此时必须按复位键复位系统。

通过SB5(I0.5)(网络8)使PLC 的寄存器(M0.1~M0.4)以及输出口(Q0.1~Q0.6;Q1.0~Q1.6)恢复到初始状态。

6.在显示倒数计时的过程中,当选手抢答时,程序应无条件跳转(通过网络9和11),否则Q1.0~Q1.6中的内容将与SEG输出数据冲突,无法正常显示倒数计时或组号。

、.
基于PLC的简单抢答器的设计
实践总结
本次课程设计与抢答器相关,其中应用到西门子S7 200系列PLC的基本指令:常开触点,常闭触点,SEG显示,数据传送,置位,复位等。

是一个综合性较强的设计项目。

本次课程设计的内容比较简单,参考了一下书上的源程序后,发现有两处小错误:1.设计要求在有选手犯规的情况下,犯
规灯闪烁。

而书上的参考程序是在超时的情况下让超时灯闪烁。

2.计时的8秒书上只有7秒,只显示1~7秒,应显示0~7秒。

此外参考程序实现即时显示功能的算法过于繁琐,因此我加以改进。

此外,计时功能书上是正数的,我是实现的倒数计时,更符合实际情况。

在设计的过程中,闪烁这个问题比较有意思。

之前我有4种算法:1.利用两个交替工作的定时器实现闪烁功能。

2.利用
一个定时器和一个T触发器实现功能。

3.利用系统自带的
SM0.5时钟脉冲实现功能。

4.利用定时器中断实现该功能。

最后我选用了最为方便的系统时钟脉冲功能实现指示灯的
闪烁。

同时也发现S7 200系列的PLC内部不支持T触发器。

在设计结束后再来考虑这个问题可以发现,用梯形图设计程序虽然简单直观,但是修改起来比较麻烦。

比如要设计一个
八位抢答器,那么要在原来的基础上进行很大的改动。

和C 语言等其他的高级语言相比,有很多局限性。

另外西门子S7 200系列的PLC没有与其对口的仿真软件,这对调试程序带来很多不必要的麻烦,也难怪它是入门级的产品。

想要更好的应用西门子PLC,那必须转向其高端产品,否则遇到更大的项目或工程,用200系列来完成显然是不现实的。

此外PLC 广泛应用于工控领域,已经逐渐走向统一,因此梯形图确实是一种优秀的编程语言,很容易入门,在工控方面得到广泛的应用。

.。

相关主题