2. PLC基础回顾
在设计数字输入输出模块之前,必须先回到PLC最基础的工作模型。很多现场问题——比如输入信号明明已经接通,程序里却读不到;输出指令已经置位,端子却没有电压——根源往往不在模块硬件本身,而在于对PLC系统组成、扫描周期和映像区机制的理解不够扎实。本节把与数字I/O设计关系最密切的四个基础概念串起来讲清楚。
一、PLC系统的组成
一台典型PLC由CPU单元、电源单元、输入模块、输出模块、通信接口和背板总线构成。CPU负责执行用户程序、管理扫描周期;电源单元把现场供电转换为内部逻辑电压,并为传感器提供辅助电源;输入模块把现场的开关量、按钮、限位、接近开关等信号转换为CPU可读的逻辑电平;输出模块则把CPU的执行结果转换为继电器触点、晶体管或双向可控硅输出,驱动接触器、电磁阀、指示灯等负载。
从数字I/O设计角度看,需要特别关注三个边界:现场侧与逻辑侧的隔离边界、模块与背板总线的数据边界、CPU映像区与物理端子之间的刷新边界。这三条边界决定了抗干扰能力、响应速度和故障排查路径。
核心记忆:输入模块是“现场→映像区”的写入通道,输出模块是“映像区→现场”的读出通道。CPU只与映像区打交道,不直接访问端子。
二、扫描周期与输入输出映像区
PLC采用循环扫描方式工作,一个扫描周期通常包含五个阶段:内部诊断与通信处理、输入采样、用户程序执行、输出刷新、以及下一轮循环。关键在于:输入采样阶段集中读取所有输入端子状态,写入输入映像区;输出刷新阶段把输出映像区的结果一次性送到输出端子。用户程序在整个执行过程中读写的都是映像区,而不是物理端子。
这带来两个直接后果。第一,在一个扫描周期内,输入映像区的值保持不变,即使现场信号在程序执行中途发生变化,也要等下一个输入采样阶段才会被读到。第二,输出映像区可以被程序多次改写,但只有到输出刷新阶段才真正作用到端子上。因此,输出指令的“逻辑生效”和“端子动作”之间存在一个扫描周期的时间差。
扫描周期时间由程序长度、指令类型、通信负载和模块数量共同决定。对于数字量输入,若要求捕捉窄脉冲,必须保证脉冲宽度大于一个扫描周期,否则可能漏采。这也是为什么高速计数、急停、限位保护等场合要选用带中断或高速输入功能的模块,而不能依赖普通扫描采样。
三、数字量与模拟量的区别
数字量(开关量)只有两种稳定状态:通/断、1/0、高/低。它对应的是“有没有”“到没到”“开没开”这类二值判断。模拟量则是连续变化的物理量,如4~20mA电流、0~10V电压、热电偶毫伏信号、PT100电阻值,它表达的是“多少”。
两者在模块设计上的差异非常明显。数字量输入通道通常只需要限流、滤波、光电隔离和施密特整形;模拟量输入通道还必须考虑分辨率、采样精度、线性度、温漂、共模抑制和通道间串扰。数字量输出关注的是触点容量、浪涌抑制和动作寿命;模拟量输出关注的是D/A精度、负载能力和输出纹波。
| 对比项 | 数字量(DI/DO) | 模拟量(AI/AO) |
|---|---|---|
| 信号形态 | 二值:0 / 1、通 / 断 | 连续:4~20mA、0~10V、mV、Ω |
| 典型现场器件 | 按钮、限位、接近开关、接触器 | 变送器、热电偶、PT100、变频器给定 |
| 映像区占用 | 1位(bit) | 1个字(16位)或双字 |
| 关键指标 | 响应时间、隔离电压、触点容量 | 分辨率、精度、温漂、共模抑制 |
| 常见故障 | 漏采窄脉冲、触点抖动、浪涌损坏 | 漂移、断线、干扰、量程不匹配 |
| 设计重点 | 滤波时间与扫描周期匹配 | 屏蔽、接地、参考端补偿、软件滤波 |
四、案例与常见误区复盘
某包装线使用普通DI模块采集光电传感器的产品计数脉冲,脉冲宽度约3ms,而该PLC扫描周期约8ms,结果计数明显偏少。排查后发现并非传感器或模块损坏,而是脉冲宽度小于扫描周期,输入采样阶段没有采到。解决方案是改用带高速计数或中断输入的模块,或把脉冲展宽后再接入普通DI通道。
另一个常见误区是把输出映像区当成物理输出。工程师在程序中多次改写同一个Q点,以为端子会跟着抖动,实际上只有最后一次写入会在输出刷新阶段生效。如果负载需要严格时序,必须用置位/复位或状态机来组织逻辑,而不是依赖同一周期内的多次赋值。
排障提示:遇到“程序有输出、端子无电压”,先确认输出映像区是否已置位,再检查输出刷新阶段是否执行、模块供电与公共端是否正常、负载是否过流保护。遇到“现场有信号、程序读不到”,先确认信号宽度是否大于扫描周期,再检查输入滤波时间设置和端子接线极性。
设计数字I/O模块时,建议先明确三件事:现场信号的最小有效宽度、系统允许的最大响应延迟、以及模块需要承受的隔离与浪涌等级。这三项参数直接决定输入滤波、输出驱动方式和扫描周期的分配策略。
理解PLC系统组成、扫描周期、映像区机制以及数字量与模拟量的差异,是后续设计数字输入输出模块的底层依据。只有把“现场—端子—映像区—程序—映像区—端子—现场”这条完整链路看清楚,才能在选型、布线和编程时做出正确判断。