2. PLC基础回顾
在进入PLC控制器硬件平台设计之前,有必要把PLC最核心的运行机制重新梳理一遍。很多硬件设计上的取舍,最终都源于PLC“循环扫描”这一基本工作方式。理解扫描周期、输入输出刷新和软元件模型,才能明白为什么PLC需要特定的CPU、存储器、总线与I/O电路结构。
一、PLC工作原理:循环扫描与集中刷新
PLC不同于通用计算机的“事件驱动”执行方式,它采用周期性循环扫描。一个完整扫描周期通常包含四个阶段:
- 输入采样阶段:CPU读取所有输入端子状态,写入输入映像区。
- 程序执行阶段:按用户程序顺序逐条执行,读取输入映像区和内部软元件,运算结果写入输出映像区。
- 输出刷新阶段:把输出映像区的结果一次性送到输出锁存器,驱动外部负载。
- 系统管理阶段:通信、自诊断、看门狗复位等。
关键点在于:程序执行期间,即使外部输入发生变化,输入映像区也不会立即更新;输出映像区在程序执行期间也不会立即影响外部负载。这种“集中采样、集中输出”的机制,使PLC程序具有确定性和可预测性,但也带来了响应滞后。
核心结论:PLC的实时性不是“立即响应”,而是“在一个扫描周期内响应”。硬件平台设计必须保证扫描周期稳定、可测、可预测。
二、扫描周期与输入输出刷新
扫描周期时间 T_scan 主要由三部分组成:
T_scan = T_input + T_program + T_output + T_system
T_input : 输入采样与滤波时间
T_program : 用户程序执行时间(与指令数、CPU主频、总线效率相关)
T_output : 输出刷新与驱动延迟
T_system : 通信、诊断、系统任务开销
输入刷新和输出刷新并不是“实时透明”的。输入滤波电路、光耦响应、总线传输都会引入延迟;输出侧继电器或晶体管也有动作时间。因此,从物理输入变化到物理输出变化,最坏情况可能达到2~3个扫描周期。
在硬件平台设计中,以下参数直接影响刷新性能:
- CPU主频与指令效率:决定程序执行时间。
- 背板总线带宽:决定I/O刷新和模块通信速度。
- 输入滤波常数:可配置,用于抑制抖动,但会增加输入延迟。
- 输出驱动类型:继电器输出慢(约10ms),晶体管输出快(约0.2ms)。
三、软元件概念与硬件平台的映射关系
PLC编程中使用的X、Y、M、D、T、C等“软元件”,并不是物理上真实存在的独立器件,而是存储器中的位或字。它们与硬件平台之间存在明确的映射关系:
| 软元件 | 含义 | 硬件映射 | 存储类型 |
|---|---|---|---|
| X | 输入继电器 | 输入端子→光耦→输入映像区 | 位存储区 |
| Y | 输出继电器 | 输出映像区→锁存器→驱动电路 | 位存储区 |
| M | 内部辅助继电器 | CPU内部RAM | 位存储区 |
| D | 数据寄存器 | CPU内部RAM/掉电保持区 | 字存储区 |
| T | 定时器 | 系统时钟+计数器资源 | 位+字 |
| C | 计数器 | CPU内部计数资源 | 位+字 |
从硬件平台角度看,软元件模型决定了存储器架构:需要位寻址能力、字寻址能力、掉电保持区以及高速刷新区。输入映像区和输出映像区通常放在高速SRAM中,而保持型数据放在带后备电池或FRAM的区域。
四、案例与场景:一个按钮到电机的响应链路
假设按下启动按钮SB1,PLC控制接触器KM1吸合。完整链路如下:
- SB1闭合→输入端子电压变化→光耦导通→输入滤波→输入映像区X0置1。
- 下一个扫描周期,程序执行
LD X0; OUT Y0,Y0映像区置1。 - 输出刷新阶段,Y0锁存器置1→驱动电路→继电器/晶体管输出→KM1线圈得电。
- KM1触点动作,电机启动。
如果扫描周期为10ms,输入滤波为3ms,输出继电器动作10ms,则总延迟约为23ms以上。对于高速定位或安全急停场景,这个延迟必须通过硬件中断、高速I/O模块或安全继电器来弥补。
设计提示:硬件平台选型时,先确认系统对“最坏响应时间”的要求,再反推扫描周期预算,最后决定CPU主频、总线类型和I/O模块规格。
五、常见误区与复盘
- 误区一:程序里改了X,外部输入就立刻变。X是输入映像区,只能由输入采样阶段更新。
- 误区二:扫描周期越短越好。过短会放大输入抖动,增加CPU负荷,需与滤波、通信任务平衡。
- 误区三:软元件是“虚拟”的,和硬件无关。软元件的数量、掉电保持、刷新速度都直接受存储器与总线设计约束。
- 误区四:输出刷新和程序执行同时发生。输出刷新是集中进行的,程序中间结果不会立即输出。
复盘要点:PLC硬件平台设计的本质,是为“循环扫描+集中刷新+软元件映射”提供稳定、确定、可扩展的物理支撑。脱离扫描机制谈硬件选型,容易导致响应不达标或资源浪费。