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映射任务之间的关系集中呈现,便于建立整体时间模型。
四、方法流程:如何为I/O映射任务设定时间指标
在工程实践中,可按以下流程把实时概念落到I/O映射设计上:
- 识别任务实时等级:逐条列出I/O点,判断违约后果,标记为硬实时、固实时或软实时。
- 确定周期与截止时间:硬实时任务周期通常由控制带宽决定,截止时间取下一周期起点;软实时任务可放宽。
- 测量WCET与抖动:在目标硬件上实测最坏执行时间和最大抖动,而不是仅看平均值。
- 分配优先级与资源:硬实时任务使用最高优先级、独立CPU核或专用I/O线程,避免被日志、通信等软实时任务阻塞。
- 验证与留裕量:确保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映射设计才真正具备工程可控性。