FX3U ST 语言案例|定时器 OUT_T + 计数器 OUT_C 实现多步骤闪烁流程

FX3U 结构化 ST 里面,不能直接使用梯形图的 T、C 线圈,需要使用专用指令:

  • OUT_T:硬件定时器输出,替代梯形图OUT T0 Kxx
  • OUT_C:硬件计数器输出,替代梯形图OUT C0 Kxx

今天用一个多步骤灯光闪烁案例,带大家吃透 FX3U‑ST 中定时器、计数器的写法,实现分段工艺流程:绿灯闪烁→红灯闪烁→红绿灯同时闪烁完整工序。

硬件说明:FX3U PLC,GX Works2 结构化工程,使用硬件 T 定时器、C 计数器资源。

IO分配

|----|-------|-----|----|
| 输入 | | 输出 | |
| X0 | 自动运行 | Y10 | 绿灯 |
| X1 | 自动停止 | Y11 | 红灯 |
| X2 | 单周期运行 | | |

工艺逻辑:

  1. 按下启动 X0,或者触发 X2 单周期模式;
  2. 第一步:绿灯 Y10 闪烁,一共闪烁 6 次;
  3. 第二步:绿灯完成后,红灯 Y11 闪烁,一共闪烁 4 次;
  4. 第三步:红灯完成后,红绿灯同时闪烁 5 次,全部熄灭;
  5. X1 自动运行状态运行周期结束停止。

闪烁原理:使用两个定时器交替通断,实现灯亮 500ms、灭 500ms;计数器统计闪烁循环次数,到达设定次数切换工艺步骤。

二、完整 ST 代码

复制代码
;(*例:多路闪烁计数电路, 按下启动按钮(XO),
1、绿灯(Y10)闪6次,             X0自动启动,
2、然后红灯(Y11)闪4次,         X1自动停止,
3、接着红绿灯同时闪5次后灭     X2自动运行一次*)
(*初始化*)
ZRST(M8002,M0,M50);
SET(M8002,M0);

(*自动启动保持停止*)
M30:=(X0 OR M30) & NOT X1;

(*自动等待*)
SET(M0&(M30 OR X2),M10);
RST(M0&(M30 OR X2),M0);

(*自动第一步(Y10)闪6次*)
M20:=M10&NOT TS0;
OUT_T(M10,TC0,10);
OUT_T(TS0,TC1,10);
RST(TS1,TC0);
OUT_C(TS1,CC0,6);
RST(CS0,M10);(*复位当前步骤*)
SET(CS0,M11);(*进入下一步*)
RST(CS0,CC0);(*复位计数器*)

(*自动第二步红灯(Y11)闪4次*)
M21:=M11&NOT TS2;
OUT_T(M11,TC2,10);
OUT_T(TS2,TC3,10);
RST(TS3,TC2);
OUT_C(TS3,CC1,4);
RST(CS1,M11);
SET(CS1,M12);(*进入下一步*)
RST(CS1,CC1);(*复位计数器*)

(*自动第三步 红绿灯同时闪5次*)
M22:=M12&NOT TS4;
OUT_T(M12,TC4,10);
OUT_T(TS4,TC5,10);
RST(TS5,TC4);
OUT_C(TS5,CC2,5);
RST(CS2,M12);
SET(CS2,M0);(*跳回等待状态*)
RST(CS2,CC2);(*复位计数器*)

(*输出逻辑,驱动外部灯*)
Y10:=M20 OR M22;
Y11:=M21 OR M22;

三、核心指令知识点讲解

⚠️FX3U 的 ST 结构化,没有 TON 功能块,必须使用硬件定时器 / 计数器指令

  • OUT_T(使能,TC编号,设定值) TC0 对应硬件 T0,T0‑T199 时基 100ms,K10 = 1000ms (1 秒)。 TS0代表 T0 定时器完成触点,等价梯形图 T0 常开。

  • OUT_C(计数触发信号,CC编号,设定值) CC0 对应硬件 C0 计数器;CS0计数器到达标志。 触发信号每一次上升沿,计数器 + 1;CS0=ON代表计数到达设定值。

  • ZRST批量复位;SET/RST置位复位指令,ST 里面可以直接调用。

闪烁实现原理

复制代码
OUT_T(M10,TC0,10);   // M10接通,T0计时1s
OUT_T(TS0,TC1,10);   // T0计时完成,启动T1计时1s
RST(TS1,TC0);        // T1计时完成复位T0

TC0、TC1 互相触发,交替计时,形成 1 秒亮、1 秒灭的振荡,实现灯光闪烁。 每次闪烁完成 TS1 触发一次OUT_C,计数器记录闪烁次数。

四、流程拆解

  1. 上电初始化 ZRST(M8002,M0,M50),上电复位 M0‑M50,SET M0 进入待机等待状态。

  2. 启动逻辑 M30:=(X0 OR M30) & NOT X1; X0 自锁启动,X1 切断自锁实现停止。 X0 启动或者 X2 单周期触发,置位 M10,进入第一步流程。

  3. 步骤 1:绿灯闪烁 6 次 M10 激活 TC0、TC1 交替定时,Y10 闪烁; 每完成一次闪烁,CC0 计数器 + 1; CS0=ON计数到 6 次,复位 M10,置位 M11,切换到第二步红灯闪烁。同时复位计数器 CC0。

  4. 步骤 2:红灯闪烁 4 次 M11 激活 同理,CC1 计数 4 次,计数完成切换 M12 进入第三步。

  5. 步骤 3:红绿灯同时闪烁 5 次 M12 激活 CC2 计数 5 次;计数完成,复位 M12,置位 M0 回到待机状态,等待下一次启动。

  6. 输出赋值

Y10:=M20 OR M22; //第一步绿灯、第三步同时闪烁时绿灯输出

Y11:=M21 OR M22; //第二步红灯、第三步同时闪烁时红灯输出

五、注意

  1. OUT_TOUT_C必须使用全局硬件 TCxx、CCxx,不能使用 FB 局部变量,否则编译报错。
  2. 定时器完成触点是TS0,计数器到达标志是CS0,不要直接写 TC0、CC0。
  3. FX3U T0‑T199 时基 100ms,K10=1 秒,不要搞错时基。
  4. 计数器计数完成 CS0 不会自动清零,步骤切换时手动 RST 复位计数器。
相关推荐
AlanBruce5 天前
摩尔信使MThings新功能:水电不分家、一键设备扫描
网络·自动化·plc·mthings·摩尔信使·电气·西门子s7
深蓝海拓5 天前
基于socket的 TCP上位机通信内容解析程序
网络·笔记·python·学习·tcp/ip·plc
微小冷6 天前
Beremiz梯形图编程初步
plc·梯形图·beremiz·ladder logic·ladder diagram
Oflycomm10 天前
2026年PLC技术全景:标准修订、Matter互联、欧飞信全栈模组矩阵深度解读
物联网·智能家居·plc·通信技术·电力线载波
小金子会发光11 天前
C# WinForms 基于 Socket 手搓 Modbus TCP 调试助手(支持 01/02/03/04/05/06/0F/10)
c#·socket·plc·modbus tcp·工业通信
土族程序员14 天前
采集发那科(FANUC)数控机床(CNC)数据 网线直连无须网关
数据采集·plc·cnc·机床·fanuc·发那科·joyzl
Emily1568535987016 天前
ICS TRIPLEX T8403 TMR Digital Input Module
plc·module·dcs·ics triplex·t8403
9稳20 天前
基于组态的双向人行道交通灯控制系统设计
开发语言·网络·数据库·labview·plc
家有娇妻张兔兔22 天前
Java 对接 PLC 主流型号最合适的方案:Apache PLC4X 实战指南
java·开发语言·plc·modbus·数据缓存·西门子s7·apache plc4x