2. 实时系统基础

在实时模型与I/O映射工程中,“实时”并不是指“运算速度快”,而是指系统能否在可预测的时间边界内完成规定动作。一个控制周期为1 ms的伺服任务,即使平均耗时只有200 μs,只要偶尔出现2 ms的延迟,也可能导致机械冲击、位置超差甚至设备损坏。因此,理解实时性分类、硬实时与软实时、截止时间、抖动和确定性,是后续I/O映射与调度设计的基础。

一、实时性分类:从“快”到“可预测”

实时系统通常按对时间违约的容忍程度分为三类:

  • 硬实时(Hard Real-Time):任何一次截止时间违约都会造成不可接受的后果,如安全失效、设备损毁或人身伤害。典型场景包括运动控制中的电流环、安全联锁、机器人急停回路。
  • 软实时(Soft Real-Time):偶尔超时只会降低服务质量,不会造成灾难性后果。例如HMI画面刷新、非关键状态日志上传、趋势曲线显示。
  • 固实时(Firm Real-Time):介于两者之间,超时结果虽然不会造成危险,但该结果已失去价值,必须丢弃。例如视觉引导抓取中,若图像处理结果晚于机械臂到达抓取点,该帧结果不再可用。

分类的关键不是“任务重不重要”,而是“违约后果是否可接受”。在I/O映射工程中,同一台设备可能同时存在硬实时I/O(如限位开关、编码器)和软实时I/O(如指示灯、诊断计数器),必须分别对待。

二、截止时间、抖动与确定性

截止时间(Deadline)是任务必须完成的最晚时刻。对于周期性控制任务,截止时间通常等于下一个周期开始时刻。若周期为T,任务执行时间为C,则必须满足C ≤ T,且实际完成时刻不得晚于截止时间。

抖动(Jitter)描述的是任务实际执行时刻与理想时刻之间的偏差。例如理想每1 ms采样一次,实际采样间隔在0.98 ms到1.03 ms之间波动,抖动即为±30 μs。抖动会直接引入控制误差,在高速多轴插补中尤其敏感。

确定性(Determinism)是指系统行为在相同输入下能够重复产生相同时间结果的程度。确定性不等于快,而是“最坏情况可界定”。一个确定性良好的系统,其最坏执行时间(WCET)和最大抖动都是可测量、可验证的。

核心关系:实时性 = 正确性 + 及时性。结果正确但迟到,在硬实时系统中等同于错误。

三、核心概念关系图

下图将实时性分类、截止时间、抖动、确定性与I/O映射任务之间的关系集中呈现,便于建立整体时间模型。

实时系统核心概念关系 硬实时 违约 = 安全失效 电流环 / 急停 / 限位 固实时 超时结果作废 视觉抓取 / 帧同步 软实时 超时仅降低体验 HMI / 日志 / 趋势 截止时间 Deadline 完成时刻 ≤ 下一周期开始 C ≤ T,且实际完成 ≤ D 抖动 Jitter 实际时刻 − 理想时刻 例:±30 μs 采样偏差 确定性 Determinism 最坏执行时间 WCET 可界定 相同输入 → 相同时间结果 I/O 映射任务 输入采样 → 逻辑运算 → 输出刷新 按实时等级分配周期与优先级 实时性 = 正确性 + 及时性;迟到在硬实时中等于错误

四、方法流程:如何为I/O映射任务设定时间指标

在工程实践中,可按以下流程把实时概念落到I/O映射设计上:

  1. 识别任务实时等级:逐条列出I/O点,判断违约后果,标记为硬实时、固实时或软实时。
  2. 确定周期与截止时间:硬实时任务周期通常由控制带宽决定,截止时间取下一周期起点;软实时任务可放宽。
  3. 测量WCET与抖动:在目标硬件上实测最坏执行时间和最大抖动,而不是仅看平均值。
  4. 分配优先级与资源:硬实时任务使用最高优先级、独立CPU核或专用I/O线程,避免被日志、通信等软实时任务阻塞。
  5. 验证与留裕量:确保WCET + 抖动 < 截止时间,并保留20%~30%时间裕量。

五、案例与场景:伺服控制中的硬实时I/O

某三轴伺服系统,电流环周期为125 μs,位置环周期为1 ms。编码器采样和PWM输出属于硬实时I/O,必须在每个电流环周期内完成。若将HMI通信日志写入同一线程,日志刷盘可能引入数百微秒抖动,导致电流环超时。改进方案是将日志任务降为软实时,放到低优先级线程,并通过无锁队列传递数据。

任务名          周期      截止时间   实时等级   优先级
电流环I/O       125 μs    125 μs     硬实时     最高
位置环I/O       1 ms      1 ms       硬实时     高
视觉引导        20 ms     25 ms      固实时     中
HMI刷新         50 ms     100 ms     软实时     低
日志上传        200 ms    500 ms     软实时     最低

判断技巧:先问“如果这次没按时完成,会不会出安全事故或损坏设备?”如果会,就是硬实时;如果只是结果作废,就是固实时;如果只是体验变差,就是软实时。

六、常见误区与复盘

  • 误区一:CPU占用率低就一定实时。平均占用率低不代表最坏情况可预测,突发中断和缓存抖动仍可能造成超时。
  • 误区二:把所有任务都设为硬实时。过度提高优先级会导致系统难以调度,反而增加整体抖动。
  • 误区三:只看平均延迟,不看抖动。控制系统中,抖动往往比平均延迟更致命。
  • 误区四:忽略I/O刷新时刻。输入采样和输出刷新若不在确定时刻发生,逻辑运算再快也无法保证控制效果。

复盘时建议记录每个周期的实际完成时刻、最大抖动和超时次数,并绘制时间线。只有把截止时间、抖动和确定性作为可测量指标,I/O映射设计才真正具备工程可控性。