2. 实时系统基础
在工业控制领域,“实时”并不是“速度快”的同义词。一个系统即使每秒能处理上百万条指令,只要它无法保证关键任务在确定的时间窗口内完成,就不能称为实时系统。实时性的本质是时间约束的可满足性:系统必须在规定的时间范围内对外部事件作出正确响应,而“正确”既包含计算结果的正确,也包含响应时刻的正确。
2.1 延迟、抖动与确定性:三个核心度量
要判断一个系统是否满足实时要求,必须把“时间”拆解为可测量的量。工业场景中最常用的三个度量是延迟、抖动和确定性。
- 延迟(Latency):从事件发生到系统产生响应之间的时间间隔。它通常由中断响应时间、任务调度延迟、计算时间和输出延迟叠加而成。
- 抖动(Jitter):同一类事件多次发生时,其响应时间的波动范围。例如某控制任务平均响应 200 μs,但最坏达到 900 μs,则抖动约为 700 μs。抖动直接决定控制周期的稳定性。
- 确定性(Determinism):系统在最坏情况下仍能保证响应时间有界且可预测的能力。确定性不是“平均很快”,而是“最坏可控”。
三者关系可以用一个简单公式表达:WCRT = 平均延迟 + 抖动余量。如果只关注平均延迟而忽略抖动,系统在负载升高或中断密集时就会突破截止时间,造成控制失稳。
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突破截止时间,合模动作可能滞后,造成模具撞击。这正是硬实时系统中“优先级反转”和“调度确定性”必须解决的问题。
2.5 确定性从何而来
确定性是实时系统的灵魂。它来源于四个方面:
- 可抢占的优先级调度:高优先级任务一旦就绪,立即抢占低优先级任务,保证关键路径不被延迟。
- 有界的中断延迟:中断关闭时间必须短且有上限,避免长时间屏蔽外部事件。
- 确定性的内存管理:避免动态内存分配带来的不确定延迟,工业实时任务通常使用静态或池化内存。
- 时间隔离与资源预留:通过分区调度或时间窗机制,防止非关键任务挤占关键任务的时间预算。
ThreadCtl()设置线程调度策略,通过SchedSet()调整优先级,并使用ClockPeriod()配置系统时钟粒度。建议将硬实时任务优先级设为较高值,并关闭不必要的后台服务,以减少抖动源。
总结来说,实时系统的设计目标不是追求最快,而是追求最坏情况可控。延迟决定响应快慢,抖动决定响应稳不稳,确定性决定系统能不能被信任。硬实时与软实时的划分,本质上是对“错过截止时间”这一后果的工程判断。只有把截止时间、WCRT和抖动余量三者统一纳入设计,工业控制系统才能在严苛环境下长期稳定运行。