2. 实时系统基础

在工业控制领域,“实时”并不是“速度快”的同义词。一个系统即使每秒能处理上百万条指令,只要它无法保证关键任务在确定的时间窗口内完成,就不能称为实时系统。实时性的本质是时间约束的可满足性:系统必须在规定的时间范围内对外部事件作出正确响应,而“正确”既包含计算结果的正确,也包含响应时刻的正确。

实时系统的定义:给定一个外部事件,系统从事件发生到产生有效响应的最坏情况时间(Worst-Case Response Time, WCRT)必须小于或等于该事件的截止时间(Deadline)。即:WCRT ≤ Deadline。

2.1 延迟、抖动与确定性:三个核心度量

要判断一个系统是否满足实时要求,必须把“时间”拆解为可测量的量。工业场景中最常用的三个度量是延迟、抖动和确定性。

  • 延迟(Latency):从事件发生到系统产生响应之间的时间间隔。它通常由中断响应时间、任务调度延迟、计算时间和输出延迟叠加而成。
  • 抖动(Jitter):同一类事件多次发生时,其响应时间的波动范围。例如某控制任务平均响应 200 μs,但最坏达到 900 μs,则抖动约为 700 μs。抖动直接决定控制周期的稳定性。
  • 确定性(Determinism):系统在最坏情况下仍能保证响应时间有界且可预测的能力。确定性不是“平均很快”,而是“最坏可控”。

三者关系可以用一个简单公式表达:WCRT = 平均延迟 + 抖动余量。如果只关注平均延迟而忽略抖动,系统在负载升高或中断密集时就会突破截止时间,造成控制失稳。

实时系统时间轴:延迟、抖动与截止时间判定 时间 事件到达 截止时间 平均响应 最坏响应 平均延迟 抖动范围(Jitter) 余量 硬实时(Hard Real-Time) WCRT ≤ Deadline,超时即失败 例:伺服控制、安全联锁、飞控 软实时(Soft Real-Time) 偶尔超时可容忍,仅降低服务质量 例:HMI刷新、数据记录、视频监控

2.2 硬实时与软实时:截止时间的刚性差异

根据错过截止时间的后果,实时任务分为硬实时和软实时两类,工业场景中还存在介于两者之间的“固实时”(Firm Real-Time)。

类型截止时间约束超时后果典型工业场景
硬实时必须满足,WCRT ≤ Deadline系统失败、设备损坏或人身伤害运动控制、安全PLC、机器人关节伺服
固实时通常满足,偶尔超时结果作废结果无价值,但不造成灾难视觉分拣、在线质量检测
软实时尽量满足,允许统计性超时用户体验下降、数据延迟SCADA画面刷新、历史数据归档

需要特别注意的是,同一个系统中往往同时存在硬实时和软实时任务。例如一台数控机床,插补计算和伺服更新属于硬实时,而加工进度显示和远程监控属于软实时。QNX等实时操作系统通过优先级抢占调度和优先级继承,保证硬实时任务不被软实时任务阻塞。

2.3 工业场景中的实时需求量化

工业控制对实时性的要求随控制层级不同而显著变化。下表给出典型场景的周期与抖动要求,可作为系统选型和参数配置的参考。

场景                     控制周期        允许抖动        截止时间余量
--------------------------------------------------------------
伺服电流环               50 ~ 125 μs     < 10 μs          < 20%
运动插补环               250 μs ~ 1 ms   < 50 μs          < 30%
PLC逻辑扫描              1 ~ 10 ms       < 200 μs         < 40%
过程控制回路             10 ~ 100 ms     < 2 ms           < 50%
SCADA数据采集            100 ms ~ 1 s    < 50 ms          宽松
--------------------------------------------------------------

从表中可以看出,控制层级越低,周期越短,对抖动的要求越苛刻。伺服电流环的抖动若超过10 μs,就可能引起电流纹波和转矩脉动,直接影响加工表面质量。

2.4 案例:注塑机合模控制的实时性分析

某注塑机合模动作要求位置控制周期为1 ms,截止时间为1.2 ms。系统采用QNX运行控制任务,同时运行HMI和日志任务。实测数据如下:

  • 中断响应时间:8 μs
  • 控制任务调度延迟:平均15 μs,最坏120 μs
  • 控制计算时间:平均180 μs,最坏260 μs
  • 输出刷新延迟:20 μs

计算最坏响应时间:WCRT = 8 + 120 + 260 + 20 = 408 μs,远小于1.2 ms截止时间,余量充足。但若HMI任务未正确降优先级,导致控制任务被阻塞2 ms,则WCRT突破截止时间,合模动作可能滞后,造成模具撞击。这正是硬实时系统中“优先级反转”和“调度确定性”必须解决的问题。

常见误区:用平均响应时间评估实时性。平均延迟200 μs不代表系统安全,若抖动达到1.5 ms,最坏响应仍会超过截止时间。实时性评估必须基于最坏情况分析(WCRT),而非平均值。

2.5 确定性从何而来

确定性是实时系统的灵魂。它来源于四个方面:

  1. 可抢占的优先级调度:高优先级任务一旦就绪,立即抢占低优先级任务,保证关键路径不被延迟。
  2. 有界的中断延迟:中断关闭时间必须短且有上限,避免长时间屏蔽外部事件。
  3. 确定性的内存管理:避免动态内存分配带来的不确定延迟,工业实时任务通常使用静态或池化内存。
  4. 时间隔离与资源预留:通过分区调度或时间窗机制,防止非关键任务挤占关键任务的时间预算。
在QNX中,可以通过ThreadCtl()设置线程调度策略,通过SchedSet()调整优先级,并使用ClockPeriod()配置系统时钟粒度。建议将硬实时任务优先级设为较高值,并关闭不必要的后台服务,以减少抖动源。

总结来说,实时系统的设计目标不是追求最快,而是追求最坏情况可控。延迟决定响应快慢,抖动决定响应稳不稳,确定性决定系统能不能被信任。硬实时与软实时的划分,本质上是对“错过截止时间”这一后果的工程判断。只有把截止时间、WCRT和抖动余量三者统一纳入设计,工业控制系统才能在严苛环境下长期稳定运行。