本系统用于控制四路口交叉路口的交通信号灯,满足以下要求:
- 南北主干道:左转绿10s,直行绿30s,绿闪3s,黄2s,红45s
- 东西人行道:红13s,绿27s,绿闪3s,红47s
- 东西主干道:红45s,左转绿10s,直行绿30s,绿闪3s,黄2s
- 南北人行道:红58s,绿27s,绿闪3s,黄2s
正常循环控制方式
交通灯变化顺序表(单循环周期90秒):
南北主干道 | 东西主干道 | |
---|---|---|
南北向 | 左行绿10s,直行绿30s,绿闪3s,黄2s,红45s | 红45s,左行绿10s,直行绿30s,绿闪3s,黄2s |
东西向 | 红58s,绿27s,绿闪3s,黄2s | 红47s,绿27s,绿闪3s,红13s |
急车强通控制方式
急车强通信号受急车强通开关控制。无急车时,按正常循环时序控制;有急车来时,将急车强通开关接通,不管原来信号状态如何,一律强制让急车来车方向的绿灯亮,直到急车通过为止;将急车强通开关断开,信号的状态立即转为急车放行方向的绿灯闪亮3次。随后按正常时序控制。
急车强通信号只能响应一路方向的来车,若两个方向先后来急车,则响应先来的一方,随后再响应另一方。
设计内容
- 安排分配PC的I/O编号,选择合适的F1系列PC设备。
- 设计交通灯控制流程图。
- 设计梯形图。
- 编写控制程序。
控制程序
ladder // 变量定义 BOOL南北主干道_绿灯 = FALSE; BOOL南北主干道_红灯 = TRUE; BOOL东西主干道_绿灯 = FALSE; BOOL东西主干道_红灯 = TRUE; BOOL南北人行道_绿灯 = FALSE; BOOL南北人行道_红灯 = TRUE; BOOL东西人行道_绿灯 = FALSE; BOOL东西人行道_红灯 = TRUE; INT循环周期 = 90; INT绿灯时间 = 30; INT左转绿灯时间 = 10; // 主循环 WHILE TRUE { // 正常循环控制 IF 循环周期 > 0 THEN { // 南北主干道 IF 南北主干道_绿灯 AND 循环周期 >= 绿灯时间 THEN { 南北主干道_绿灯 = FALSE; 南北主干道_红灯 = TRUE; 东西主干道_绿灯 = TRUE; 东西主干道_红灯 = FALSE; } ELSE IF 南北主干道_红灯 AND 循环周期 >= (绿灯时间 + 左转绿灯时间) THEN { 南北主干道_绿灯 = TRUE; 南北主干道_红灯 = FALSE; 东西主干道_绿灯 = FALSE; 东西主干道_红灯 = TRUE; } // 东西主干道 IF 东西主干道_绿灯 AND 循环周期>= 绿灯时间 THEN { 东西主干道_绿灯 = FALSE; 东西主干道_红灯 = TRUE; 南北主干道_绿灯 = TRUE; 南北主干道_红灯 = FALSE; } ELSE IF 东西主干道_红灯 AND 循环周期 >= (绿灯时间 + 左转绿灯时间) THEN { 东西主干道_绿灯 = TRUE; 东西主干道_红灯 = FALSE; 南北主干道_绿灯 = FALSE; 绿灯 = FALSE; 急车强通_灯 = TRUE; END_WHILE; } // 东西主干道 IF 东西主干道_绿灯 THEN { 东西主干道_绿灯 = FALSE; 南北主干道_绿灯 = FALSE; 南北人行道_绿灯 = FALSE; 急车强通_灯 = TRUE; } ELSE { 东西主干道_绿灯 = TRUE; 南北主干道_绿灯 = FALSE; 南北人行道_绿灯 = FALSE; 急车强通_灯 = TRUE; END_WHILE; } } // 循环周期递减 循环周期--; }本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!
添加新评论