PLC响应时间解析:硬件中断与扫描周期

实测PLC响应时间为275微秒±50微秒抖动。本工程简报阐述如何通过硬件中断配置西门子G2 S7-1214C DC/DC/DC PLC,并在 HardwareInterrupt[OB40] 块中编写简单程序。

我们将看到快速响应时间并不等同于快速扫描周期。


本文属于DigiKey工业自动化现场指南系列

所属模块 :理解原理→PLC扫描周期与存储器
难度等级:gear: 工程师级——难度分级说明
最后更新 :2026年3月6日


1 :示波器显示的PLC上升沿到上升沿响应时间。

物理配置

使用了两台PLC设备:

  • PLC#1作为24VDC脉冲发生器运行,产生图1中的橙色信号。该信号从PLC#1的%Q0.0输出端发送至PLC#2的%I0.0输入端。

  • PLC#2通过产生蓝色输出信号响应PLC#1。该PLC已配置硬件中断程序。

使用Digilent ADP2230混合信号示波器进行测量。

PLC 设备配置

图2显示了PLC#2的核心配置。

缩减输入滤波窗口

将输入滤波器调至最低设置0.1微秒。注意:默认设置为6.4毫秒用于开关消抖。采用0.1微秒设置的前提是输入信号纯净。

此设置需谨慎使用。本应用中完全适用,因PLC#1提供接近理想的脉冲信号。但现实场景中的信号(如开关弹跳)会触发不必要的中断,可能影响PLC实时性能。开关触点弹跳可在短时间内引发数十次中断。

启用硬件中断

上升沿和下降沿检测的复选框均已被选中。两个中断都将调用 HardwareInterrupt[OB40] 块,且中断优先级设置为默认级别16。它们共同构成一个指向硬件中断代码的双向边沿检测器。

2 :输入滤波器时间缩短,并启用了边沿检测。

PLC 硬件中断编程

图3显示了作为HardwareInterrupt [OB40]组成部分的梯形图逻辑。其中包含一个读取输入脉冲并根据其设置输出的独立梯级。注意观察每个标签都附加了:P后缀以实现西门子外围设备访问。这是突破常规PLC扫描周期直接操作I/O的关键特性。本质上,我们让PLC立即停止当前操作并从输入端口直接获取数值。随后PLC将无视传统扫描周期阶段直接设置输出。

这是强大的工具,但容易被滥用。之前我们将输入通道中断优先级设为16。这将覆盖Main[OB1]。实际上它会抢占主任务时间导致PLC运行减速。过多的中断可能影响实时性能。

3 :硬件中断[OB40]程序。

PLC 周期时间考量

图4展示了测试PLC的周期时间历史记录。本演示中我添加了17毫秒的大型程序来延迟PLC。使用硬件中断时,由于[OB40]优先于[OB1],这种延迟对时序零影响。

但需注意,[OB40]可能因延长循环执行时间导致[OB1]资源不足。极端情况下看门狗定时器将激活,使PLC进入故障状态。

4 :添加大型循环延迟时的PLC周期时间。

无硬件中断时的默认性能

图5展示了PLC在标准配置下的默认性能,输入滤波器设置为6.4毫秒且未启用硬件中断。存在两个时域集群。第一个集群集中在7±2毫秒区间。第二个集群代表数组循环部分被激活时的时延。当前观测到的端到端时延在25至75毫秒之间,统计中心值为35±10毫秒。

5 :PLC默认性能表现

硬件中断会破坏 PLC 的安全周期运行

仅在时间要求极为严苛的特定应用中谨慎使用硬件中断。最大的风险在于会破坏周期扫描的自然节奏。具体而言,中断机制会消除程序在任意扫描周期内保持I/O一致性的保护。

最后特别提醒:系统不会阻止您在[OB1][OB40]中同时使用同一个触点或线圈。由此产生的间歇性故障将极难排查,请务必警惕。当[OB1][OB40]都能向同一输出引脚写入时,将不再存在单一数据源。最终可能导致[OB40]刚设置的输出,瞬间又被[OB1]清除。

继续探索工业控制系统

如果本次讨论对您有帮助,您可能还想了解:

:books: DigiKey 导航

完整目录工业控制与自动化

:world_map: 相关基础文章