Ff*
ILU
Bin.
Nt(J
*R
ID2
HQ2
M-Kni-.T^
00;
^Sn«4
104
Nm
IILflllM~
00厂
me
IU4
X^.Wi=Z
NO1
ILZl疋齢V
ijjf
J»ti
151~
NQl
*屯=!
耶.:
眄
JT.£r.t
lajWgrmi
-^11-SkOG靳珂i®亍叮口口
■二珊X題Fl;
—I\——II—
fr=i血
NH.
NIL3i
插,呦*一琮
N[l1
■计r羯工#
Nftl
005
hla.刿忙可忡
5N09
该部分是对选手的犯规情况做出相应,是由网络5和7共同完成的:
当系统没
有置位而有选手抢答时,将在7中的犯规指示灯,中产生犯规信号,从而出发网络M0.1~M0.4通过PLC自带的SM0.5特殊寄存位(系统自带时钟脉冲,每0.5s翻转一次)从而时犯规指示灯闪烁。
17
/11
选手序号显示模块4.
甘电llyt|皑*|
uh-fi=!
LUA
时"
N1D
.*-41.CSt4
M2
m3KKS3T~
W~
■兰卄如
NH3
亦
・9i££Mii4
MC1D
百丽广1
1“
毎一审酬谓号
NL1
■tL1
adii
该模块和倒数计
时显示算法有所区别:
是通过指示灯响应模块发出的信号,将相应组号数字对应的字段码(共阴数码管)发送到
连接的端与SEG
,从而显QB1口示组号
17
/12
系统源程序
IN
"TTP
WnAi
Ed■什er・f
M-iattf-QDiBzippTr-au■三目好m・皿览盘〒「do』EMH«i4ig
—II1I__—I*|-一I*I1,卜——I)H
m:
!
|酢脂mqw
ElUttl-UTIO耐什■Q『36U&TETWit
TI—pHI—T—()
|鋼曲gfjq|讐mycE
鼻三・』心»-®rerAgoi*-awf*Mi;waeit^-fla*■\nwf.-m
«mniD4iHi-witTQQi・=my園;・三包|祐qq;】・rauktqh«
T\FIM:
)
me
manmio
17
/14
ITI朗昨
17
/15
S|
符号
地址|
ii1
开始
10.0
2
10.5
3
j
10.1
4
第二蛆
10.2
5
第三組
10.3
6
第四組「
10.4
7
0数计时器
T39
8
第一粗指示灯
Q0.1
9
第二爼指示灯
Q012
10
第三組指示灯
QO.3|
11'
第四鲍指不灯
Q0.4—
12
犯规指亦灯
QO.5
13
超时指示灯
00.6
14
系统2h虻钟騰冲
SM0.5
15
第一鉅犯规信号
M0.1
16
第二组犯规信号
M0.2
17
第三组犯规信号
M03
18
第四组犯规信号
M04
了厂
复位査位信号
MOO
20
超时信号|
Mf.O
21
17
/17
系统工作原理
系统的工作按照流程图进行(在任何时候按下复位键,系统均可
立即复位),具体过程不再说明,以下把几个重点声明一下:
1.该系统通过RS触发器实现置位与复位:
通过开始按钮SBO
(10.0)置系统为开启状态,并且通过常闭的M0.1〜M0.4使系统
在非法状态下(有选手提前抢答)关闭定时器,保证在此情况下
现实犯规组号。
该系统通过SB5(10.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输出数据冲突,无法正常显示倒数计时或组号。
17/18
实践总结
本次课程设计与抢答器相关,其中应用到西门子S7200系列PLC的基本指令:
常开触点,常闭触点,SEG显示,数据传送,置位,复位等。
是一个综合性较强的设计项目。
本次课程设计的内容比较简单,参考了一下书上的源程序后,发现有两处小错误:
1.设计要求在有选手犯规的情况下,犯规灯闪烁。
而书上的参考程序是在超时的情况下让超时灯闪烁。
2.计时的8秒书上只有7秒,只显示1~7秒,应显示0~7秒。
此外参考程序实现即时显示功能的算法过于繁琐,因此我加以改进。
此外,计时功能书上是正数的,我是实现的倒数计时,更符合实际情况。
在设计的过程中,闪烁这个问题比较有意思。
之前我有4种算法:
1.利用两个交替工作的定时器实现闪烁功能。
2.利用一个定时器和一个T触发器实现功能。
3.利用系统自带的SM0.5时钟脉冲实现功能。
4.利用定时器中断实现该功能。
最后我选用了最为方便的系统时钟脉冲功能实现指示灯的闪烁。
同时也发现S7200系列的PLC内部不支持T触发器。
在设计结束后再来考虑这个问题可以发现,用梯形图设计程序虽然简单直观,但是修改起来比较麻烦。
比如要设计一个八位抢答器,那么要在原来的基础上进行很大的改动。
和C语言等其他的高级语言相比,有很多局限性。
另外西门子S7200系列的PLC没有与其对口的仿真软件,这对调试程序带来很多不必要的麻烦,也难怪它是入门级的产品。
想要更好的应用西门子PLC,那必须转向其高端产品,否则遇到更大的项目或工程,用200系列来完成显然是不现实的。
此外PLC广泛应用于工控领域,已经逐渐走向统一,因此梯形图确实是一种优秀的编程语言,很容易入门,在工控方面得到广泛的应用。
17
/19