一、问题的提出
在只需要纵向或横向行使的交通系统中,也需要考虑另一方向的人行道,在这种情况下,利用上述的十字路口交通灯控制系统显然不合适,那么必须考虑新的控制系统。交通情况如图一所示,由图可见,东西方向是车道,南北方向是人行道。正常情况下,车道上有车辆行事,如果有行人要过交通路口,先要按动按钮,等到绿灯亮时,方可通过,此时东西方向车道上红灯亮。延时一段时间后,南北方向的红灯亮,东西方向的绿灯亮。各段时间由图 2 所示。
图 1 交通路口示意图 图 2 各段时间分配
二、硬件及接线
根据上述要求可见,系统所需车道(东西方向
)红、绿、黄各 2 只信号灯,人行道(南北方向)红、绿各 2 只信号灯,南北方向各需一只按钮。本案除 PLC 主机外,尚需配备两个信号灯箱和一个按钮箱。
可编程控制器的输入 / 输出端子分配及硬件连接分别由表 1 及图 3 所示。其中 SA 开关代表可编程控制器自身的运行开关。
图 3 硬件接线图 表 1 输入 / 输出端口分配
三、系统软件设计
在本子模块中,我们采用步进梯形指令并联分支、汇合编程的方法来实现人行横信号灯的功能。其状态转移图如图 4所示。由图可知,我们把车道(东西方向)信号灯的控制作为左面的并联分支,人行道(南北方向)信号灯的控制作为并联分支的右面支路,并联分支的转移条件是人行道南北两只按钮的或关系,灯亮到长短利用定时器控制,人行道绿灯闪是利用子循环加记数器了实现。
图 4 人行道信号灯控制状态转移图
本状态转移图总体上讲为一个并行分支、汇合流程,只是在 S33 处有一个选择性分支,在编程时应引起注意。
程序如表 2 所示。
表 2 人行道信号灯控制程序清单
四、知识点扩展
FX2系列可编程控制器状态编程方法
绘好了状态转移图后,下一个问题是如何由它绘梯形图或列写指令表。
(一)、单流程状态转移图的编程
1、什么是流程
所谓单流程,是指状态转移只可能有一种顺序。上个模块介绍的台车自动往返的控制过程只有一种顺序: S0→S20→S21→S22→S23→S24→S0,没有其他可能,所以叫单流程。
当然,现实当中并非所有的顺序控制均为一种顺序。含多种路径的叫分支流程。本模块即为并联分支流程。
2、单流程状态转移图的编程方法
a 状态转移图的编程方法
(1)状态的三要素 对状态转移图进行编程,不仅是使用STL,RET指令的问题,还要搞清楚状态的特性及要素。
状态转移图中的状态有驱动负载、指定转移目标和指定转移条件三个要素。其中指定转移目标和指定转移条件是必不可少,而驱动负载则视具体情况,也可能不进行实际的负载驱动。图 5及图6说明了状态转移图和梯形图的对应关系。其中Y5为其驱动的负载,S21为其转移目标,X3为其转移条件。
图 5状态转移图SFC 图6状态梯形图STL
(2)状态转移图的编程方法 步进顺控的编程原则为:先进行负载驱动处理,然后进行状态转移处理。
图 5的程序如下:
STL S20 使用STL指令
OUT Y5 进行负载驱动处理
LD X3 转移条件
SET X21 进行转移处理
从程序可看到,负载驱动及转移处理,首先要使用 STL指令,这样保证负载驱动和状态转均是在自母线上进行。状态的转移使用SET指令,但若为向上缓役、向相连的下游转移或向其他流程转移,称为顺序不连续转移,非连续转移不能使用SET指令,而用OUT指令。如图7所示。
b 状态的开启与关闭及状态转移图执行的特点
STL指令的含意是提供一个步进接点,其对应状态的三个要素均在步进接点之后的子母线上实现。若对应的状态是开启的(即
另外,这也方便程序的阅读理解,使程序的试运行、调试、故障检查与排除变得非常容易,这就是运用状态编程思想解决顺控问题的优点。
c 编程要点及注意事项
(a) (b) (c)
图 7 非连续转移状态转移图
(1) 状态编程顺序为:先进行驱动,再进行转移,不能颠倒。
(2) 对状态处理,编程时必须使用步进接点指令STL。
(3) 程序的最后必须使用步进返回指令RET,返回主母线。
(4) 驱动负载使用OUT指令。当同一负载需要连续多个状态驱动,可使用多重输出,也可使用STL指令将负载置位,等到负载不需驱动时用RST指令将其复位。在状态程序中,不同时“激活”的“双线圈”是允许的。另外相邻状态使用的T、C元件,编号不能相同。
(5) 负载的驱动、状态转移条件可能为多个元件的逻辑组合,视具体情况,按串、并联关系处理,不遗漏。
(6) 若为顺序不连续转移,不能使用SET指令进行状态转移,应改用OUT指令进行状态转移。
(7) 在STL与RET指令之间不能使用MC、MCR指令。
(8) 初始状态可由其他状态驱动,但运行开始必须用其他方法预先作好驱动,否则状态流程不可能向下进行。一般用系统的初始条件,若无初始条件,可用M8002(PLC从STOP→RUN切换时的初始脉冲)进行驱动。
需在停电恢复后继续原状态运行时,可使用 S500→S899停电保持状态元件。