4. 产线设备状态与信号抽象

在复杂产线的顺控程序里,PLC 真正“看见”的并不是气缸、电机或阀门本身,而是一组经过抽象后的输入/输出信号。信号抽象做得好,程序结构清晰、联锁可靠、排障迅速;抽象做得差,就会出现“同一个动作有多个来源”“状态判断互相矛盾”“手动与自动切换时输出抖动”等问题。本节围绕传感器、执行器、气缸、电机、阀门五类对象,说明如何定义信号、如何建立状态模型,并用一个可直接套用的建模表把抽象结果固化下来。

一、信号抽象的基本约定

在 iQ-F 系列 PLC 中,输入继电器 X、输出继电器 Y、内部继电器 M、定时器 T、计数器 C、数据寄存器 D 是最常用的软元件。做信号抽象时,先约定三条规则,全文与图示保持一致:

  • 命名规则:输入用“X+功能缩写”,如 X0 为启动按钮、X10 为气缸 A 伸出到位;输出用“Y+对象+动作”,如 Y0 为气缸 A 伸出电磁阀、Y10 为电机 M1 运行接触器。
  • 逻辑约定:传感器“检测到”定义为 ON(1),执行器“得电动作”定义为 ON(1);若现场为常闭或低电平有效,在程序入口统一取反,不把反逻辑带入状态模型。
  • 状态分层:物理信号(X/Y)→ 对象状态(M)→ 工位状态(M)→ 产线状态(M),逐层抽象,避免跨层直接引用。

二、五类对象的信号定义

传感器:按检测对象分为位置、物料、安全三类。位置传感器(磁性开关、接近开关)用于判断气缸、滑台是否到位,通常每个动作配两个检测点(伸出到位、缩回到位);物料传感器(光电、光纤)用于判断工件有无;安全传感器(安全门、光栅)直接参与联锁,应单独占用输入点并做冗余判断。示例:气缸 A 伸出到位 X10、缩回到位 X11,工件检测 X12。

执行器:泛指电磁阀、接触器、指示灯等最终执行元件。执行器信号是“命令”,不是“结果”,因此必须与传感器反馈配对使用。示例:Y0 驱动气缸 A 伸出电磁阀,Y1 驱动缩回电磁阀;Y10 驱动电机 M1 运行。

气缸:典型双作用气缸有两个电磁阀输出和两个到位反馈,状态可建模为“缩回、伸出中、伸出、缩回中、异常”五种。判断依据是输出命令与到位信号的组合:命令伸出且伸出到位 ON 为“伸出”;命令伸出但两个到位都 OFF 超过设定时间 T 为“异常”。

电机:以“运行命令 + 运行反馈 + 故障反馈”三信号建模。运行命令 Y10,运行反馈 X20(接触器辅助触点或变频器运行输出),故障反馈 X21(热继电器或变频器故障)。状态分为“停止、启动中、运行、故障”。启动中若超过 3 s 未收到运行反馈,判为启动失败。

阀门:以气动/电动阀为例,通常有开阀输出、关阀输出、开到位、关到位四个信号。与气缸类似,但阀门动作时间更长,超时阈值应单独设定,例如开阀超时 5 s、关阀超时 5 s。

三、状态建模方法

状态建模的核心是把“信号组合”映射为“对象状态”,再用状态参与联锁和顺控。推荐用“状态字 + 超时定时器”的方式实现:每个对象分配一个 D 寄存器存放状态码,用比较指令判断当前状态,用定时器监控动作是否超时。以气缸 A 为例,状态码定义如下:0=缩回,1=伸出中,2=伸出,3=缩回中,4=异常。程序逻辑为:当 Y0 ON 且 X10 ON 时写 2;当 Y0 ON 且 X10 OFF 且 T0 未到时写 1;T0 到时仍无到位则写 4 并置位报警 M100。

这种建模方式的好处是:联锁条件可以直接写“气缸 A 状态=2”,而不必再拼 X10、X11、Y0 的组合,程序可读性和可维护性显著提升。同时,异常状态集中管理,便于 HMI 显示和故障追溯。

产线设备信号抽象与状态建模关系图 物理层(现场信号) 传感器 X10/X11/X12 执行器 Y0/Y1/Y10 气缸 Y0/Y1 + X10/X11 电机 Y10 + X20/X21 阀门 Y2/Y3 + X13/X14 对象状态层(M/D 寄存器) 物料有无 M10 命令输出 M20/M21 气缸状态码 D100: 0~4 电机状态码 D110: 0~3 阀门状态码 D120: 0~4 联锁与顺控层 允许条件:气缸A状态=2 且 电机M1状态=2 禁止条件:任一对象状态=异常 报警输出:M100 置位 + HMI 显示状态码 超时→异常 信号抽象路径:物理信号 X/Y → 对象状态 M/D → 联锁条件 → 顺控步序;异常状态集中管理,便于 HMI 显示与故障追溯

四、建模表与实现要点

把上述抽象结果整理成一张建模表,可直接作为编程和调试的依据。下表以气缸 A、电机 M1、阀门 V1 为例,参数为教学示例,实际项目应按现场元件手册和工艺节拍调整。

对象 输出信号 反馈信号 状态码 超时阈值 异常处理
气缸 A Y0 伸出 / Y1 缩回 X10 伸出到位 / X11 缩回到位 D100:0缩回 1伸出中 2伸出 3缩回中 4异常 T0=2.0 s 置 D100=4,M100 报警
电机 M1 Y10 运行 X20 运行反馈 / X21 故障 D110:0停止 1启动中 2运行 3故障 T1=3.0 s 置 D110=3,M101 报警
阀门 V1 Y2 开阀 / Y3 关阀 X13 开到位 / X14 关到位 D120:0关 1开中 2开 3关中 4异常 T2=5.0 s 置 D120=4,M102 报警

实现时注意三点:第一,超时定时器的启动条件应绑定“命令已发出且反馈未到”,而不是单纯用命令信号;第二,异常状态一旦置位,应保持到人工复位,避免故障被自动清除后继续运行;第三,HMI 上显示状态码而非原始 X/Y,操作员看到“气缸 A 异常”比看到“X10=0”更容易定位问题。

提示:若现场传感器为常闭型,建议在输入映射阶段统一取反,使程序中所有“到位”信号均为 ON 有效,避免状态判断逻辑出现反逻辑分支。
注意:安全类传感器(安全门、光栅)不应只作为普通输入参与状态建模,应直接接入安全回路或安全 PLC,并在顺控程序中作为最高优先级联锁条件,不得被手动模式屏蔽。