3. 生产线设备信号采集与报警触发
报警不是凭空产生的,它来自现场一个个具体的信号。要让报警“该响的时候响、不该响的时候不响”,第一步是把PLC与传感器之间的信号接入关系理清楚,第二步才是为每类信号定义触发条件。本节围绕信号接入、报警条件配置、阈值与死区、触发逻辑以及抖动过滤展开,重点讲清楚“怎么接、怎么配、怎么判”。
一、信号接入:先分清数字量与模拟量
生产线上的传感器按输出形态大致分为两类。数字量信号只有通断两种状态,例如接近开关检测工件到位、光电开关检测料仓缺料、安全门磁开关检测门是否关闭、急停按钮的常闭触点。这类信号接入PLC的数字量输入模块(DI),常见为24V DC漏型或源型接法,PLC内部通过光耦隔离读取0/1状态。模拟量信号则是连续变化的量,例如压力变送器输出4~20mA、温度传感器经变送器输出0~10V、称重传感器输出毫伏级信号经放大后进入模拟量输入模块(AI)。
接线时有几个工程细节直接影响报警质量。数字量输入要确认是常开还是常闭逻辑:急停、安全门这类安全相关信号通常采用常闭触点串入,正常时信号为1,动作或断线时为0,这样断线也能被识别为故障,而不是“看起来正常”。模拟量输入要关注量程映射,例如4~20mA对应0~1.6MPa,PLC内部原始值可能是0~27648(以西门子S7系列为例),需要在程序里做线性换算,否则阈值判断会整体偏移。此外,模拟量信号线应远离变频器输出线和动力电缆,采用屏蔽双绞线并单端接地,减少共模干扰带来的数值跳变。
二、报警条件配置:数字量与模拟量分开设计
数字量报警的条件本质是“状态组合”。例如“工件到位检测失败”可以定义为:输送带运行信号为1、且启动后3秒内到位开关始终为0,则触发报警。这里用到了运行状态、时间窗口和开关状态三个条件,而不是单看一个开关。再如“安全门打开”报警,应直接取门磁常闭点的0状态,并配合设备运行信号判断是否需要停机,避免设备停机时开门也频繁报警。
模拟量报警则围绕阈值展开,常见有上限报警、下限报警、上上限(高高限)和下下限(低低限)。以液压系统压力为例,正常范围1.2~1.5MPa,可设上限报警1.55MPa、上上限停机1.6MPa、下限报警1.15MPa。配置时要明确每个报警的“动作值”和“复位值”,二者不能相同,否则会在阈值附近反复跳变。
三、阈值与死区:让报警有“回差”
死区(回差)是防止报警在临界点反复通断的关键参数。假设上限报警动作值设为1.55MPa,若复位值也取1.55MPa,压力在1.55上下微小波动时,报警位会频繁置位和复位,HMI上刷出一串无意义记录。合理做法是把复位值下移,例如动作值1.55MPa、复位值1.50MPa,形成0.05MPa的死区。只有当压力真正回落到1.50MPa以下,报警才解除。下限报警同理,动作值1.15MPa、复位值1.20MPa,方向相反。
死区大小要结合工艺波动和传感器精度确定。死区过小起不到防抖作用,过大则会掩盖真实异常。一般可取正常波动带的1~2倍,或传感器满量程的0.5%~2%。对于温度这类惯性大、变化慢的量,死区可以适当放大;对于压力、流量这类波动快的量,死区要谨慎,必要时配合滤波使用。
四、触发逻辑:边沿、电平与持续时间
同一个信号,用不同的触发逻辑,报警效果完全不同。电平触发是“条件成立就报警”,只要信号处于报警状态,报警位一直为1,适合持续监视类报警,如温度超限。边沿触发只在状态变化的瞬间产生一个扫描周期的脉冲,适合“事件型”报警,例如“急停按钮被按下”这一动作本身需要记录一次,而不需要在按住期间反复记录。上升沿对应0→1,下降沿对应1→0,编程时可用PLC的上升沿/下降沿指令或自锁逻辑实现。
持续时间触发则是“条件持续成立一段时间后才报警”,这是抑制误报最常用的手段。例如料仓缺料信号出现后,若立即报警,可能只是物料短暂搭桥造成的瞬时信号;设定持续2秒仍为缺料才报警,就能过滤掉大部分瞬时干扰。在PLC中可用定时器实现:条件成立时启动TON定时器,定时器输出作为报警触发;条件消失则复位定时器。持续时间的长短取决于工艺节拍和干扰特征,一般取0.5~5秒,安全相关信号则应缩短甚至不延时。
五、信号抖动过滤与防误报
抖动来源主要有三类:触点抖动(机械开关通断瞬间的毫秒级弹跳)、电气干扰(变频器、接触器动作引起的信号毛刺)和工艺波动(物料、压力、温度的短时正常起伏)。针对触点抖动,可在PLC程序中对数字量输入做“连续N次扫描一致才确认”的滤波,例如连续3个扫描周期(约30~60ms)状态相同才更新;也可在模块层面设置输入滤波时间。针对模拟量干扰,常用滑动平均滤波,取最近5~10个采样值的平均作为判断依据,或使用一阶低通滤波削弱高频毛刺。
防误报不能只靠软件滤波,还要从源头治理:信号线屏蔽接地、远离动力线、传感器安装牢固避免振动误触发、模拟量量程与PLC通道配置一致。调试阶段可借助趋势曲线观察报警前后的原始值变化,判断是真实越限还是干扰毛刺,再决定调整死区、滤波时间还是持续时间。下面给出一份可直接参考的报警参数配置示例(数值为教学假设,实际需按工艺标定)。
| 报警项 | 信号类型 | 触发逻辑 | 动作值 | 复位值/死区 | 持续时间 |
|---|---|---|---|---|---|
| 液压压力高 | AI 4~20mA | 电平 + 持续 | 1.55MPa | 1.50MPa(死区0.05) | 1s |
| 液压压力高高停机 | AI 4~20mA | 电平 | 1.60MPa | 1.55MPa | 0.3s |
| 料仓缺料 | DI 光电开关 | 持续 | 信号=0 | 信号=1 | 2s |
| 急停按下 | DI 常闭 | 下降沿 | 1→0 | — | 不延时 |
| 工件到位失败 | DI 接近开关 | 状态组合 + 持续 | 运行=1且到位=0 | 到位=1 | 3s |
归纳起来,信号采集与报警触发的核心是“接得对、配得准、判得稳”:数字量与模拟量按特性接入并做好换算与隔离,报警条件用状态组合和阈值明确表达,死区给报警留出回差,边沿、电平、持续时间三种逻辑按报警性质选用,再用滤波和源头治理压住抖动。把这些参数落到具体的信号点和数值上,报警才真正可用。