独立的工厂设备数字化参考资料 · 免费查阅 术语词典OEE 计算器资料下载联系我们
首页/术语词典/Modbus

Modbus

工业领域最广泛使用的简单通讯协议,寄存器读写模型,无语义。

数据采集Modbus RTU / TCP

Modbus · Modbus RTU / TCP
工业领域最广泛使用的简单通讯协议,寄存器读写模型,无语义。

为什么它还在用

因为简单、免费、几乎所有 PLC 和仪表都支持。Modbus TCP 在以太网上跑,Modbus RTU 走 RS-485 串口,老设备上后者更常见。

代价

Modbus 只有寄存器地址,没有语义——40001 是什么,需要人去查设备手册并维护一张点表。设备一多,这张点表本身就成了维护负担。这也是同样设备接第二家系统时要重做一遍的原因。

Modbus 四类数据区和常用功能码

读设备数据基本只用到 01–04 四个读功能码。做只读采集时,应明确不使用 05、06、15、16 这些写功能码。

数据区传统地址前缀读功能码典型内容
线圈(可读写位)0xxxx01输出点、启停标志
离散输入(只读位)1xxxx02开关量输入、报警位
输入寄存器(只读 16 位)3xxxx04仪表测量值
保持寄存器(可读写 16 位)4xxxx03产量计数、设定值、状态字

Modbus TCP 默认端口 502。Modbus RTU 走 RS-485,一条总线上只能有一个主站,靠站号区分从站。

Modbus 点表怎么写:一个示例

下表为示例,地址是虚构的,实际以设备手册为准。

信号名地址类型采样周期用途
运行状态4000116 位整数,1 = 运行1 秒判定停机
累计产量40010–4001132 位无符号整数5 秒产量与节拍
报警代码4002016 位整数1 秒停机原因提示

点表除了地址,还必须写明数据类型、字节顺序、倍率和单位,否则换一个人接手就得重新试一遍。

Modbus 读不到数据或数值不对,先查这几处

  • 地址差 1:手册写 40001,协议里实际发送的是偏移 0。有的软件按 1 起始,有的按 0 起始,读出来的值“像是隔壁的”就是这个问题。
  • 32 位数值乱跳:两个寄存器的高低字顺序反了。浮点数和长整数都会遇到,四种字节序挨个试。
  • RTU 完全无响应:站号、波特率、数据位、校验位四项必须和设备一致;A/B 线接反也是常见原因。
  • RTU 时通时断:总线上已有一个主站(例如触摸屏)在轮询,第二个主站接上去会冲突。
  • TCP 连上但读不到:检查单元标识(Unit ID),经网关转 RTU 的设备尤其要核对。

涉及 RS-485 接线和进电气柜的操作,应断电并由持证电工完成,不改动安全回路。不同品牌 PLC 的接法见设备联网:这台设备到底怎么接,取舍见三种数据采集方式。

常见问题

Modbus RTU 和 Modbus TCP 有什么区别?
数据模型和功能码相同,区别在传输层。RTU 走 RS-485 串口,单主站轮询,靠站号寻址并带 CRC 校验;TCP 走以太网,默认端口 502,允许多个客户端同时连接。老设备和仪表多为 RTU,可通过网关转成 TCP 再接入。
Modbus 能不能采到停机原因?
只能采到设备自己知道的那部分。报警代码、急停、门开这类信号可以读出来,作为停机原因的提示;缺料、等检验、换型这类设备不知道的原因,仍然要由操作工在停机当下选择,Modbus 帮不上忙。
用 Modbus 读 PLC 会影响设备运行吗?
只用读功能码、轮询频率合理时,一般不影响控制逻辑。风险来自两处:一是误用写功能码改了设定值,二是轮询过密占满通讯资源。采集程序应限定为只读,周期从 1 秒起步,不要一上来就几十毫秒。

最近更新:2026-09-21 · 出版:工厂数字化编辑部(TEEPTRAK)

免费工具与资料预约免费设备诊断
✉在线咨询
咨询热线189 4831 0588姚庆发 YAO Qingfa
工作日 9:00–18:00
微信二维码 Teeptrak-SZ微信:Teeptrak-SZ扫码或搜索微信号
添加工程顾问
☎ 电话 ▤ 资料 预约免费诊断