梯形图定时器TON复位信号未断开导致计时不准确的逻辑修复

发布于 2026-03-17 03:57:31 · 浏览 5 次 · 评论 0 条

梯形图中TON定时器的复位信号若在计时过程中未彻底断开,会导致定时器状态异常:已达到设定值却不触发输出,或反复置位/复位造成抖动,甚至完全停止计时。这种问题不依赖硬件故障,纯属逻辑设计疏漏,但极易被忽略——因为PLC扫描周期短、响应快,表面看程序“能运行”,实则定时精度崩塌,可能引发设备误动作、工艺超时报警、批次数据错乱等严重后果。

以下为完整修复路径,覆盖现象识别、根本原因分析、三种典型错误逻辑结构、修正方案及验证方法,所有操作均可在任意支持IEC 61131-3标准的PLC平台(如西门子S7-1200/1500、三菱Q系列、欧姆龙NJ/NX系列、倍福TwinCAT)中直接实施,无需修改硬件接线。


一、快速定位问题:三步现象诊断法

  1. 监控TON指令核心位状态
    在编程软件在线调试模式下,打开变量监控表,添加以下四个地址(以通用符号名示意,实际需替换为项目中TON实例名,如 TON_HeatUp):

    • TON_x.IN:使能输入状态(布尔)
    • TON_x.Q:定时完成输出(布尔)
    • TON_x.ET:当前经过时间(TIME,单位ms)
    • TON_x.R:复位输入(布尔)
  2. 执行最小复现工况
    触发使能信号 TON_x.IN = TRUE保持该信号稳定;在定时器接近设定值PT前1~2秒时,手动将TON_x.R短暂置为TRUE(持续约100ms),再立即恢复FALSE;观察后续行为。

  3. 比对标准响应与异常响应
    正常TON行为应满足:

    • RTRUE期间,Q = FALSEET清零;
    • R变回FALSE后,ET从0重新开始累加;
    • ET >= PT时,Q严格变为TRUE并保持,直至下一次R = TRUE

    若出现以下任一现象,即确认存在复位逻辑缺陷:

    • RFALSE后,ET未归零,而是维持在断开前的某个值(如PT=5000msR断开前ET=4200ms,断开后ET继续从4200ms跳变至4300ms);
    • ET达到PT后,Q闪烁(单个扫描周期内TRUE/FALSE交替);
    • Q始终为FALSE,即使ET远超PT(如ET=8000msPT=5000ms)。

二、根本原因:TON复位信号的“电平保持”陷阱

TON指令的本质是边沿敏感型功能块:其复位动作仅在R信号的上升沿FALSE → TRUE)有效。IEC 61131-3标准明确规定:

“当RTRUE时,定时器被禁用且ET保持为0;当RTRUE变为FALSE时,若此时INTRUE,则ET从0开始重新计时。”

关键矛盾在于:R信号若在INTRUE期间被“软锁定”为TRUE(如由自锁电路、置位指令或条件误判导致),则R永远不会产生FALSE → TRUE的上升沿,复位动作永不触发。 更隐蔽的是,许多工程师误认为只要RET到达PT前“出现过”,就能清零,却忽略了TON对复位信号的边沿依赖性

典型错误根源有三类:

错误类型 逻辑特征 实际危害
自锁型复位 RTON_x.Q自身通过SET指令置位,且无独立解锁条件 Q一旦为TRUER永久为TRUEET被锁死在PT,无法重启计时
条件粘连型复位 R取自某工艺条件(如Motor_Running = FALSE),但该条件在停机后仍长期为FALSE(如传感器故障、信号延迟) 复位信号持续有效,TON无法启动,设备卡在“等待复位”状态
扫描周期竞争型复位 R由同一网络中其他逻辑动态生成,因PLC扫描顺序导致RIN置位后一个周期才变为TRUE,错过首个扫描周期的复位窗口 ET在首周期已开始累加,R延迟生效,造成初始计时偏移

三、修复方案:四套可直接部署的梯形图逻辑

所有方案均遵循同一设计原则:复位信号R必须是干净、瞬时、可控的脉冲,且其生成逻辑与TON使能IN完全解耦。

方案1:下降沿触发复位(推荐用于手动干预场景)

此方案将物理按钮或HMI软按钮的释放动作转化为精确复位脉冲。

  1. 定义中间变量
    在变量表中声明:Reset_Pulse : BOOL;(全局布尔变量,非保持型)

  2. 构建下降沿检测网络

    // 梯形图对应逻辑(文字描述)
    // 左母线 --[ ]-- Reset_Button --[N]-- Reset_Button_Previous --( )-- Reset_Pulse
    //                      │
    //                      └──────────────(S)── Reset_Button_Previous

    解释Reset_Button_Previous存储上一扫描周期的按钮状态;当Reset_ButtonTRUE变为FALSE(松开按钮),Reset_Button_Previous仍为TRUEReset_Pulse在一个扫描周期内为TRUE,之后自动归零。

  3. 连接TON复位端
    Reset_Pulse直接连接至TON_x.R输入端。确保Reset_ButtonTON_x.IN无逻辑关联。

方案2:定时器级联复位(推荐用于自动工艺循环)

适用于需要“前序工序完成→复位本工序定时器→启动本工序”的流水线逻辑。

  1. 增设前置TON
    命名为TON_PreStepPT设为前序工序预期最大耗时(如T#30S)。

  2. 生成复位脉冲
    TON_PreStep.Q = TRUE时,驱动一个TP(脉冲定时器),PT = T#100MS,将其Q输出作为TON_x.R
    原理TP输出仅为100ms高电平,彻底规避长信号粘连。

  3. 切断反馈环路
    确保TON_x.Q不参与任何影响TON_PreStep.IN的逻辑,防止循环依赖。

方案3:置位-复位双控逻辑(推荐用于多条件复位)

当复位需满足多个独立条件(如“急停触发”OR“温度超限”OR“通讯中断”)时使用。

  1. 汇总复位条件
    构建布尔表达式:Reset_Condition := Emergency_Stop OR Temp_High OR Comm_Fail;

  2. 添加消抖与脉冲化
    使用R_TRIG(上升沿触发器)功能块

    • 输入CLKReset_Condition
    • 输出Q即为精准复位脉冲
    • R_TRIG.Q连接至TON_x.R
  3. 强制复位隔离
    R_TRIG之前插入SR(置位优先锁存器)的复位端,由TON_x.Q驱动
    SR.R := TON_x.Q;
    效果:一旦TON_x计时完成,立即封锁后续复位信号,确保单次循环只触发一次复位。

方案4:绝对时序控制(推荐用于高精度同步场景)

当系统存在多个TON需严格同步启停时,用主时钟统一调度。

  1. 创建主时钟脉冲
    配置一个TP定时器,PT = T#10MS,其Q作为系统心跳,命名为Sys_Clock_10ms

  2. 设计复位使能寄存器
    定义Reset_Enable : BOOL;,仅在允许复位的时间窗口内为TRUE(如工艺阶段标志Phase_Idle = TRUE)。

  3. 组合生成复位信号
    TON_x.R := Sys_Clock_10ms AND Reset_Enable AND Reset_Request;
    其中Reset_Request为原始复位请求信号(如按钮或故障标志)
    本质:将任意长度的请求信号,裁剪为严格匹配系统心跳的窄脉冲。


四、验证与固化:三重校验法

修复后必须执行以下验证,缺一不可:

  1. 离线仿真测试
    在编程软件中启用强制模式

    • 强制TON_x.IN = TRUE
    • 强制TON_x.R按如下序列变化:FALSE → TRUE(持续200ms)→ FALSE
    • 监控ET波形:必须观测到0 → 0 → 0 → 1 → 2 → ...的严格归零重启过程,无任何残留值。
  2. 在线实时监控
    下载程序后,使用PLC的“趋势图”功能,采样率设为10ms,记录至少3个完整计时周期的TON_x.ETTON_x.R曲线。
    合格标准:每次R上升沿后,ET曲线必须垂直跌落至0,且后续斜率(计时速度)恒定,无阶梯状跳跃。

  3. 硬件闭环测试
    接入真实执行机构(如接触器、指示灯)

    • TON_x.Q驱动输出点;
    • 用示波器测量该输出点电压跳变时刻与ET达到PT时刻的偏差;
    • 允许误差 ≤ 2个PLC扫描周期(如扫描周期2ms,则误差≤4ms)。超过此值,需检查TON所在网络是否被其他高耗时指令(如复杂数学运算)拖慢。

五、预防机制:代码审查清单

将以下条目纳入团队PLC程序评审流程,杜绝同类问题复发:

  • [ ] 所有TON指令的R输入端,是否直接连接至R_TRIG.QTP.Q或下降沿电路?
  • [ ] 是否存在TON_x.QTON_x.R的直接或间接反馈路径?(搜索所有TON_x.R的赋值源)
  • [ ] 复位信号生成逻辑,是否包含任何自锁(SET/RESET)、置位(S)或保持(KEEP)指令?
  • [ ] 同一工艺段内,是否存在多个TON共享同一复位源?若存在,是否已通过TP进行脉冲隔离?
  • [ ] 变量命名是否明确标识复位性质?(如Reset_Pulse_OK优于Reset_Flag

TON定时器不是黑箱,其行为完全由输入信号的时序精度决定。复位信号的“干净度”直接定义了整个控制回路的可信边界。每一次对R端的审慎设计,都是在为自动化系统的确定性奠基。

评论 (0)

暂无评论,快来抢沙发吧!

扫一扫,手机查看

扫描上方二维码,在手机上查看本文