资源描述
课程名称:逻辑与可编程控制器
设计题目:交通信号协调控制系统
哈尔滨工业大学课程设计任务书
课程设计题目:
交通信号协调控制系统
已知技术参数和设计要求:
以“交通灯模型”为被控对象,以S7 200 PLC-CPU224XP为控制器,设计交通信号灯控制系统。实现孤立路口的固定配时和适应性控制两种方案,及两组交通信号的协调控制,并利用触摸屏TP177B设计交通信号状态的监控系统。
工作量:
1)根据项目的技术指标,项目组成员通过集体讨论共同制定系统的总体设计方案。
2) 胡浩、将生成完成交通灯状态监控系统设计。
3)在实验设备上进行系统的局部调试和联合调试。
4)整理设计文件,撰写设计说明书。
工作计划安排:
(学时安排为1周,但考虑实验的安排,需分散在2~3周内完成)
第1阶段:立题和辅导
全体开会,下达设计题目,成立项目组(每组6人)。参加课程设计辅导讲座。
第2阶段:设计和调试
查阅有关文献,制定系统的总体设计方案;根据设计分工开展系统的软、硬件设计工作。同时进入实验室,在实验装置上进行调试和改进。
第3阶段:整理和总结
调试成功后,全面总结设计工作,撰写设计说明书。
第4阶段:项目验收
设计工作全部完成后,将集中时间进行项目验收。
同组设计者及分工:
本设计由3个设计小组协作完成:
设计小组1的任务:1#交通灯控制系统设计;
设计小组2的任务:2#交通灯控制系统设计;
设计小组3的任务:交通灯状态监控系统设计;
本人与共同组成第设计小组,合作完成设计任务。
指导教师签字___________________
2009 年 4 月 7 日
教研室主任意见:
教研室主任签字___________________
年 月 日
*注:此任务书由课程设计指导教师填写
1 项目简介
1.目的和意义
在《逻辑与可编程控制器》课程的基础上,针对具体控制对象设计一个以S7 200 PLC为核心的控制系统,进一步培养独立设计电气控制系统及编写、调试复杂逻辑控制程序的能力。同时在多人协作完成项目的过程中,培养团队精神和协作能力。
2.项目的技术要求
以“交通灯模型”为被控对象,以S7 200 PLC-CPU224 XP为控制器,设计交通信号灯控制系统。实现孤立路口的固定配时和适应性控制两种方案,及两组交通信号的协调控制,并利用触摸屏TP177B设计交通信号状态的监控系统。
3.设计内容
1)根据项目的技术指标,项目组成员通过集体讨论共同制定系统的总体设计方案,然后将任务分解到每个设计小组。
2)根据分工,各设计小组分别完成自己的设计任务。
3)在实验设备上进行系统的局部调试和联合调试。
4)以项目组为单位进行项目验收。
5)整理设计文件,撰写设计说明书。
4.总体设计方案
图1.1 交通灯协调控制系统
交通信号协调控制系统的实验设备由连成一体的3个实验台组成,利用PPI网络电缆将其组成总线式工业控制网络。TP170B PN/DP为西门子人机界面产品中的触摸屏,CPU224 XP DC/DC/DC为西门子S7 200系列的PLC。
交通灯控制系统能够实现固定配时和适应性控制两种模式。其模式选择由上位机监控系统发出的指令来决定。
固定配时模式下,各个信号灯的时间是固定的,时间的长短可由交通灯模型上的数码拨轮设定或者由上位机监控系统发出的指令来设定。此外,系统采用数码管对当前状态进行倒计时。
适应性控制模式下,系统能够利用车辆检测装置检测该方向上车辆的数目,从而根据车辆多少调整绿灯的时间,若车辆很少,则绿灯时间很短,若车辆增加,则绿灯时间相应地增加,但绿灯时间不能超过其上限值。另外,如果有行人请求过街,系统会自动将绿灯时间调整到一个合适值。与固定配时模式一样,也采用数码管对当前状态进行倒计时。
上位机监控系统能够实现以下三个功能:①设定系统的工作模式(固定配时模式或适应性控制模式);②监控两个路口各个交通灯的状态并用数码管显示交通信号灯的变化时间;③在固定配时模式中,设定直行绿灯、左转绿灯、禁止通行的时间。
2 系统的硬件设计
1. 交通灯控制系统组成
图2.1 交通灯控制系统硬件框图
图2.1给出了交通灯控制系统的组成。为了更逼真地进行系统调试,交通灯控制系统中采用了十字路口交通信号灯模型,作为被控对象,它可模拟交通信号灯的变化及其控制。该模型通过连个航空插头CN1、CN2及所带控制电缆,与PLC的控制端口相连。PLC的控制板由24V直流控制电源,CPU224XP及端子排组成,为了方便接线,PLC上所有I/O口都连接到下方的端子排上,使用时需要将控制对象上通过航空插头连接过来的信号线接到端子排上。端子排的接线如附录一中图5.1所示,其中-X1代表端子排。交通信号灯模型的面板及内部接线如图2.2所示,其主要功能如下:
1)数码拨轮。数码拨轮W1,W2的作用是设定交通信号的配时。数码拨轮由两位数组成,每位数的范围是0~9,按拨轮上的“+”或“-”键可改变其数值。每位拨轮输出的四个二进制位组成了BCD码,用来表示所设定的数值。拨轮左侧的Enter按钮,用来发出确定指令,使控制器接收拨轮设定的数值。
2)数码管。1位数码管LED可显示交通信号灯变化时间的指示屏。
3)信号灯。指示灯L1~L3(红、黄、绿)代表该行车方向上左转弯控制信号;指示灯L4~L6(红、黄、绿)代表该行车方向上直行控制信号;指示灯L7~L8(红、绿)代表行人过道的指示信号。Crosswalk按钮为行人过道的请求按钮。
4)车辆感应器。Detector按钮用来模拟车辆感应器,按钮按下表示有车辆经过检测线圈(虚线框)的下方。
2.IO分配
系统的IO分配如表2.1所示。其中W1-x(x=1、2、4、8)是以BCD码的形式从低到高依次表示数码拨轮W1的第0、1、2、3位,W2-x(x=1、2、4、8)是以BCD码的形式从低到高依次表示数码拨轮W2的第0、1、2、3位。W1给出设定值的十位,W2给出设定值的个位。由于输出端子较少,仅使用了LED七段数码管的4位中3位,因此数码管仅能显示7及7以下的数字。LED1、LED2、LED4分别表示经过译码后的LED显示数值的第0、1、2位。直行红灯与人行红灯共用一个输出端子。
表2.1 IO分配表
I:输入
O:输出
地址
名称
电缆编号
地址
名称
电缆编号
I0.0
W1-1
CN1-1
Q0.0
LED1
CN2-1
I0.1
W1-2
CN1-2
Q0.1
LED2
CN2-2
I0.2
W1-4
CN1-3
Q0.2
LED4
CN2-3
I0.3
W1-8
CN1-4
Q0.3
L1
CN2-5
I0.4
W2-1
CN1-5
Q0.4
L2
CN2-6
I0.5
W2-2
CN1-6
Q0.5
L3
CN2-7
I0.6
W2-4
CN1-7
Q0.6
L4、L7
CN2-8(11)
I0.7
W2-8
CN1-8
Q0.7
L5
CN2-9
I1.0
Enter
CN1-9
Q1.0
L6
CN2-10
I1.1
Crosswalk
CN1-10
Q1.0
L8
CN2-12
I1.2
Detector
CN1-11
M
0V
CN-14
L+
24V
CN-14
3 系统的软件设计
1.交通灯控制系统时序
交通灯控制系统能够实现固定配时和适应性控制两种模式。两种模式下,将一个循环分成5个状态,状态1~5,如图3.1所示。状态1表示直行绿灯亮;状态2表示直行黄灯亮,直行黄灯亮的时间是固定的(3s),且以1s为周期闪烁(亮0.5s,灭0.5s);状态3表示左转绿灯亮;状态4表示左转黄灯亮,左转黄灯亮的时间是固定的(3s),且以1s为周期闪烁(亮0.5s,灭0.5s);状态5表示禁止通行,以使另外方向上的车辆及行人通行。状态分区如图3.2所示。左转期间禁止直行,故直行红灯在状态3、状态4、状态5期间一直亮。直行期间禁止左转,故左转红灯在状态1、状态2、状态5期间一直亮。人行绿灯在直行黄灯闪烁其间也以1s为周期进行闪烁,以警示行人。人行红灯与左转红灯共用一个输出端口。
图3.1 交通灯控制系统时序图及其状态分区
2.软件流程及编程
系统的主程序流程图如图3.2所示。首先调用网络子程序,进行三个PLC之间的通信,然后对程序中使用的一些内存单元进行初始化,再根据触摸屏给出的指令判断程序运行模式,分别调用相应的子程序。固定配时模式子程序的流程图如图3.3所示。自适应控制模式子程序的流程图如图3.4所示。用5个标志位分别标志5种状态,各个状态的切换采用如下方法:用上一个状态的结束启动该状态的标志位,并用该标志位启动该状态的定时器,如果定时器计时到,则将标志位复位,同时启动下一个状态。
图3.2 主程序流程图
图3.3 固定配时模式子程序
固定配时模式中,在各个状态有效期间如果有Enter键按下,可以读取数码拨轮的值,以作为该状态的持续时间的给定值,这样数码拨轮就可以设定多个状态的给定值。
自适应配时模式时,可以根据人行请求和车辆数目调整绿灯时间。若有人行请求,且直行绿灯时间小于6s,则将绿灯时间置为6s,若直行绿灯时间大于6s则不需处理人行请求。人行请求处理子程序如图3.5所示。在状态1期间,如果检测到有车通过,则将直行绿灯时间增加1s,但直行绿灯时间不能超过20s,这是为了防止如果该方向上如果一直有车通过时,则另外车道上一直是红灯,无法通行。车辆检测处理子程序如图3.6所示。
程序清单如附录二所示。其中,用到的定时器如表3.1所示,用到的变量如表3.2所示。
图3.4 自适应模式子程序
表3.1定时器使用情况
定时器编号
定时器用途
定时器编号
定时器用途
T37
状态1定时
T40
状态4定时
T38
状态2定时
T41
状态5定时
T39
状态3定时
T42
产生秒脉冲
表3.2 程序中用到的变量
地址
意义
地址
意义
M0.0
状态1的标志位
VW8
左转绿灯时间-1
M0.1
状态2的标志位
VW10
禁止通行时间-1
M0.2
状态3的标志位
VW12
直行绿灯时间×10
M0.3
状态4的标志位
VW14
左转绿灯时间×10
M0.4
状态5的标志位
VW16
禁止通行时间×10
M1.0
模式选择位(0:固定模式;1:自适应模式)
VW18
直行绿灯时间(通信)
M2.0
人行请求标志位
VW20
左转绿灯时间(通信)
VW0
直行绿灯时间
VW22
禁止通行时间(通信)
VW2
左转绿灯时间
VW24
车辆数目
VW4
禁止通行时间
VW100
数码管当前值
VW6
直行绿灯时间-1
VW103
数码管当前值÷5
图3.5 人行请求处理子程序 图3.6 车辆检测处理子程序
4 调试过程及结果
1.调试过程
①接线。
按照设计的IO分配图将电缆的接头接入PLC控制板上相应的端子上。
②下载。
将编好的梯形图程序下载到PLC中,并点击运行按钮,使PLC进入运行状态。
③固定配时模式测试。
单机进行测试时,可以将PLC的一个空闲的输入端口(例如I1.5)设定为系统的模式选择控制开关,首先观察系统是否能够按照预定的时序工作,然后再利用数码拨轮设定各个状态的时间,看系统是否能够按照数码拨轮设定的时间工作。
④自适应配时模式测试。
该过程分为以下四步:
a. 观察系统是否能够按照预定的时序工作。
b. 验证行人请求按钮是否有效。按下Crosswalk按钮,观察直行绿灯时间是否延长至6s,再观察下一个循环中,直行绿灯时间是否恢复到正常。
c. 验证车辆检测按钮是否有效。按下几次Detector按钮,观察直行绿灯时间是否相应地增加,停止按下Detector按钮,再观察下一个循环中,直行绿灯时间是否恢复到正常。在一个循环中按下20次以上Detector按钮,观察直行绿灯时间是否超过20s。
d. 在直行绿灯时间超过6s的状态时,再按下Crosswalk按钮,直行绿灯时间仍为原来的数值,而不是6s。
⑤联机调试。
图4.1 路口监控界面 图4.2 时间设定界面
a. 观察触摸屏能否能够与2个路口的PLC正确通信,监视2个路口各个交通灯的状态。监控界面如图4.1所示。
b. 利用触摸屏设定系统的工作模式,观察2个系统能否按照给定的模式工作。模式切换按钮在图4.1中左下角。
c. 在固定配时模式下,利用触摸屏设定系统各状态的时间,观察系统能否按照设定的时间工作。时间设定界面如图4.2所示。
2.遇到的问题及解决的方法
①数码管显示不正确,原因在于其初值设置不对,数码管的初值应设置为每段时间的秒数减一。
②PLC通信错误,原因在于存储单元分配混乱,一些存储单元同时进行读写操作,解决方法是重新合理分配存储单元。
3.实验结果
固定配时模式下,系统能够按照预定的时序工作,也能够按照数码拨轮设定的时间工作。
自适应模式下,系统能够根据人行请求和检测的车辆数目正确设定直行绿灯时间,且不会超过其上限值。
联机调试时,触摸屏能够实时地观察各个路口交通灯的状态,并能够进行模式转换以及设定固定配时各个状态的时间长度。
5 课程设计感言及建议
1.课程设计感言
通过这次课程设计,使我们对PLC的使用有了更深入的了解,学会了PLC的开发步骤。PLC编程之前,要有一个总体的设计思路,最好能画出流程图,并将要使用的存储单元等进行合理分配,在编程和调试的过程中才不至于很混乱。2.建议
①课程设计前做的辅导不够,导致调试过程中走了很多弯路,尤其是PLC通信的实现,由于课程学习过程中,没有对这方面的讲解,因此,在进行通信的实现中大家普遍感觉有点吃力。
②调试时间有些短,可适当增加一两天。
③应鼓励学生有所创新,设计项目可以更加多样化。
6 附录
附录一:电气接线图
图5.1 交通灯模型与PLC控制板接线图
图5.2 PLC供电图
图5.3 触摸屏TP107B供电图
图5.4PPI网络连接图
附录二:PLC程序清单
Network 1
// 调用网络读写子程序。
LD SM0.0
CALL SBR0, 0, M5.0, M5.1
Network 2
// 上电初始化。
LD SM0.1
MOVW +5, VW0
MOVW +5, VW2
MOVW +6, VW4
MOVW +4, VW6
MOVW +4, VW8
MOVW +5, VW10
MOVW +50, VW12
MOVW +50, VW14
MOVW +60, VW16
MOVW +5, VW100
Network 3
// 主站从站通信。
LD SM0.0
MOVW VW0, VW18
MOVW VW2, VW20
MOVW VW4, VW22
Network 4
// 自适应模式下程序每次扫描都去检测是否有人行请求,如有则将其记录下来
LD M1.0
A I1.1
S M2.0, 1
Network 5
// 初始化设置为状态5(左转,直行两个红灯亮)
LD SM0.1
S M0.4, 1
Network 6
// T43是由自适应模式转入固定配时模式时,需要使状态5再持续一段时间,以将另外车道的车清理完毕后再使本车道开通,定时结束后,状态5结束。
LD T43
R M0.4, 1
Network 7
// 状态1的控制:状态5的结束,启动状态1,T37定时时间到,状态1结束。
LDN T37
A M0.0
LD M0.4
ED
OLD
= M0.0
Network 8
// 车辆计数器计数
LD M1.0
A M0.0
A I1.2
EU
AW<= VW24, 20
INCW VW24
Network 9
// 下次循环中根据车辆感应器更新绿灯的时间
LD M1.0
A M0.0
ED
MOVW VW24, VW0
+I +1, VW0
Network 10 //
// 状态1开始,将数码管的初始值装入数码管的当前值VW100中。
LD M0.0
EU
MOVW VW6, VW100
Network 11
// 状态1(绿灯亮5s)开始,启动定时器T37,T37计时到,则产生一个扫描周期的脉冲。
LDN T37
A M0.0
TON T37, VW12
Network 12
// 在状态1期间,如果按下ENTER键,读取数码拨轮的值,存到VW0中。
LD M0.0
A I1.0
MOVB IB0, VB0
AENO
BTI VB0, VW0
AENO
BCDI VW0
Network 13
// 状态2的控制:状态1结束时启动状态2,T38定时时间到,结束状态2.。
LDN T38
A M0.1
LD M0.0
ED
OLD
= M0.1
Network 14
// 状态2开始,将数码管的初始值存入数码管的当前值VW100中。
LD M0.1
EU
MOVW +2, VW100
Network 15
// 状态2(黄灯闪3s)启动定时器T38,T38定时时间到,则产生一个扫描周期的脉冲。
LDN T38
A M0.1
TON T38, +30
Network 16
// 状态3的控制:状态2结束,启动状态3,T39定时时间到,结束状态3。
LDN T39
A M0.2
LD M0.1
ED
OLD
= M0.2
Network 17
// 状态3开始时,将数码管的初始值装入数码管的当前值中。
LD M0.2
EU
MOVW VW8, VW100
Network 18
// 状态3(红灯亮,左转绿灯亮5s),状态3开始,启动定时器T39,T39定时时间到,结束状态3。
LDN T39
A M0.2
TON T39, VW14
Network 19
// 在状态三期间,如果按下ENTER键,读取数码拨轮的值,存到VW2中。
LD M0.2
A I1.0
MOVB IB0, VB2
AENO
BTI VB2, VW2
AENO
BCDI VW2
Network 20
// 状态4的控制:状态3结束,启动状态4,T40计时到,结束状态4。
LDN T40
A M0.3
LD M0.2
ED
OLD
= M0.3
Network 21
// 状态4开始时,将数码管初始值装入数码管的当前值VW100中。
LD M0.3
EU
MOVW +2, VW100
Network 22
// 状态4(左转黄灯闪3s,红灯继续亮):状态4开始时,启动定时器T40,T40计时时间到,产生一个扫描周期的脉冲。
LDN T40
A M0.3
TON T40, +30
Network 23
// 状态5的控制:状态4结束,启动状态5,定时器T41定时到,结束状态5。
LDN T41
A M0.4
LD M0.3
ED
OLD
= M0.4
Network 24
// 状态5开始时,将数码管的初始值装入数码管的当前值中。
LD M0.4
EU
MOVW VW10, VW100
Network 25
// 状态5(两个红灯亮6s)的定时控制:当系统处于固定配时状态时,状态5开始,启动定时器T41,T41定时时间到,产生一个扫描周期的脉冲。当系统处于自适应模式时,T41不计数,这样系统就停留在状态5,直至CrossWalk或Detector再次按下,用M0.6启动T43,从而结束状态5。
LDN T41
A M0.4
TON T41, VW16
Network 26
// 在状态5期间,如果按下ENTER键,读取数码拨轮的值,结果保存在VW4中。
LD M0.4
A I1.0
MOVB IB0, VB4
AENO
BTI VB4, VW4
AENO
BCDI VW4
Network 27
// 用上个状态的结束下降沿去清零车辆检测器的计数值
LD M1.0
A M0.0
ED
MOVW 0, VW24
Network 28
// 当系统由固定模式进入自适应模式时,给配时寄存器进行赋值。
LD M1.0
EU
MOVW +1, VW0
MOVW +3, VW2
MOVW +5, VW4
Network 29
// 当系统由自适应模式转入固定模式时,重新给固定模式的配时寄存器赋值。
LD M1.0
ED
MOVW +5, VW0
MOVW +5, VW2
MOVW +6, VW4
Network 30
// 在状态5的结束对人行请求进行处理,如果有人行请求,当绿灯时间大于6s时,则将人行请求复位,如果绿灯时间小于6s则将绿灯时间设置为6s,同时将人行请求复位。
LD M0.4
ED
A M2.0
LPS
AW>= VW0, 6
R M2.0, 1
LPP
AW< VW0, 6
MOVW +6, VW0
AENO
R M2.0, 1
Network 31
// 在每轮循环的结束时,计算数码管的初始值,分别保存到VW6,VW8,VW10中。
LD M0.4
ED
MOVW VW0, VW6
DECW VW6
MOVW VW2, VW8
DECW VW8
MOVW VW4, VW10
DECW VW10
Network 32
// 在每轮循环的结束时,计算定时器更新值,由于采用的定时器的时基时间为100ms,故需将读取值乘以10。定时器的定时时间分别保存在VW12,VW14,VW16中。
LD M0.4
ED
MOVW VW0, VW12
*I +10, VW12
MOVW VW2, VW14
*I +10, VW14
MOVW VW4, VW16
*I +10, VW16
Network 33
// 左转红灯输出。
LD M0.0
O M0.1
O M0.4
= Q0.3
Network 34
// 左转黄灯输出。
LD M0.3
A SM0.5
= Q0.4
Network 35
// 左转绿灯输出。
LD M0.2
= Q0.5
Network 36
// 直行红灯,人行红灯(公用一个IO端子)输出。
LD M0.2
O M0.3
O M0.4
= Q0.6
Network 37
// 直行黄灯输出。
LD M0.1
A SM0.5
= Q0.7
Network 38
// 直行绿灯输出。
LD M0.0
= Q1.0
Network 39
// 人行绿灯输出,在直行黄灯期间,闪烁。
LD M0.1
A SM0.5
O M0.0
= Q1.1
Network 40
// T42产生秒脉冲,每隔1s产生一个扫描周期的脉冲。
LDN T42
TON T42, +10
Network 41
// 每隔1s,数码管的当前值减一。
LD T42
DECW VW100
Network 42
// 由于数码管只有一位,所以每5s数码管的值减一。数码管的当前值5分频后保存在VW102中。
LD SM0.0
MOVW VW100, VW102
/I +5, VW102
Network 43
// 数码管的当前值保存在VW102中,将当前值第0位输出到LED
LD V103.0
= Q0.0
Network 44
// 数码管的当前值保存在VW102中,将当前值输第1位出到LED
LD V103.1
= Q0.1
Network 45
// 数码管的当前值保存在VW102中,将当前值第2位输出到LED
LD V103.2
= Q0.2
展开阅读全文