Modbus 在化工装置里的真实位置、常见的坑,以及近几年真正发生的三个变化
全文约 3,400 字 | 预计阅读 10 分钟 |
凌晨两点四十,中控在对讲机里喊仪表:三号罐区那台雷达液位又掉线了。
你套上防静电服过去,仪表柜里那对 RS-485 屏蔽线好好的,终端电阻在,转换器指示灯照常闪。回中控一看,这一路 Modbus 上挂着十九台从站,其中一台电能表半小时前刚被电气换过——新表出厂默认地址是 1,和罐区雷达撞了。
两台设备抢一个地址,链路上没有任何机制会告诉你这件事。它只会让你看见一个“时有时无”的液位。
这就是 Modbus:一个 1979 年出生、应用协议在 2012 年定版之后再没改过一个字的东西,今天仍然承担着化工装置里绝大多数“系统与系统之间”的数据传递。它不先进,但它在。
01
它不是历史遗留,而是化工装置的最小公约数
Modbus 由 Modicon 在 1979 年发布,2004 年起由 Modbus Organization 维护,应用协议规范 V1.1b3 定版于 2012 年 4 月,此后再未修订。它同时被收进 IEC 61158 现场总线应用层体系,国内对应 GB/T 19582.1~.3—2008 三个部分,分别覆盖应用协议、串行链路实现指南和 TCP/IP 实现指南。
它活下来的原因很朴素:规范公开、免版税、数据模型只有线圈、离散量输入、输入寄存器、保持寄存器四张表,一个单片机工程师两天就能写出一个能用的从站。对设备厂商来说,加一个 Modbus 口的边际成本几乎为零;对总承包来说,它是唯一一个不用开接口会议就能默认对方支持的协议。
但在化工装置里,Modbus 的位置需要说清楚:它极少出现在控制回路内部。真正闭环的东西还是 4–20 mA、HART 和 DCS 内部总线。Modbus 站在系统边界上——撬装设备与 DCS 之间、分析小屋与操作站之间、电气与仪表之间、装置与厂级平台之间。

图 1 Modbus 在化工装置里几乎总是承担“跨系统”的角色,而不是“回路内”的角色
在化工装置里,Modbus 从来不是最好的协议——
它只是唯一一个所有人都会说的语言。
02
五类接入位置,五种不同的失败方式
把装置里的 Modbus 链路按来源分一分,会发现每一类的问题几乎是固定的。
撬装单元 PAU、空压站、冷冻站、氮气机、锅炉给水撬。 供货商自带 PLC,寄存器表在对方工程师手里,且经常和最终发货版本对不上。 对策:把寄存器表列进技术协议附件,出厂验收时逐点核对,不接受“开车时再给”。 | 在线分析小屋 色谱、微量水、总硫、水中油、氧含量。 一台 GC 十几个组分,外加分析周期、标定状态、故障字,用 4–20 mA 根本接不完。 对策:把“分析结果有效性”当成必须传的量,而不是可选项。 |
罐区与计量 雷达与伺服液位、多点温度、称重模块、流量计算机。 涉及贸易交接时,数据既要准也要可追溯。 对策:计量数据单独一条链路,不要和公用工程混挂。 | 电气与公用工程 UPS、变频器、软启动、智能电表、MCC 抽屉。 电气专业习惯的地址规则和仪表不同,字序、量程倍率经常两套标准。 对策:接口会议上把字序和缩放因子当成一等公民写进纪要。 |
火气与安消防盘 可燃气与有毒气报警控制器、火灾报警盘、消防泵房,通常只往 DCS 送状态。 这一类的特点是:平时没人看,出事时全指望它。而恰恰是这一类最容易在通信中断后,把最后一帧“一切正常”永远保持在画面上。 对策:必须有独立于报文内容的通信监视,见第 3 节。 |
03
真正的坑不在协议里,在工程约定里
Modbus 规范本身很薄,薄到把大量决定权留给了实现者。于是同一份规范下,两个厂家的设备可以互相完全读不懂。
▍字序:同一串电平,四种解释
Modbus 的寄存器是 16 位的,而现场需要的温度、流量、组分几乎都是 32 位浮点。把一个 float 塞进两个寄存器,就出现了字节顺序的问题,而规范里没有任何一位来声明用的是哪一种。

图 2 100.0 这个数,四种字序里只有一种能被“标准”解析出来,其余三种是彻底无关的数
好消息是:字序错了通常一眼能看出来——数值离谱到不可能。坏消息是 BADC 那一行,某些量程下会落进貌似合理的区间,然后一直骗到装置试车。
▍地址基准与量程:另外三个高频问题
其一,寄存器地址的基准。有的手册写 40001,有的写 4x0000,有的直接写 0——同一个点,报文里可能是 0 也可能是 1。其二,有符号与无符号:一个 −20 ℃ 的温度在无符号解析下会变成 65516。其三,缩放因子:厂家给的是原始整数,量程和小数位要靠另一份文档,而那份文档经常没随货。
▍轮询周期:一条链路到底能挂多少台
这件事可以算,不必凭经验拍。以功能码 03、每台读 20 个保持寄存器为例,请求帧 8 字节、响应帧 45 字节,每字节 11 位,加上两次 3.5 字符的帧间静默和从站自身约 20 ms 的响应延时,就能得到单台事务时间,再乘以从站数量。

图 3 同样是 32 台从站,9600 bps 需要近 3 秒一轮,而链路拆成两条比提速更有效
这张图有个反直觉的结论:链路慢的时候,第一反应是提波特率;但过了某个点,瓶颈就从线路速率转移到了从站自身的响应延时。此时再提波特率收益很小,真正有效的办法是拆链路、减少每台的读取点数,或者把不需要秒级刷新的点降频。
▍最关键的一条:Modbus 没有品质位
HART、FOUNDATION Fieldbus、PROFIBUS PA 的每一个过程值都自带状态字节,告诉你这个数是好是坏、是不是替代值。Modbus 没有。它只有两种结果:从站应答,或者主站超时。
这个差别在现场的后果是具体的。通信断了,多数 DCS 侧的做法是保持上一帧数据。于是操作工画面上看到的不是坏值、不是问号,而是一个安静的、看起来完全正常的、但已经停在半小时前的数。这比明显的坏值危险得多。
必须自建的三件事 心跳寄存器:要求每台从站提供一个自增计数器(或时间戳),主站侧判断其是否变化,变化停止即判通信失效。 超时置坏:DCS 侧组态明确的通信超时时间与超时动作,不允许默认“保持”。 通信状态点:每条链路、每台从站建独立的通信质量点,并纳入报警组,让掉线本身成为一条报警而不是一个需要人去发现的现象。 |
Modbus 只传数值,不传“这个数值是否可信”。
品质位,得工程师自己造。
▍写操作与硬件:老生常谈但仍在出事
写操作的原则是能不写就不写。功能码 05、06、15、16 建议在网关侧默认禁用,确需下写的场合走独立通道并保留操作记录。SIS 相关的数据只允许单向读出,任何情况下不做反写。
硬件层面:屏蔽层单端接地(两端接地就是开头那种“时有时无”的另一个常见成因)、链路两端各一只 120 Ω 终端电阻而不是每台都装、确认主站侧的失效偏置电阻、拓扑做菊花链不做星形、转换器一律选隔离型。这些每本手册都写,但每次开车都还在返工。
04
近几年真正发生变化的,是它的三个外围
协议本体十四年没动,但它周围的三件事在最近几年发生了实质性变化。对仪表专业来说,这三件事的影响顺序是:先是安全,然后是物理层,最后是数据的去向。
▍变化一:从明文到 TLS,以及一次真实的教训
Modbus 的原始设计里没有任何认证与加密——任何能连上 502 端口的设备,都可以合法地读写保持寄存器。Modbus Organization 在 2018 年发布了 Modbus TCP Security 规范,用 TLS 承载报文、以 X.509v3 证书做设备认证、并引入基于角色的客户端授权,端口改用 802;该规范在 2021 年 7 月修订至 v3.6。
国内的对应动作是 GB/T 41868—2022《Modbus TCP 安全协议规范》,2022 年 10 月发布、2023 年 5 月 1 日实施,由 SAC/TC 124 归口,起草单位包含机械工业仪器仪表综合技术经济研究所、施耐德电气、浙江中控、中科院沈阳自动化所等。文件规定了 mbaps 的服务定义、TLS 握手与密码套件选择,以及基于角色的客户端授权模型。
更值得注意的是下一步:2025 年国家标准计划里出现了 20253557-T-604《Modbus 测试规范 第 3 部分:TCP 安全协议一致性测试规范》。有规范只是第一步,有一致性测试才意味着采购时可以把“支持安全 Modbus”写成一条可验证的技术条款。此外,针对串行链路明文传输的风险,2025 年也出现了相应的 IETF 工作草案,不过那还只是草案。
而现实是:装置上真正开着 802 端口的设备极少。绝大多数化工现场的 Modbus 依然裸奔,防护完全依赖分区隔离。这个落差有多危险,2024 年给了一个具体答案。
FrostyGoop(2024 年,Dragos 披露) 第九个已知的 ICS 专用恶意软件,也是第一个直接通过 Modbus TCP 对 OT 造成实际影响的样本。 2024 年 1 月,乌克兰利沃夫一家区域供热企业遭攻击,零下天气里 600 余栋居民楼供热中断,恢复用了将近两天。 攻击者向控制器发送 Modbus 命令,导致测量值失真、系统失效。入侵路径是一台暴露在外网的路由器漏洞,加上网络未做分段。 它没有利用 Modbus 的任何漏洞——它只是使用了标准功能码读写保持寄存器。Dragos 当时提到,通过该协议可从互联网访问的工控设备超过四万六千台。 |
FrostyGoop 没有利用任何 Modbus 漏洞,
它只是正确地使用了这个协议——而“正确使用”恰恰是补丁修不了的东西。
▍变化二:Ethernet-APL 把 Modbus TCP 送进了防爆区
Ethernet-APL 是由 PI、ODVA、FieldComm Group 和 OPC 基金会联合推动的两线制以太网物理层,基于单对以太网,同一对屏蔽双绞线同时供电与通信,干线可达约一千米,速率 10 Mbit/s,并按 2-WISE 本安规则支持危险区域,拓扑沿用大家熟悉的干线—支线结构。
关键在于:APL 只是物理层,它上面跑什么由你决定——PROFINET、EtherNet/IP、HART-IP 都可以,Modbus TCP 同样可以。对化工最直接的场景是分析小屋:一台色谱仪用 Modbus/TCP 接分析仪管理与数据采集系统,过去要么走串口拉长线,要么单独敷光纤,现在可以和其他现场仪表共用同一套本安基础设施。
对仪表专业而言,这意味着现场层第一次同时具备了 IP 地址、本安认证和十兆带宽。但也要清醒地看到另一面:现场仪表进入了 IP 可达范围,上一节讲的那件事,攻击面跟着下沉了一层。
▍变化三:Modbus 从“通信通道”变成了“数据源”
第三个变化来自上层。越来越多的装置在 Modbus 链路之上加了一台边缘网关,把寄存器映射成 OPC UA 节点,或者打包成 MQTT Sparkplug B 消息,汇入厂级的统一命名空间。Modbus 在这个架构里不再是控制通道,而是最底层的数据源。
国内推动这件事的主要力量其实是合规而非技术偏好。“工业互联网+危化安全生产”的场景建设、双重预防机制数字化、重大危险源数据逐级汇聚,这些要求本质上都是“把装置里的数往外送”。而装置里最容易取到的数,往往就在那几条 Modbus 链路上。
由此产生的新风险是拓扑性的:为了满足上报要求,一条本来物理封闭的 Modbus 链路,被开出了一条通往外网的路径。做法上建议守住三条——单向传输、网关侧只放行读类功能码(03/04)、映射与限速都在网关完成,不让上层系统直接对话现场从站。

图 4 安全规范、一致性测试、物理层下沉——变化都发生在协议之外
05
给仪表专业的八条落地清单
设计与采购 1 寄存器表进技术协议附件:地址基准、字序、数据类型、量程、单位、更新周期,缺一不可。 2 链路容量按扫描周期倒推,不按“习惯上挂 32 台”。 3 把“支持 GB/T 41868”写成可验证条款,等一致性测试标准落地后作为验收依据。 4 SIS 数据只读出、不反写,写成设计原则而不是口头约定。 | 施工与运维 5 每台从站要有心跳寄存器,DCS 侧建通信质量点并进报警组。 6 网关默认只放行 03/04;502 与 802 端口不出装置区,跨区经单向隔离,按 IEC 62443 划区分域。 7 屏蔽单端接地、两端各一只终端电阻、确认失效偏置、菊花链不做星形、转换器用隔离型。 8 备件台账记录固件版本与通信参数;换表先改地址再上线。 |
06
值得投入的不是换协议
Modbus 不会被替代,因为替代它的成本永远高于忍受它的成本。一套装置里几十个供货商、上百台第三方设备,只要还有一家只提供 RS-485 口,这条链路就得留着。
所以真正值得投入的不是换协议,而是把它周围的三件事做扎实:约定要写进合同,分区要落到图纸,可观测要做进组态。这三件事做好了,Modbus 是一个够用的协议;做不好,它就是开头那个凌晨两点四十的电话。
· · ·
你们装置上,Modbus 出过最离谱的一次故障是什么?
地址冲突、字序错、掉线后画面保持,还是别的?欢迎在留言区写下来——现场故障最大的价值,在于它是别人还没踩过的坑。
▽ 参考资料(11 项)
[1] GB/T 19582.1~.3—2008《基于 Modbus 协议的工业自动化网络规范》第 1~3 部分,SAC/TC 124 归口。
[2] GB/T 41868—2022《Modbus TCP 安全协议规范》,2022-10-12 发布,2023-05-01 实施。
[3] 全国标准信息公共服务平台,国家标准计划 20253557-T-604《Modbus 测试规范 第 3 部分:TCP 安全协议一致性测试规范》。
[4] GB/T 25919.1/.2—2010《Modbus 测试规范》第 1、2 部分(串行链路一致性与互操作测试)。
[5] Modbus Organization, Modbus Application Protocol Specification V1.1b3, 2012-04-26.
[6] Modbus Organization, Modbus/TCP Security Protocol Specification, v3.6, 2021-07-30.
[7] IEC 61158-6-21, Industrial communication networks — Fieldbus specifications — Application layer protocol specification.
[8] Dragos, Impact of FrostyGoop ICS Malware on Connected OT Systems(情报简报,2024 年 7 月)。
[9] Ethernet-APL 相关:IEC TS 60079-47(2-WISE),PI / ODVA / FieldComm Group / OPC Foundation 联合技术资料。
[10] IETF Internet-Draft, Modbus Serial Link Communication Security Protocol Specification, 2025(工作草案,非最终标准)。
[11] 应急管理部《“工业互联网+危化安全生产”试点建设方案》(应急厅〔2021〕27 号)及各地年度危化监管工作要点。