什么是 Modbus?工业网关如何采集 PLC 和仪表数据
2026/5/1 7:54:06 网站建设 项目流程

什么是 Modbus?工业网关如何采集 PLC 和仪表数据

文章目录

  • 什么是 Modbus?工业网关如何采集 PLC 和仪表数据
  • 一、Modbus 是什么?
  • 二、为什么工业现场常用 Modbus?
    • 1. 协议简单
    • 2. 设备支持广泛
    • 3. 适合现场数据采集
    • 4. 成本较低
  • 三、Modbus 的基本通信模式
    • 1. 什么是主站 Master?
    • 2. 什么是从站 Slave?
    • 3. 主从通信流程
  • 四、Modbus RTU 和 Modbus TCP 有什么区别?
    • 1. Modbus RTU
    • 2. Modbus TCP
    • 3. Modbus RTU 和 Modbus TCP 对比
  • 五、RS-485 和 RS-232 是什么?
    • 1. RS-485
    • 2. RS-232
  • 六、Modbus 中的寄存器是什么?
  • 七、Modbus 常见数据区
    • 1. Coils 线圈
    • 2. Discrete Inputs 离散输入
    • 3. Input Registers 输入寄存器
    • 4. Holding Registers 保持寄存器
  • 八、Modbus 功能码是什么?
    • 1. 读取保持寄存器:功能码 03
    • 2. 读取输入寄存器:功能码 04
    • 3. 写单个寄存器:功能码 06
    • 4. 写多个寄存器:功能码 16
  • 九、寄存器地址为什么容易出错?
    • 1. 地址偏移问题
    • 2. 功能码和地址区不匹配
    • 3. 读取长度不正确
  • 十、数据类型和字节序
    • 1. 常见数据类型
    • 2. 字节序问题
    • 3. 比例系数
  • 十一、工业网关如何采集 PLC 和仪表数据?
    • 1. 第一步:确认设备支持的 Modbus 类型
    • 2. 第二步:连接线路
      • Modbus RTU 接线
      • Modbus TCP 接线
    • 3. 第三步:配置通信参数
    • 4. 第四步:配置寄存器地址
    • 5. 第五步:测试读取数据
    • 6. 第六步:上传到云平台
  • 十二、一个完整的工业网关采集示例
    • 1. 现场设备信息
    • 2. 寄存器表
    • 3. 工业网关采集配置
    • 4. 采集结果
    • 5. 上传到云平台
  • 十三、Modbus 常见故障排查
    • 1. 完全通信不上
    • 2. 只能读到部分数据
    • 3. 读到的数据明显不对
    • 4. 通信不稳定
    • 5. 多设备通信时部分设备失败
  • 十四、Modbus 的安全问题
  • 十五、Modbus、MQTT、工业网关之间的关系
  • 十六、工业物联网中的典型应用场景
    • 1. 能耗监测
    • 2. 环境监测
    • 3. 水处理系统
    • 4. 工厂设备监控
    • 5. 光伏和储能系统
  • 十七、学习 Modbus 的建议
  • 十八、总结
  • 下一篇预告

在前几篇文章中,我们已经介绍了物联网的基本概念、物联网系统的工作原理,以及 MQTT、HTTP、Modbus 等常见通信协议。

其中,MQTT更常用于设备连接云平台,适合数据上云、远程监控和消息传输;而Modbus则更多出现在工业现场,用于 PLC、仪表、电表、传感器、RTU 等设备之间的数据采集和控制。

在工业物联网系统中,经常会看到这样的架构:

PLC / 仪表 / 电表 → Modbus → 工业网关 → MQTT / HTTP → 云平台

那么问题来了:

Modbus 到底是什么?
为什么工业现场经常使用 Modbus?
工业网关又是如何通过 Modbus 采集 PLC 和仪表数据的?

本文将从入门角度介绍 Modbus 的基本概念、通信方式、常见类型、寄存器、功能码,以及工业网关采集数据的基本流程。


一、Modbus 是什么?

Modbus 是一种经典的工业通信协议,最早应用于工业自动化控制领域。

简单来说,Modbus 的作用是:

让工业设备之间按照统一规则进行数据读取和控制。

在工业现场,很多设备都支持 Modbus,例如:

  • PLC;
  • RTU;
  • 智能电表;
  • 水表;
  • 温控器;
  • 变频器;
  • 传感器;
  • 压力表;
  • 流量计;
  • 环境监测设备;
  • 工业控制器。

这些设备可能来自不同厂商,但只要它们支持 Modbus,就可以按照 Modbus 协议进行通信。

例如,工业网关可以通过 Modbus 读取电表中的电压、电流、功率等数据:

工业网关 → 读取电表寄存器 电表 → 返回电压、电流、功率数据

也可以读取 PLC 中的运行状态:

工业网关 → 读取 PLC 数据区 PLC → 返回设备运行状态

二、为什么工业现场常用 Modbus?

Modbus 在工业现场应用非常广泛,主要原因有以下几点。

1. 协议简单

Modbus 协议结构相对简单,容易实现,也容易调试。

对于很多工业设备来说,只需要配置:

  • 从站地址;
  • 通信方式;
  • 波特率;
  • 数据位;
  • 校验位;
  • 停止位;
  • 寄存器地址;
  • 数据类型。

就可以完成基本通信。


2. 设备支持广泛

很多工业设备默认支持 Modbus。

例如:

  • 电表通常支持 Modbus RTU;
  • PLC 通常支持 Modbus TCP 或 Modbus RTU;
  • 变频器常见支持 Modbus RTU;
  • 温湿度传感器常见支持 Modbus RTU;
  • 水处理仪表、压力表、流量计也经常支持 Modbus。

因此,在工业项目中,Modbus 是非常常见的设备接入方式。


3. 适合现场数据采集

工业现场的数据通常是一些结构化的数据,例如:

  • 电压;
  • 电流;
  • 功率;
  • 温度;
  • 湿度;
  • 压力;
  • 液位;
  • 开关状态;
  • 报警状态;
  • 设备运行状态。

这些数据通常可以通过寄存器地址读取,非常适合使用 Modbus 协议。


4. 成本较低

Modbus RTU 通常基于 RS-485 串口通信,一条总线上可以连接多个设备,布线成本较低。

例如:

工业网关 RS-485 口 ↓ 电表 1 ↓ 电表 2 ↓ 电表 3 ↓ 温湿度传感器

只要地址不冲突,多个设备可以挂在同一条 RS-485 总线上。


三、Modbus 的基本通信模式

Modbus 采用主从模式,也可以称为Master / Slave 模式

在较新的描述中,也有说法叫:

  • Client / Server;
  • 主站 / 从站。

为了便于初学者理解,本文主要使用主站 Master从站 Slave的说法。


1. 什么是主站 Master?

主站是主动发起请求的一方。

在工业物联网系统中,主站通常是:

  • 工业网关;
  • PLC;
  • SCADA 系统;
  • 上位机软件;
  • 数据采集器。

主站负责主动发送请求,例如:

请告诉我寄存器 40001 的值是多少?

2. 什么是从站 Slave?

从站是被动响应请求的一方。

在工业现场中,从站通常是:

  • 电表;
  • 水表;
  • 传感器;
  • 变频器;
  • PLC;
  • 仪表;
  • RTU。

从站不会主动发送数据给主站,而是等待主站来读取或写入。

例如:

主站:请返回寄存器 40001 的值 从站:寄存器 40001 的值是 230.5

3. 主从通信流程

Modbus 的基本通信流程如下:

1. 主站发送请求 2. 从站接收请求 3. 从站处理请求 4. 从站返回响应 5. 主站解析数据

可以简单表示为:

Modbus Master → 请求读取数据 → Modbus Slave Modbus Master ← 返回数据 ← Modbus Slave

例如,工业网关读取电表数据:

工业网关 → 读取电表电压寄存器 电表 → 返回电压数值

四、Modbus RTU 和 Modbus TCP 有什么区别?

Modbus 常见类型主要有两种:

  • Modbus RTU;
  • Modbus TCP。

它们的核心协议思想类似,但通信介质和应用场景不同。


1. Modbus RTU

Modbus RTU 通常运行在串口通信上,常见接口是:

  • RS-485;
  • RS-232。

其中,RS-485 在工业现场更常见。

典型结构如下:

工业网关 RS-485 接口 → Modbus RTU → 电表 / 仪表 / 传感器

Modbus RTU 常见于:

  • 电表;
  • 水表;
  • 温湿度传感器;
  • 变频器;
  • 压力表;
  • 流量计;
  • 环境监测仪;
  • 工业仪表。

2. Modbus TCP

Modbus TCP 运行在以太网网络中,基于 TCP/IP 通信。

典型结构如下:

工业网关 Ethernet 接口 → Modbus TCP → PLC / 控制器 / 服务器

Modbus TCP 常见于:

  • PLC;
  • 工业控制器;
  • SCADA 系统;
  • 上位机;
  • 支持以太网通信的仪表;
  • 工业交换机网络中的设备。

Modbus TCP 通常使用端口:

502

3. Modbus RTU 和 Modbus TCP 对比

对比项Modbus RTUModbus TCP
通信接口RS-485 / RS-232Ethernet 以太网
传输方式串口通信TCP/IP 通信
常见设备电表、仪表、传感器、变频器PLC、控制器、SCADA、上位机
地址方式从站地址 Slave IDIP 地址 + 端口
常见端口无固定网络端口TCP 502
布线方式总线式以太网星型或网络结构
传输距离RS-485 可较远距离取决于以太网网络
调试工具串口工具、Modbus Poll 等Modbus TCP 工具、Wireshark 等

简单理解:

Modbus RTU 更偏串口现场设备;
Modbus TCP 更偏以太网工业网络。


五、RS-485 和 RS-232 是什么?

在讲 Modbus RTU 时,经常会看到 RS-485 和 RS-232。

需要注意:

RS-485、RS-232 是物理通信接口标准;
Modbus RTU 是运行在这些接口上的通信协议。

可以简单理解为:

RS-485 / RS-232:负责“电气连接和信号传输” Modbus RTU:负责“数据格式和通信规则”

1. RS-485

RS-485 是工业现场非常常见的串口通信方式。

特点包括:

  • 抗干扰能力较强;
  • 适合较长距离传输;
  • 支持多设备总线连接;
  • 常用于工业仪表、电表、传感器等设备。

RS-485 常见接线方式是:

A 接 A B 接 B GND 可根据实际情况连接

有些设备会标为:

D+ / D- 485+ / 485- A / B

不同厂商标识可能不完全一致,接线时需要查看设备说明书。


2. RS-232

RS-232 也是一种串口通信方式。

相比 RS-485,RS-232 通常更适合点对点通信,通信距离较短。

常见于:

  • 老式设备;
  • 调试口;
  • 单设备连接;
  • 某些仪表或控制器。

六、Modbus 中的寄存器是什么?

理解 Modbus,必须理解寄存器 Register

在 Modbus 中,设备中的数据通常存储在不同的寄存器中。

例如,一个电表可能把数据存放在如下寄存器中:

数据寄存器地址
电压40001
电流40003
有功功率40005
频率40007
电能40009

工业网关想读取电压,就需要知道电压对应的寄存器地址。

例如:

读取寄存器 40001 → 得到电压数据

七、Modbus 常见数据区

Modbus 中常见的数据区包括四类:

数据区英文名称访问方式常见用途
线圈Coils读/写开关量输出
离散输入Discrete Inputs只读开关量输入
输入寄存器Input Registers只读模拟量输入
保持寄存器Holding Registers读/写参数、测量值、控制值

1. Coils 线圈

Coils 通常用于表示可读写的开关量。

例如:

  • 继电器开关;
  • 电机启停;
  • 输出点状态;
  • 阀门开关。

数据通常是布尔值:

0:关闭 1:打开

2. Discrete Inputs 离散输入

Discrete Inputs 通常用于只读的开关量输入。

例如:

  • 按钮状态;
  • 限位开关;
  • 门磁状态;
  • 告警输入状态。

它通常只能读取,不能写入。


3. Input Registers 输入寄存器

Input Registers 通常用于只读模拟量数据。

例如:

  • 温度;
  • 湿度;
  • 压力;
  • 液位;
  • 电压;
  • 电流。

主站只能读取这些数据,不能写入。


4. Holding Registers 保持寄存器

Holding Registers 是最常见的数据区之一,支持读取和写入。

常用于:

  • 设备参数;
  • 采集值;
  • 控制参数;
  • 运行状态;
  • 配置项。

例如:

读取保持寄存器 → 获取电压 写入保持寄存器 → 修改设备参数

在很多设备说明书中,常见的 4xxxx 地址通常就是保持寄存器。


八、Modbus 功能码是什么?

功能码 Function Code 用来表示主站想执行什么操作。

常见功能码如下:

功能码功能说明
01Read Coils读取线圈
02Read Discrete Inputs读取离散输入
03Read Holding Registers读取保持寄存器
04Read Input Registers读取输入寄存器
05Write Single Coil写单个线圈
06Write Single Register写单个保持寄存器
15Write Multiple Coils写多个线圈
16Write Multiple Registers写多个保持寄存器

在实际项目中,比较常用的是:

03:读取保持寄存器 04:读取输入寄存器 06:写单个寄存器 16:写多个寄存器

1. 读取保持寄存器:功能码 03

例如,工业网关读取电表的电压、电流数据。

功能码:03 含义:读取 Holding Registers

典型流程:

主站请求:读取从站 1 的保持寄存器 40001,读取 2 个寄存器 从站响应:返回寄存器数据

2. 读取输入寄存器:功能码 04

例如,读取传感器的温度、湿度数据。

功能码:04 含义:读取 Input Registers

3. 写单个寄存器:功能码 06

例如,向设备写入一个参数。

功能码:06 含义:写单个 Holding Register

4. 写多个寄存器:功能码 16

例如,一次性写入多个配置参数。

功能码:16 含义:写多个 Holding Registers

九、寄存器地址为什么容易出错?

在 Modbus 调试中,寄存器地址是最容易出错的地方之一。

常见问题包括:

  • 设备说明书地址从 1 开始;
  • 软件配置地址从 0 开始;
  • 40001 是否需要减去 40001;
  • 功能码选择错误;
  • 数据类型选择错误;
  • 字节序选择错误;
  • 读取长度不正确。

1. 地址偏移问题

例如,设备说明书中写:

电压地址:40001

但在某些软件或网关中,可能需要填写:

0

或者:

1

这是因为不同软件对地址的表示方式不同。

有的软件使用逻辑地址,例如 40001;
有的软件使用实际偏移地址,例如 0。

所以调试时需要注意说明书和配置界面的地址规则。


2. 功能码和地址区不匹配

例如,某个数据在保持寄存器 Holding Registers 中,需要使用功能码 03 读取。

如果误用了功能码 04,就可能读取失败。

例如:

正确:功能码 03 + Holding Register 错误:功能码 04 + Holding Register

3. 读取长度不正确

一个 16 位整数通常占用 1 个寄存器。

但如果数据是 32 位整数或浮点数,通常需要 2 个寄存器。

例如:

数据类型占用寄存器数量
16-bit Integer1 个寄存器
32-bit Integer2 个寄存器
Float2 个寄存器
Double4 个寄存器

如果读取长度不对,解析出来的数据就可能错误。


十、数据类型和字节序

Modbus 寄存器本身通常是 16 位数据。

但实际设备数据可能是:

  • 16 位整数;
  • 32 位整数;
  • 32 位浮点数;
  • 有符号整数;
  • 无符号整数;
  • 高低字节交换;
  • 高低字交换。

因此,仅知道寄存器地址还不够,还需要知道数据类型和字节序。


1. 常见数据类型

数据类型说明
UInt1616 位无符号整数
Int1616 位有符号整数
UInt3232 位无符号整数
Int3232 位有符号整数
Float32 位浮点数
Double64 位浮点数
Boolean布尔值

例如,温度可能是:

寄存器原始值:285 比例系数:0.1 实际温度:28.5℃

2. 字节序问题

字节序也叫 Endianness。

对于 32 位数据,因为需要两个寄存器,所以不同设备可能采用不同顺序。

常见顺序包括:

ABCD BADC CDAB DCBA

如果字节序设置错误,可能会出现非常离谱的数据。

例如,实际温度是:

28.5

但解析后可能变成:

1.23E-38

或者:

999999

这通常就需要检查字节序和数据类型。


3. 比例系数

很多工业设备说明书中会写比例系数。

例如:

寄存器值:2305 比例系数:0.1 实际电压:230.5 V

或者:

寄存器值:285 比例系数:0.1 实际温度:28.5 ℃

因此,采集数据后通常还需要进行换算。


十一、工业网关如何采集 PLC 和仪表数据?

工业网关在工业物联网系统中非常重要。

它通常位于现场设备和云平台之间,负责:

  • 连接 PLC、仪表、电表、传感器;
  • 通过 Modbus 采集现场数据;
  • 对数据进行解析和转换;
  • 将数据上传到云平台;
  • 接收云平台命令;
  • 下发控制指令到现场设备。

整体架构如下:

PLC / 仪表 / 电表 / 传感器 ↓ Modbus RTU / Modbus TCP ↓ 工业网关 ↓ MQTT / HTTP / HTTPS ↓ 云平台 ↓ Web 后台 / 手机 App / 数据大屏

1. 第一步:确认设备支持的 Modbus 类型

首先需要确认现场设备支持哪种 Modbus。

例如:

设备可能支持的协议
电表Modbus RTU
温湿度传感器Modbus RTU
PLCModbus TCP / Modbus RTU
变频器Modbus RTU
RTUModbus RTU / TCP
智能仪表Modbus RTU / TCP

如果设备是 RS-485 接口,通常是 Modbus RTU。
如果设备是网口,可能是 Modbus TCP。


2. 第二步:连接线路

Modbus RTU 接线

如果使用 RS-485,需要连接:

网关 A → 设备 A 网关 B → 设备 B

有些设备可能标为:

485+ / 485- D+ / D- A / B

如果通信不上,可以尝试检查:

  • A/B 是否接反;
  • 是否需要接 GND;
  • 线缆是否过长;
  • 是否需要终端电阻;
  • 多设备地址是否冲突。

Modbus TCP 接线

如果使用 Modbus TCP,需要保证网关和 PLC 或设备在网络上能够互通。

需要确认:

  • IP 地址是否正确;
  • 子网掩码是否正确;
  • 网关地址是否正确;
  • 网络是否能 ping 通;
  • TCP 502 端口是否开放;
  • 防火墙是否阻断。

3. 第三步:配置通信参数

对于 Modbus RTU,需要配置串口参数。

常见参数包括:

参数示例
波特率9600 / 19200 / 115200
数据位8
校验位None / Even / Odd
停止位1
从站地址1
超时时间1000 ms
轮询间隔1000 ms

例如:

Baud Rate: 9600 Data Bits: 8 Parity: None Stop Bits: 1 Slave ID: 1

对于 Modbus TCP,需要配置:

参数示例
IP 地址192.168.1.100
端口502
Unit ID1
超时时间1000 ms
轮询间隔1000 ms

4. 第四步:配置寄存器地址

根据设备说明书配置寄存器地址。

例如,一个电表说明书中可能写:

数据点功能码寄存器地址数据类型比例系数
电压0340001UInt160.1
电流0340002UInt160.01
有功功率0340003Int320.1
频率0340005UInt160.01

在工业网关中,可以配置成数据点:

点位名称:Voltage 功能码:03 寄存器地址:40001 数据类型:UInt16 比例系数:0.1 单位:V

5. 第五步:测试读取数据

配置完成后,需要测试是否能读取到数据。

如果读取成功,可能看到类似数据:

{"Voltage":230.5,"Current":12.36,"Power":2850.4,"Frequency":50.01}

如果读取失败,需要检查:

  • 接线是否正确;
  • 串口参数是否一致;
  • 从站地址是否正确;
  • 功能码是否正确;
  • 寄存器地址是否正确;
  • 设备是否正常供电;
  • 是否有多个主站同时访问;
  • RS-485 总线是否存在干扰。

6. 第六步:上传到云平台

工业网关采集到数据后,可以通过 MQTT 或 HTTP 上传到云平台。

例如,使用 MQTT 上传:

Topic: factory/gateway001/data

Payload 示例:

{"gateway_id":"gateway001","timestamp":1714300000,"data":{"Voltage":230.5,"Current":12.36,"Power":2850.4,"Frequency":50.01}}

云平台收到后,可以进行:

  • 数据存储;
  • 实时曲线展示;
  • 报表统计;
  • 阈值告警;
  • 设备状态监控;
  • 远程运维管理。

十二、一个完整的工业网关采集示例

假设现场有一台智能电表,支持 Modbus RTU。

目标是通过工业网关采集电表数据,并上传到云平台。


1. 现场设备信息

项目内容
设备类型智能电表
通信协议Modbus RTU
接口RS-485
从站地址1
波特率9600
数据位8
校验位None
停止位1

2. 寄存器表

数据点功能码地址数据类型比例系数单位
电压0340001UInt160.1V
电流0340002UInt160.01A
功率0340003Int320.1W
频率0340005UInt160.01Hz

3. 工业网关采集配置

可以将网关配置成以下点位:

Device Name: Meter001 Protocol: Modbus RTU Slave ID: 1 Baud Rate: 9600 Data Bits: 8 Parity: None Stop Bits: 1

数据点配置:

Voltage: Function Code: 03 Address: 40001 Data Type: UInt16 Scale: 0.1 Current: Function Code: 03 Address: 40002 Data Type: UInt16 Scale: 0.01 Power: Function Code: 03 Address: 40003 Data Type: Int32 Scale: 0.1 Frequency: Function Code: 03 Address: 40005 Data Type: UInt16 Scale: 0.01

4. 采集结果

网关采集后,可以得到如下数据:

{"Meter001.Voltage":230.5,"Meter001.Current":12.36,"Meter001.Power":2850.4,"Meter001.Frequency":50.01}

5. 上传到云平台

网关可以通过 MQTT 上传:

Topic: factory/site001/meter001/data

Payload:

{"device":"Meter001","timestamp":1714300000,"values":{"Voltage":230.5,"Current":12.36,"Power":2850.4,"Frequency":50.01}}

最终用户可以在云平台看到:

  • 实时电压;
  • 实时电流;
  • 实时功率;
  • 历史趋势曲线;
  • 异常告警;
  • 能耗报表。

十三、Modbus 常见故障排查

在实际项目中,Modbus 通信经常会遇到一些问题。

下面列出常见问题和排查方向。


1. 完全通信不上

可能原因:

  • A/B 线接反;
  • 串口参数不一致;
  • 从站地址错误;
  • 设备未上电;
  • RS-485 接线松动;
  • 网关串口选择错误;
  • 多个设备地址冲突;
  • Modbus TCP 的 IP 或端口错误。

排查建议:

1. 确认设备供电正常 2. 确认接线正确 3. 确认串口参数一致 4. 确认 Slave ID 正确 5. 使用调试工具单独测试 6. 查看网关日志

2. 只能读到部分数据

可能原因:

  • 某些寄存器地址错误;
  • 功能码不匹配;
  • 读取长度超出范围;
  • 设备不支持连续读取;
  • 某些寄存器需要特殊权限;
  • 数据类型配置错误。

排查建议:

分段读取寄存器,先读取单个点位,再逐步增加点位数量。

3. 读到的数据明显不对

例如:

实际温度:28.5℃ 读取结果:285

这种情况可能是比例系数未配置。

再例如:

实际功率:1200 W 读取结果:1.34E-38

这种情况可能是数据类型或字节序错误。

排查方向:

  • 检查数据类型;
  • 检查比例系数;
  • 检查字节序;
  • 检查寄存器地址是否偏移;
  • 检查是否需要读取两个寄存器。

4. 通信不稳定

可能原因:

  • RS-485 线缆质量差;
  • 现场电磁干扰强;
  • 总线过长;
  • 设备太多;
  • 轮询间隔太短;
  • 超时时间设置不合理;
  • 缺少终端电阻;
  • 接地不合理。

排查建议:

  • 降低波特率;
  • 增加轮询间隔;
  • 检查屏蔽线和接地;
  • 减少单条总线设备数量;
  • 必要时增加 RS-485 中继器;
  • 检查终端电阻是否合理。

5. 多设备通信时部分设备失败

可能原因:

  • 从站地址重复;
  • 某些设备串口参数不同;
  • 总线负载过高;
  • 设备响应速度不同;
  • 轮询超时时间太短。

排查建议:

先单独连接每个设备测试,再逐个加入总线。

十四、Modbus 的安全问题

传统 Modbus 协议本身并不具备完善的安全机制。

例如:

  • 没有加密;
  • 没有身份认证;
  • 没有权限控制;
  • 容易被抓包分析;
  • 不适合直接暴露在公网。

因此,在实际项目中,不建议将 Modbus TCP 设备直接暴露到互联网。

更推荐的方式是:

现场设备 → Modbus → 工业网关 → VPN / TLS / MQTT over TLS → 云平台

安全建议包括:

  • 不要将 Modbus TCP 502 端口直接暴露公网;
  • 使用 VPN 或专线访问现场设备;
  • 使用工业防火墙限制访问来源;
  • 使用网关进行协议转换;
  • 上云通信使用 TLS/SSL;
  • 做好账号、权限和访问控制;
  • 保留通信日志和操作日志。

十五、Modbus、MQTT、工业网关之间的关系

很多初学者容易混淆 Modbus 和 MQTT。

其实它们通常解决不同层面的问题。

协议 / 设备主要作用
Modbus现场设备数据采集
MQTT数据上云和消息通信
工业网关协议转换、数据采集、边缘处理、联网传输

典型架构如下:

现场设备层: PLC / 仪表 / 电表 / 传感器 通信采集层: Modbus RTU / Modbus TCP 边缘网关层: 工业网关采集、解析、转换、缓存 云端通信层: MQTT / HTTP / HTTPS 应用平台层: 云平台、Web 后台、手机 App、数据大屏

可以用一句话理解:

Modbus 负责把现场设备数据读出来,MQTT 负责把数据上传到云平台,工业网关负责把两者连接起来。


十六、工业物联网中的典型应用场景

Modbus + 工业网关在很多工业物联网场景中都很常见。


1. 能耗监测

工业网关通过 Modbus 采集电表数据:

  • 电压;
  • 电流;
  • 功率;
  • 功率因数;
  • 用电量。

然后上传到云平台,用于能耗分析和报表统计。

电表 → Modbus RTU → 工业网关 → MQTT → 能耗平台

2. 环境监测

采集温湿度、压力、液位、气体浓度等数据。

温湿度传感器 / 压力传感器 → Modbus RTU → 工业网关 → 云平台

3. 水处理系统

采集水泵、流量计、液位计、PH 计、阀门状态等数据。

水处理仪表 → Modbus → 工业网关 → 远程监控平台

4. 工厂设备监控

采集 PLC、变频器、生产线设备数据。

PLC / 变频器 → Modbus TCP / RTU → 工业网关 → 工业互联网平台

5. 光伏和储能系统

采集逆变器、电表、储能设备、环境监测仪数据。

逆变器 / 电表 / 储能设备 → Modbus → 网关 → 能源管理平台

十七、学习 Modbus 的建议

对于初学者来说,学习 Modbus 可以按照以下顺序:

1. 理解主站和从站 2. 理解 Modbus RTU 和 Modbus TCP 3. 理解 RS-485 接线 4. 理解寄存器和功能码 5. 学会看设备寄存器表 6. 学会配置采集点位 7. 学会处理数据类型、比例系数和字节序 8. 学会使用调试工具测试 9. 学会排查通信问题 10. 学会通过网关上传云平台

常用调试工具包括:

  • Modbus Poll;
  • Modbus Slave;
  • QModMaster;
  • ModScan;
  • 串口调试助手;
  • Wireshark;
  • 工业网关自带诊断工具。

十八、总结

Modbus 是工业现场非常常见的通信协议,广泛应用于 PLC、仪表、电表、传感器、变频器、RTU 等设备的数据采集和控制。

本文介绍了 Modbus 的核心概念:

  • Modbus 是什么:一种工业通信协议;
  • 主站 Master:主动发起请求的一方;
  • 从站 Slave:被动响应请求的一方;
  • Modbus RTU:基于 RS-485 / RS-232 的串口通信;
  • Modbus TCP:基于以太网和 TCP/IP 的通信方式;
  • 寄存器:设备数据存放的位置;
  • 功能码:表示读取或写入操作;
  • 数据类型、比例系数、字节序:决定数据能否正确解析。

在工业物联网系统中,Modbus 通常用于现场设备采集,而工业网关负责将这些数据转换并上传到云平台。

典型结构如下:

PLC / 仪表 / 电表 / 传感器 ↓ Modbus RTU / Modbus TCP ↓ 工业网关 ↓ MQTT / HTTP / HTTPS ↓ 云平台 ↓ Web 后台 / 手机 App / 数据大屏

可以简单记住:

Modbus 解决“现场设备如何通信和采集数据”的问题;
工业网关解决“如何把现场数据转换并上传云平台”的问题;
MQTT / HTTP 解决“如何把数据传输到云端应用”的问题。

掌握 Modbus 后,就能更好地理解工业物联网项目中设备接入、数据采集、网关配置和云平台监控的完整流程。


下一篇预告

在下一篇文章中,我们可以继续介绍:

《什么是工业网关?它在物联网系统中到底有什么作用》

下一篇将重点讲解:

  • 工业网关是什么;
  • 工业网关和普通路由器有什么区别;
  • 工业网关如何连接 PLC、传感器和云平台;
  • 协议转换、边缘计算、远程运维是什么意思;
  • 为什么工业物联网系统离不开工业网关。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询