2、数字量输入信号特性
做PLC设计这些年,我接触过各种各样的输入信号。说白了,数字量输入就是给PLC送“0”或“1”的信号。但现实世界里的信号,可不像教科书上那么干净。
我个人习惯把数字量输入分成四大类:开关信号、电平信号、脉冲信号,还有那个让人头疼的抖动现象。咱们一个一个聊。
2.1 开关信号
开关信号是最常见的。按钮、继电器触点、限位开关,都属于这一类。
它的特点很简单:要么接通,要么断开。接通就是“1”,断开就是“0”。但这里有个坑——机械触点会弹跳。
⚠️ 避坑指南: 我曾经遇到过一台设备,按钮按下去后PLC反复触发了好几次。查了半天,就是触点弹跳惹的祸。后来加了10ms的软件滤波,问题才解决。
开关信号的典型参数:
| 参数 | 典型值 | 说明 |
|---|---|---|
| 导通电阻 | < 100 mΩ | 触点闭合时的接触电阻 |
| 断开电阻 | > 10 MΩ | 触点断开时的绝缘电阻 |
| 弹跳时间 | 5 ~ 20 ms | 机械触点稳定前的不稳定期 |
| 动作频率 | < 10 Hz | 人机操作的上限 |
2.2 电平信号
电平信号,说白了就是持续保持高电平或低电平的信号。比如温度开关、液位开关的输出。
它和开关信号最大的区别是:电平信号没有弹跳问题。因为它是电子器件输出的,不是机械触点。
但电平信号也有自己的麻烦:
- 噪声干扰:工业现场电磁环境复杂,电平信号容易被干扰
- 电平漂移:温度变化会导致阈值电压偏移
- 驱动能力:有些传感器输出电流很小,带不动长电缆
💡 我的经验: 处理电平信号时,我习惯在输入端加一个施密特触发器。它能有效抑制噪声,防止信号在阈值附近来回跳变。你想想看,一个信号在0和1之间来回晃,PLC根本没法判断。
2.3 脉冲信号
脉冲信号,就是有固定宽度或频率的方波信号。编码器输出、流量计脉冲、转速传感器,都属于这一类。
脉冲信号有三个关键参数:
- 频率:每秒多少个脉冲,单位Hz
- 占空比:高电平时间占整个周期的比例
- 最小脉宽:高电平或低电平的最短持续时间
举个例子,一个编码器输出100kHz的脉冲,每个周期是10μs。如果占空比是50%,那高电平就是5μs。嗯,这里要注意——PLC的输入滤波时间必须小于这个脉宽,否则脉冲就被滤掉了。
// 脉冲信号采集的典型配置
// 假设编码器输出频率 f = 100 kHz
// 周期 T = 1/f = 10 μs
// 最小脉宽 t_min = T * 占空比 = 5 μs
// 输入滤波时间必须 < 5 μs
🔑 关键点: 脉冲信号的滤波设计,核心就是保证“滤波时间 < 最小脉宽”。我见过有人把滤波设成20ms去接编码器,结果一个脉冲都读不到。
2.4 输入信号抖动现象
抖动,是数字量输入里最让人头疼的问题。它指的是信号在稳定状态附近快速、无规律地跳变。
抖动的来源主要有三个:
- 机械抖动:触点弹跳,持续5~20ms
- 电气噪声:电磁干扰,频率高但幅度小
- 信号反射:长线传输时阻抗不匹配导致
我画了一张图,帮你理解抖动的本质:
从图上你能看到,理想信号是干净利落的跳变。但实际信号在跳变瞬间会来回振荡,这就是抖动。
抖动的危害有多大?我举个例子:
- 计数器多计或少计脉冲
- 状态机误判信号状态
- 中断服务程序被反复触发
- 通信协议解析出错
🔑 核心结论: 抖动的本质是信号在“0”和“1”之间的不确定状态。滤波的目的,就是消除这种不确定性,让PLC看到一个干净、稳定的信号。
处理抖动,常用的方法有硬件滤波和软件滤波。硬件滤波用RC低通电路,软件滤波用延时采样或多次采样取多数。具体怎么做,咱们后面章节会详细讲。
好了,这一章就到这里。记住一句话:了解你的信号,才能设计好你的滤波。