实测PLC响应时间为275微秒±50微秒抖动。本工程简报阐述如何通过硬件中断配置西门子G2 S7-1214C DC/DC/DC PLC,并在 HardwareInterrupt[OB40] 块中编写简单程序。
我们将看到快速响应时间并不等同于快速扫描周期。
所属模块 :理解原理→PLC扫描周期与存储器
难度等级 :
工程师级——难度分级说明
最后更新 :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]清除。
继续探索工业控制系统
如果本次讨论对您有帮助,您可能还想了解:
DigiKey 导航
完整目录 :工业控制与自动化




