5分钟看懂Modbus:工业设备的"通用普通话"
5分钟看懂Modbus:工业设备的"通用普通话"
2026年8月7日 09:14 福建
速览(30秒读完)
- Modbus是工业设备之间互相"说话"的一套通用语言
- 两个版本:RTU走串口(对讲机),TCP走网口(手机)
- 通信模式:主站问、从站答,最多247个从站
- 40多年仍在用的原因:免费、简单、兼容、可靠、易扩展
一、一句话讲清楚Modbus
Modbus是工业设备之间互相"说话"的一套通用语言。
就像中国人用普通话交流一样,不管你是西门子的PLC,还是汇川的变频器,或是某个国产传感器,只要大家都"说"Modbus,就能互相听懂、互相通信。
1979年,Modicon公司(现属施耐德电气)发明了这套"语言"。40多年过去了,它依然是工业自动化领域使用最广泛的通信协议之一。

二、串口版 vs 网口版
简单类比:
Modbus RTU = 对讲机(点对点,距离远,抗干扰强)
Modbus TCP = 手机(走网络,速度快,可以连互联网)

Q:我家工厂该选RTU还是TCP?
三、主站问,从站答
Modbus采用"一问一答"的通信模式:主站问"1号从站,你的温度是多少?",从站答"报告主站,当前温度25.6℃"。
关键规则:
一个网络里只有1个主站(通常是PLC或上位机)
最多可以有247个从站(各种传感器、仪表、执行器)
从站不能主动说话,只能等主站来问
主站可以"广播"(对地址0说话),所有从站都听但不回答

四、四种"数据类型":线圈、开关、数字、参数
四种数据类型口语化:
线圈——就是个开关,能读能写,比如控制继电器
离散输入——也是开关,但只能读,比如限位开关
输入寄存器——16位数字,只能读,存传感器测量值
保持寄存器——16位数字,能读能写,存设定参数
功能码口语化:
01——读开关:"继电器开了吗?"
03——读数字:"温度多少?"
06——写一个数:"把温度设为80℃"
16——写一批数:"批量设置参数"

一句话记住:想控制开关→用线圈;想看传感器读数→用输入寄存器;想设置参数→用保持寄存器。
五、常用功能码:记住这4个就够
功能码就是主站跟从站说话时用的"指令编号"。Modbus一共8个常用功能码,但日常90%的场景就这4个:一共有8个常用功能码,但日常工作中90%的场景只用这4个。
Q:功能码03和04都是"读寄存器",有什么区别?
A:功能码03读的是"保持寄存器"(可读可写,通常存设定值),功能码04读的是"输入寄存器"(只读,通常存传感器测量值)。比如:读温控器设定的目标温度用03,读温度传感器测到的实际温度用04。
六、为什么40多年了还在用?
五大优势
1.免费开放:没有专利费,任何厂商都能用,支持Modbus的设备超过600种
2.简单易懂:消息格式简单,入门门槛低
3.跨品牌兼容:西门子、三菱、汇川、台达……只要支持Modbus就能互联互通
4.抗干扰强:RS-485差分信号,适合工厂电磁干扰大的环境
5.易于扩展:一个网络最多挂247个设备,新增设备即插即用
三个局限
1.速度不够快:相比EtherNet/IP、Profinet等高速协议,Modbus串口速率偏慢
2.没有安全机制:协议本身不加密、不认证
3.不能主动上报:从站无法主动"喊"主站,只能等主站轮询
七、实际应用场景
工厂车间:PLC通过Modbus RTU读取变频器频率、温控器温度
能源管理:电表、水表、气表通过Modbus RTU上传数据到网关
楼宇自控:空调、照明、门禁系统通过Modbus TCP集中管理
环保监测:水质监测仪、烟气分析仪通过Modbus上传数据
设备上云:工业网关采集Modbus RTU设备数据,转换成MQTT上传到云平台 ← 这就是我们的核心场景

Q:Modbus都40多年了,会不会被淘汰?我们还要学吗?
A:短期内不会被淘汰。原因很简单:全球已有超过600种设备支持Modbus,存量市场巨大。工厂里的电表、水表、变频器、PLC,绝大多数都带Modbus接口。即使新协议(如OPC UA、MQTT)在增长,Modbus仍然是最基础的"底座协议"——网关采集Modbus数据,再转成MQTT上云,这是目前最主流的设备上云路径。学Modbus,是做工业物联网的基本功。
