2. PLC基础回顾

在进入PLC控制器硬件平台设计之前,有必要把PLC最核心的运行机制重新梳理一遍。很多硬件设计上的取舍,最终都源于PLC“循环扫描”这一基本工作方式。理解扫描周期、输入输出刷新和软元件模型,才能明白为什么PLC需要特定的CPU、存储器、总线与I/O电路结构。

一、PLC工作原理:循环扫描与集中刷新

PLC不同于通用计算机的“事件驱动”执行方式,它采用周期性循环扫描。一个完整扫描周期通常包含四个阶段:

  1. 输入采样阶段:CPU读取所有输入端子状态,写入输入映像区。
  2. 程序执行阶段:按用户程序顺序逐条执行,读取输入映像区和内部软元件,运算结果写入输出映像区。
  3. 输出刷新阶段:把输出映像区的结果一次性送到输出锁存器,驱动外部负载。
  4. 系统管理阶段:通信、自诊断、看门狗复位等。

关键点在于:程序执行期间,即使外部输入发生变化,输入映像区也不会立即更新;输出映像区在程序执行期间也不会立即影响外部负载。这种“集中采样、集中输出”的机制,使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吸合。完整链路如下:

  1. SB1闭合→输入端子电压变化→光耦导通→输入滤波→输入映像区X0置1。
  2. 下一个扫描周期,程序执行LD X0; OUT Y0,Y0映像区置1。
  3. 输出刷新阶段,Y0锁存器置1→驱动电路→继电器/晶体管输出→KM1线圈得电。
  4. KM1触点动作,电机启动。

如果扫描周期为10ms,输入滤波为3ms,输出继电器动作10ms,则总延迟约为23ms以上。对于高速定位或安全急停场景,这个延迟必须通过硬件中断、高速I/O模块或安全继电器来弥补。

设计提示:硬件平台选型时,先确认系统对“最坏响应时间”的要求,再反推扫描周期预算,最后决定CPU主频、总线类型和I/O模块规格。

五、常见误区与复盘

  • 误区一:程序里改了X,外部输入就立刻变。X是输入映像区,只能由输入采样阶段更新。
  • 误区二:扫描周期越短越好。过短会放大输入抖动,增加CPU负荷,需与滤波、通信任务平衡。
  • 误区三:软元件是“虚拟”的,和硬件无关。软元件的数量、掉电保持、刷新速度都直接受存储器与总线设计约束。
  • 误区四:输出刷新和程序执行同时发生。输出刷新是集中进行的,程序中间结果不会立即输出。

复盘要点:PLC硬件平台设计的本质,是为“循环扫描+集中刷新+软元件映射”提供稳定、确定、可扩展的物理支撑。脱离扫描机制谈硬件选型,容易导致响应不达标或资源浪费。

PLC扫描周期与软元件—硬件映射关系 一个扫描周期 ① 输入采样 X → 输入映像区 ② 程序执行 读映像区 → 写映像区 ③ 输出刷新 输出映像区 → Y ④ 系统管理 通信 / 诊断 / 看门狗 循环往复,周期时间 T_scan = T_input + T_program + T_output + T_system 硬件平台支撑 输入电路 端子 / 光耦 / 滤波 电平转换 CPU + 存储器 输入/输出映像区 M / D / T / C 软元件 输出电路 锁存器 / 驱动 继电器 / 晶体管 背板总线 刷新 通信 软元件映射关系: X(输入继电器)→ 输入映像区 → 输入电路;Y(输出继电器)→ 输出映像区 → 输出锁存与驱动; M(辅助继电器)、D(数据寄存器)、T(定时器)、C(计数器)→ CPU内部RAM / 掉电保持区。 最坏响应时间 ≈ 输入滤波 + 2×扫描周期 + 输出动作时间