2、实时性基础:什么是实时性?硬实时与软实时的区别

聊工业通讯协议,绕不开一个词——实时性

很多刚入行的工程师,一听到「实时」两个字,就以为「快」就是实时。其实不是。我见过不少项目,通讯速率跑得飞快,但该丢数据还是丢,该超时还是超时。为什么?因为实时性不等于速度,它说的是另一件事。

2.1 到底什么是实时性?

咱们先把这个概念掰扯清楚。

实时性,说白了就是:系统对外部事件做出响应的时间,必须在某个确定的、可预期的范围内。

注意两个关键词:

  • 确定:不是「大多数时候能行」,而是「一定行」。
  • 可预期:最坏情况下的响应时间,你得提前算得出来。

举个例子。你按一下电梯按钮,电梯必须在几秒内响应。如果它有时候1秒就来了,有时候等5分钟才来,你会不会觉得这电梯有问题?这就是实时性差的表现。

工业现场也一样。PLC发一个读指令给Modbus从站,从站必须在规定时间内回复。如果它有时候10ms回,有时候500ms才回,那这条产线就没法稳定跑。

核心定义:实时性 = 在规定的截止时间(Deadline)之前,完成规定的任务。

2.2 硬实时 vs 软实时

搞清楚了实时性的定义,接下来就是区分两种类型。我个人习惯把它们分成「命根子」和「面子」两种。

2.2.1 硬实时(Hard Real-Time)

硬实时:错过截止时间,就是系统故障,甚至会造成灾难性后果。

我在项目中遇到过最典型的硬实时场景——安全联锁系统。比如化工装置的压力保护,一旦超压,必须在10ms内切断阀门。晚1ms都不行,晚1ms可能就爆炸了。

硬实时的特点:

  • 截止时间必须100%满足
  • 违反一次都不允许
  • 后果往往是设备损坏、人员伤亡

你想想看,这种场景下,谁敢用「大概率能行」的通讯协议?

2.2.2 软实时(Soft Real-Time)

软实时:偶尔错过截止时间,系统还能工作,只是性能下降或体验变差。

最常见的例子——数据采集系统。你要求每100ms采集一次温度数据,偶尔一次延迟到150ms,数据还能用,只是精度稍微差一点。不会死人,也不会炸设备。

软实时的特点:

  • 截止时间可以偶尔违反
  • 违反次数多了,系统性能下降
  • 后果通常是数据质量变差、用户体验不好

我的经验:很多工程师把Modbus当成「实时协议」来用,其实Modbus本身只定义了通讯格式,并没有保证实时性。能不能做到实时,取决于你的周期设计网络拓扑。这一点后面会详细讲。

2.3 一张表看懂区别

为了方便对比,我整理了一个表格。嗯,这个表我用了很多年,每次培训都会拿出来讲。

对比项 硬实时 软实时
截止时间违反后果 系统故障、灾难 性能下降、体验差
容忍度 零容忍 可容忍偶尔违反
典型应用 安全联锁、运动控制 数据采集、监控报警
通讯协议要求 确定性极高,通常用EtherCAT、Profinet IRT Modbus TCP、普通Profinet即可
设计思路 最坏情况分析,留足余量 统计平均性能,优化即可

2.4 为什么搞混这两种实时性会出问题?

我曾经见过一个项目,工程师用Modbus RTU做伺服驱动器的位置控制。他以为「通讯速度够快」就等于「实时性好」。结果呢?产线一跑起来,伺服时不时丢一个脉冲,位置就偏了。最后查出来,是Modbus的轮询周期不稳定,偶尔一次延迟导致伺服没收到指令。

这就是典型的把软实时的需求,用在了硬实时的场景里。

反过来也有问题。有些项目明明只是采集温度,非要上EtherCAT,成本翻了好几倍,性能却用不上。说白了,杀鸡用牛刀。

避坑指南:我曾经在选型阶段吃过亏。当时客户要求「实时通讯」,我没细问,直接上了Profinet IRT。结果现场一看,人家只是要每5秒读一次液位……白白浪费了预算。所以,拿到需求先问一句:错过一次会怎样? 这个问题能帮你快速判断是硬实时还是软实时。

2.5 实时性在Modbus中的体现

回到咱们课程的主题——Modbus。Modbus本身是主从架构,主站轮询从站。这种架构天然决定了它的实时性上限。

为什么?

  • 主站必须等从站回复,才能发下一条指令
  • 从站数量越多,轮询一圈的时间越长
  • 任何一个从站响应慢了,整个周期都被拖累

所以,Modbus的实时性属于软实时范畴。它适合做数据采集、参数设置、监控报警。但如果你要用它做高速运动控制或安全联锁,那就要非常小心了。

我个人的建议是:

  • 如果周期要求 > 10ms,Modbus RTU 可以试试
  • 如果周期要求 > 1ms,Modbus TCP 可以试试
  • 如果周期要求 < 1ms,别折腾Modbus了,换协议吧

记住一句话:实时性不是「快」,而是「稳」。Modbus可以做到「稳」,但前提是你得把周期设计好。下一章,咱们就专门讲这个——Modbus周期优化。

2.6 小结

这一章咱们讲了三个核心点:

  1. 实时性 = 在截止时间前完成响应,重点是确定性和可预期
  2. 硬实时 = 错过就完蛋,零容忍
  3. 软实时 = 偶尔错过还能忍,但别太过分

搞清楚了这些,你再看工业通讯协议,心里就有底了。哪些协议能用在什么场景,哪些协议只是「看起来快」,你都能判断个八九不离十。

好,下一章咱们就进入实操环节——怎么优化Modbus的通讯周期,让它尽可能接近实时。