西门子PLC编程实例详解|十字路口交通灯自动控制系统

知识点和关键字:定时器 触点比较指令 传送指令 变址应用 数据块

控制要求

控制十字路口红绿灯时长变化程序python 红绿灯控制指令_4s

示意图

控制十字路口红绿灯时长变化程序python 红绿灯控制指令_交叉路口红绿灯控制程序linux_02

时序图

控制十字路口红绿灯时长变化程序python 红绿灯控制指令_数据块_03

工艺流程图

当该路口是红灯时,另外一个路口是通行时间,绿灯亮和黄灯闪亮;

当另外一个路口转红灯时,该路口成为通行时间,绿灯亮和黄灯闪亮。

程序控制1

控制十字路口红绿灯时长变化程序python 红绿灯控制指令_变址_04

控制十字路口红绿灯时长变化程序python 红绿灯控制指令_变址_05

十字路口交通灯控制程序1,使用了一个定时器来控制,该定时器在一个动作周期内,从0开始随着时间经过逐步增大一直到140,使用定时器过程值来控制红绿灯, 如图下图所示。比如定时器过程值在0~40这段时间内Q0.6=1,在定时器过程值在0~65这段时间内Q0.2=1。其他依此类推。

控制十字路口红绿灯时长变化程序python 红绿灯控制指令_交叉路口红绿灯控制程序linux_06

程序控制2

十字路口交通灯控制程序2,也是使用一个定时器来控制,该定时器在一个动作周期内,从0开始随着时间经过逐步增大一直到140, 到达14s后自动复位,使用定时器过程值来控制红绿灯,如上图所示。

控制十字路口红绿灯时长变化程序python 红绿灯控制指令_4s_07

控制十字路口红绿灯时长变化程序python 红绿灯控制指令_数据块_08

程序中2, 把16#44传送到QB0目的是使Q0.2和Q0.6都接通,把16#84传送到QB0目的是使Q0.2和Q0.7都接通,把16#4传送到QB0目的是使Q0.2接通,把16#28传送到QB0目的是使Q0.5和Q0.3都接通,把16#30传送到QB0目的是使Q0.5和Q0.4都接通,把 16#20传送到QB0目的是使Q0.5接通。

控制程序3

控制十字路口红绿灯时长变化程序python 红绿灯控制指令_4s_09

数据块

控制十字路口红绿灯时长变化程序python 红绿灯控制指令_交叉路口红绿灯控制程序linux_10

控制十字路口红绿灯时长变化程序python 红绿灯控制指令_交叉路口红绿灯控制程序linux_11

十字路口交通灯控制程序3,也是使用一个定时器来控制,该定时器在一个动作周期内,从0开始随着时间经过逐步增大一直到140, 到达14s后自动复位,使用定时器过程值来控制红绿灯。

红绿灯的亮灯顺序数据分别装在VB100至VB111中。

上图中使用变址的方式,分别在相应的时间里把VB100至VB111的数据传送到QB0,这样QB0就会按照预先计划的次序亮灯。