基于PLC的简单抢答器的设计 - 图文

更新时间:2023-12-30 13:23:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

四组抢答器的设计

设计要求:设计一个4组抢答器,即有4组选手,一位主持人。主持人有一个开始答题按钮,一个系统复位按钮。如果主持人按下开始答题按钮后,开始计时,时间在数码管上显示,在8秒内仍无选手抢答,则系统超时指示灯亮,此后不能再有选手抢答;若有人抢答,优先抢到者指示灯亮,选手序号在数码管上显示,(不再显示时间)其他选手按钮不起作用。弱主持人未按下开始按钮,有选手抢答,则犯规指示灯亮并闪烁,同时选手序号在数码管上显示,其他选手按钮不起作用。所有各种情况,只要主持人按下复位按钮,系统回到初始状态。抢答器的示意图如下:

SB1 HL1 第一组 SB2 HL2第二组 SB3 HL3 第三组 SB4 HL4 第四组 CPU226 a HL5 犯规指示灯 SB0 开始按钮 HL6 超时指示灯 f g e b c d SB5 复位按钮 显示数码管 3

系统整体分析

分析设计要求可知,该抢答系统的输入量有4位抢答选手的按钮输入信号,主持人的开始按钮输入信号和复位输入信号。输出量有各个指示灯(共六个)和数码管字段码输出信号。现将I/O分配如下:

输入量 输出量 指示灯 数码管 SB0/I0.0 SB1/I0.1 SB2/I0.2 SB3/I0.3 SB4/I0.4 SB5/I0.5 HL0.1/ HL0.2/ HL0.3/ HL0.4/ HL0.5/ HL0.6/ Q0.1 Q0.2 Q0.3 Q0.4 Q0.5 Q0.6 a/Q1.0 b/Q1.1 c/Q1.2 d/Q1.3 e/Q1.4 f/Q1.5 g/Q1.6 备注:该系统数码管采用共阴数码管。

对于该抢答器系统,将之拆分为各个模块,主要有: 1.复位与置位模块:

该模块可以通过RS触发器来实现。

2.倒数计时与显示模块

倒数计时功能可以通过定时器实现,系统要求时间为8秒,可以选用T40(单位

为100ms)的定时器实现,初值设定为80。倒数计时的显示可以根据时间预设变量来进行计算生成相应的字段码送给SEG显示模块来实现。 3.指示灯响应模块

该模块包括组号指示灯响应,犯规指示灯响应,超时指示灯响应。可以根据主持

人是否按下开始按钮,是否超时,和组员抢答等情况来编写相应的程序。 4.组号显示模块

该模块根据选手抢答状态,将相应的选手号码转换为字段码送到PLC与数码管相

连的输出口,可以通过PLC自带的SEG算法实现,也可以通过MOV指令将相应的字段码发送到输出端,显示相应的组号。

4

系统流程图

START N 是否按开始按钮 Y N 是否有人抢答 N 是否超时 Y Y 犯规指示灯亮 显示倒数计时 超时指示灯亮 N 是否有人抢答 Y 相应组号灯亮 显示相应组号 Y 是否按复位键 N 5

系统模块联系图

复位置位模块 置位 置位 复位 复位 倒数计时模块 抢答开关信号 指示灯模块 复位 倒数变量值 抢答开关信号 数字显示模块 6

系统原理图

备注:以上为用单片机系统对应PLC系统的示意图。 对应关系如下:

输入量 P1.0/I0.0 P1.1/I0.1 P1.2/I0.2 P1.3/I0.3 P1.4/I0.4 P1.5/I0.5 P1.6/ Q0.6 指示灯 输出量 数码管 P1.1/ Q0.1 P1.2/ Q0.2 P1.3/ Q0.3 P1.4/ Q0.4 P1.5/ Q0.5 P3.0/Q1.0 P3.1/Q1.1 P3.2/Q1.2 P3.3/Q1.3 P3.4/Q1.4 P3.5/Q1.5 P3.6/Q1.6 7

系统源程序

13

14

15

1 1

16

系统符号表

17

系统工作原理

系统的工作按照流程图进行(在任何时候按下复位键,系统均可立即复位),具体过程不再说明,以下把几个重点声明一下: 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输出数据冲突,无法正常显示倒数计时或组号。 、

18

实践总结

本次课程设计与抢答器相关,其中应用到西门子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广泛应用于工控领域,已经逐渐走向统一,因此梯形图确实是一种优秀的编程语言,很容易入门,在工控方面得到广泛的应用。

19

本文来源:https://www.bwwdw.com/article/7l1x.html

Top