2. PLC实时控制基础
在数字孪生实时联调中,PLC 不是“被动执行器”,而是以固定节拍循环运行的控制核心。理解它的时间行为,才能解释为什么孪生模型里动作已经到位,现场却晚了一个周期;也才能判断联调延迟究竟来自网络、模型还是 PLC 本身。
一、扫描周期:PLC 的时间基准
PLC 采用循环扫描机制,一个完整周期通常包含四个阶段:输入采样、程序执行、输出刷新、系统通信与自检。输入采样阶段,CPU 一次性读取所有物理输入点,把状态写入过程映像输入区(PII);程序执行阶段,CPU 按用户程序逐条运算,读写的是过程映像区而非直接访问硬件;输出刷新阶段,把过程映像输出区(PIQ)的结果一次性送到输出模块;最后处理通信、诊断等任务,然后进入下一轮。
扫描周期的长短由程序规模、指令类型、通信负载共同决定。以一台中型 PLC 为例,若用户程序约 8 K 条指令、平均每条 0.05 μs,则程序执行约 0.4 ms;加上输入输出刷新与通信开销,典型扫描周期可能在 1~3 ms。对于运动控制或高速计数场景,这个数值直接决定系统能响应的最短信号宽度——若输入脉冲只持续 0.5 ms,而扫描周期为 2 ms,就可能被漏采。
二、输入输出刷新与实时性
过程映像机制带来两个重要后果。第一,同一扫描周期内输入状态是“冻结”的:程序前半段和后半段读到的同一输入点值相同,这保证了逻辑一致性。第二,输出在周期末才真正生效:即使程序在周期开始就把输出置 1,物理端子也要等到刷新阶段才变化。因此从“输入变化”到“输出变化”的最坏延迟接近一个完整扫描周期。
在数字孪生联调中,这个延迟会叠加到通信延迟上。若 PLC 扫描周期 2 ms、OPC UA 或 Modbus TCP 通信周期 10 ms、孪生模型步长 5 ms,则端到端延迟大致为三者之和的量级。要降低延迟,可以缩短扫描周期、提高通信刷新率,或把关键联锁放到中断任务中执行。
三、中断与实时任务
循环扫描无法满足所有实时需求。当出现高速脉冲计数、急停信号、编码器位置锁存等事件时,必须使用中断。PLC 中断通常分为:时间中断(固定周期触发,如每 1 ms 执行一次 PID)、硬件中断(输入点跳变触发)、通信中断(收到特定报文触发)。中断任务优先级高于主循环,可打断当前扫描立即执行。
以西门子 S7-1200/1500 为例,可配置循环中断 OB30,设定 1 ms 周期执行高速控制算法;硬件中断 OB40 绑定到具体输入点,用于捕捉急停或限位信号。三菱 FX 系列则使用 I 开头的中断指针,如 I00 对应 X0 上升沿中断。中断程序应尽量短小,只做数据锁存和标志位置位,复杂运算放回主循环,否则会拉长整体扫描时间。
四、常见 PLC 平台与编程语言
不同平台在实时性能、编程习惯和联调接口上差异明显。下表列出工程中常见的几类平台及其典型特征,便于在数字孪生项目中选型和对接。
| 平台 | 典型型号 | 编程语言 | 实时特点 | 联调接口 |
|---|---|---|---|---|
| 西门子 | S7-1200 / 1500 | LAD、FBD、SCL、GRAPH | 循环中断最小 1 ms,硬件中断响应快 | OPC UA、S7 通信、Profinet |
| 三菱 | FX5U / Q 系列 | 梯形图、ST、SFC | 高速计数与定位内置,中断指针灵活 | MC 协议、Modbus TCP、SLMP |
| 罗克韦尔 | CompactLogix / ControlLogix | LAD、FBD、ST、SFC | 周期性任务与事件任务分离,确定性好 | EtherNet/IP、CIP、OPC UA |
| 倍福 | CX 系列 / TwinCAT | ST、LAD、FBD、CFC | 基于 PC 控制,周期可低至 50 μs | ADS、EtherCAT、OPC UA |
| 汇川 | AM400 / H5U | 梯形图、ST | 中小型运动控制集成,中断响应快 | Modbus TCP、EtherCAT、OPC UA |
IEC 61131-3 定义了五种标准语言:梯形图(LAD)直观适合电气逻辑;功能块图(FBD)适合信号流与闭环控制;结构化文本(ST)适合算法与数据处理;指令表(IL)逐步被淘汰;顺序功能图(SFC)适合状态机流程。数字孪生联调中,ST 常用于编写数据打包、坐标变换和通信映射,LAD 用于安全联锁,SFC 用于设备动作序列。
五、联调中的时间参数核对
在把 PLC 接入数字孪生之前,建议先做一次时间参数核对,避免后期反复排查。核对内容包括:主循环扫描周期实测值、中断任务周期与执行时间、通信刷新周期、孪生模型步长。四者应满足:中断周期 ≤ 模型步长 ≤ 通信周期 ≤ 主循环周期,且关键联锁放在中断或高优先级任务中。若实测扫描周期波动超过 20%,应检查程序中有无长循环、浮点运算集中或通信阻塞。
例如,某包装线联调中,PLC 主循环实测 4 ms,孪生模型步长 10 ms,Modbus TCP 刷新 20 ms。当输送带速度突变时,孪生画面比现场晚约 30~40 ms。把模型步长改为 5 ms、通信改为 10 ms 后,视觉延迟明显减小,但 PLC 扫描周期升至 6 ms,此时需确认急停信号仍走硬件中断,不受主循环拉长影响。这个例子说明:实时联调不是单纯“越快越好”,而是在扫描周期、通信负载和模型精度之间找平衡。