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_T、OUT_C必须使用全局硬件 TCxx、CCxx,不能使用 FB 局部变量,否则编译报错。
  2. 定时器完成触点是TS0,计数器到达标志是CS0,不要直接写 TC0、CC0。
  3. FX3U T0‑T199 时基 100ms,K10=1 秒,不要搞错时基。
  4. 计数器计数完成 CS0 不会自动清零,步骤切换时手动 RST 复位计数器。
相关推荐
蓝蜂物联网4 天前
多项目分散各地?一个网关实现 PLC 程序远程批量上下载
plc·plc远程上下载·电子电工
千里码aicood12 天前
基于PLC与机器视觉的智能分拣控制系统设计
c++·自动化·plc
千里码aicood13 天前
基于PLC的简易三轴工件搬运平台设计
自动化·plc
AlanBruce16 天前
摩尔信使MThings功能综述与应用使用指南
linux·自动化·plc·mthings·摩尔信使
周永恒16 天前
Codesys 应用实践 - 上下位机闭环
上位机·plc·codesys
AlanBruce18 天前
摩尔信使MThings EdgeWeb使用指南
上位机·plc·modbus·mthings·摩尔信使
AlanBruce18 天前
摩尔信使MThings DL/T 698.45数据配置使用指南
上位机·plc·modbus·mthings·摩尔信使
子不语18020 天前
LabVIEW和PLC通过OPC通信
学习·自动化·plc
Emily1568535987021 天前
ABB CI867K01 3BSE043660R1
服务器·plc·dcs·abb·ci867k01·3bse043660r1·工控模块
SCTF_XingTong1 个月前
PLC RTC时钟选型:无源晶振与有源晶振实战笔记
plc·有源晶振·无源晶振·rtc时钟·32.768khz晶振