本文使用三菱PLC语句表(STL)格式编写十字路口交通灯控制程序,提供两种不同的实现方法。系统控制东西和南北方向的交通信号灯,按照预设时间顺序循环工作。
此方法使用多个定时器直接控制各个灯的状态转换,每个时间段使用独立的定时器,定时器时间到则触发状态转换。
//==========================================
// 三菱PLC交通灯控制程序 - 定时器方式
// 使用FX系列PLC,语句表(STL)格式
//==========================================
// 系统启动控制
LD X0// 加载启动按钮信号
OR M0// 或运行标志
ANI T5// 与非循环结束标志
OUT M0// 输出到运行标志// 东西绿灯定时器(25秒)
LD M0// 加载运行标志
OUT T0 K250// 启动东西绿灯定时器,设定值250(25秒)
// 东西黄灯定时器(5秒)
LD T0// 加载东西绿灯定时器触点
OUT T1 K50// 启动东西黄灯定时器,设定值50(5秒)
// 东西红灯定时器(30秒)
LD T1// 加载东西黄灯定时器触点
OUT T2 K300// 启动东西红灯定时器,设定值300(30秒)
// 南北红灯定时器(30秒)
LD T2// 加载东西红灯定时器触点
OUT T3 K300// 启动南北红灯定时器,设定值300(30秒)
// 南北绿灯定时器(25秒)
LD T3// 加载南北红灯定时器触点
OUT T4 K250// 启动南北绿灯定时器,设定值250(25秒)
// 南北黄灯定时器(5秒)
LD T4// 加载南北绿灯定时器触点
OUT T5 K50// 启动南北黄灯定时器,设定值50(5秒)
// 东西绿灯输出控制
LD M0// 加载运行标志
AND T0// 与东西绿灯定时器
ANI T1// 与非东西黄灯定时器
OUT Y0// 输出到东西绿灯
// 东西黄灯输出控制
LD M0// 加载运行标志
AND T1// 与东西黄灯定时器
ANI T2// 与非东西红灯定时器
OUT Y1// 输出到东西黄灯
// 东西红灯输出控制
LD M0// 加载运行标志
AND T2// 与东西红灯定时器
ANI T0// 与非东西绿灯定时器
OUT Y2// 输出到东西红灯
// 南北红灯输出控制
LD M0// 加载运行标志
AND T3// 与南北红灯定时器
ANI T4// 与非南北绿灯定时器
OUT Y3// 输出到南北红灯
// 南北绿灯输出控制
LD M0// 加载运行标志
AND T4// 与南北绿灯定时器
ANI T5// 与非南北黄灯定时器
OUT Y4// 输出到南北绿灯
// 南北黄灯输出控制
LD M0// 加载运行标志
AND T5// 与南北黄灯定时器
ANI T3// 与非南北红灯定时器
OUT Y5// 输出到南北黄灯// 循环复位控制
LD T5// 加载南北黄灯定时器触点
RST T0// 复位东西绿灯定时器
RST T1// 复位东西黄灯定时器
RST T2// 复位东西红灯定时器
RST T3// 复位南北红灯定时器
RST T4// 复位南北绿灯定时器
RST T5// 复位南北黄灯定时器
// ================ 程序结束 ================
注意:三菱FX系列PLC定时器的时间基准为0.1秒,因此设定值K250对应25秒,K50对应5秒,K300对应30秒。
此方法使用一个0.1秒基准定时器配合计数器,通过比较计数值来实现状态切换。每个0.1秒定时器触发一次,计数器加1,通过比较指令判断当前时间点并控制输出。
//==========================================
// 三菱PLC交通灯控制程序 - 计数器比较方式// 使用FX系列PLC,语句表(STL)格式
//==========================================
// 系统启动控制
LD X0// 加载启动按钮信号
OR M0// 或运行标志
ANI C0// 与非计数器完成标志
OUT M0// 输出到运行标志// 0.1秒基准定时器
LD M0// 加载运行标志
OUT T0 K1// 启动0.1秒基准定时器
// 60秒循环计数器
LD T0// 加载0.1秒定时器触点
OUT C0 K600// 启动60秒循环计数器,设定值600(60秒)
// 计数器复位控制
LD C0// 加载计数器完成触点
RST C0// 复位计数器
// 东西绿灯输出控制(0-25秒)
LD M0// 加载运行标志
AND <=C0 K250// 与计数器值≤250(25秒)
OUT Y0// 输出到东西绿灯
// 东西黄灯输出控制(25-30秒)
LD M0// 加载运行标志
AND >C0 K250// 与计数器值>250(25秒)
AND <=C0 K300// 与计数器值≤300(30秒)
AND T2// 与东西红灯定时器
ANI T0// 与非东西绿灯定时器
OUT Y2// 输出到东西红灯
// 南北红灯输出控制
LD M0// 加载运行标志
AND T3// 与南北红灯定时器
ANI T4// 与非南北绿灯定时器
OUT Y3// 输出到南北红灯
// 南北绿灯输出控制
LD M0// 加载运行标志
AND T4// 与南北绿灯定时器
ANI T5// 与非南北黄灯定时器
OUT Y4// 输出到南北绿灯
// 南北黄灯输出控制
LD M0// 加载运行标志
AND T5// 与南北黄灯定时器
ANI T3// 与非南北红灯定时器
OUT Y5// 输出到南北黄灯// 循环复位控制
LD T5// 加载南北黄灯定时器触点
RST T0// 复位东西绿灯定时器
RST T1// 复位东西黄灯定时器
RST T2// 复位东西红灯定时器
RST T3// 复位南北红灯定时器
RST T4// 复位南北绿灯定时器
RST T5// 复位南北黄灯定时器
// ================ 程序结束 ================
注意:三菱FX系列PLC定时器的时间基准为0.1秒,因此设定值K250对应25秒,K50对应5秒,K300对应30秒。
此方法使用一个0.1秒基准定时器配合计数器,通过比较计数值来实现状态切换。每个0.1秒定时器触发一次,计数器加1,通过比较指令判断当前时间点并控制输出。
//==========================================
// 三菱PLC交通灯控制程序 - 计数器比较方式// 使用FX系列PLC,语句表(STL)格式
//==========================================
// 系统启动控制
LD X0// 加载启动按钮信号
OR M0// 或运行标志
ANI C0// 与非计数器完成标志
OUT M0// 输出到运行标志// 0.1秒基准定时器
LD M0// 加载运行标志
OUT T0 K1// 启动0.1秒基准定时器
// 60秒循环计数器
LD T0// 加载0.1秒定时器触点
OUT C0 K600// 启动60秒循环计数器,设定值600(60秒)
// 计数器复位控制
LD C0// 加载计数器完成触点
RST C0// 复位计数器
// 东西绿灯输出控制(0-25秒)
LD M0// 加载运行标志
AND <=C0 K250// 与计数器值≤250(25秒)
OUT Y0// 输出到东西绿灯
// 东西黄灯输出控制(25-30秒)
LD M0// 加载运行标志
AND >C0 K250// 与计数器值>250(25秒)
AND <=C0 K300// 与计数器值≤300(30秒)
OUT Y1// 输出到东西黄灯
// 东西红灯输出控制(30-60秒)
LD M0// 加载运行标志
AND >C0 K300// 与计数器值>300(30秒)
OUT Y2// 输出到东西红灯
// 南北红灯输出控制(0-30秒)
LD M0// 加载运行标志
AND <=C0 K300// 与计数器值≤300(30秒)
OUT Y3// 输出到南北红灯
// 南北绿灯输出控制(30-55秒)
LD M0// 加载运行标志
AND >C0 K300// 与计数器值>300(30秒)
AND <=C0 K550// 与计数器值≤550(55秒)
OUT Y4// 输出到南北绿灯
// 南北黄灯输出控制(55-60秒)
LD M0// 加载运行标志
AND >C0 K550// 与计数器值>550(55秒)
OUT Y5// 输出到南北黄灯
// ================ 程序结束 ================
注意:计数器C0的计数值范围为0-600,对应0-60秒。每个计数值代表0.1秒,因此K600对应60秒。
优点:
缺点:
优点:
缺点: