Skip to content

南向配置 - Modbus RTU

返回目录 | 网关管理概览 | 南向配置 | 上一章:南向配置 | 下一章:项目管理

本章介绍如何通过 Modbus RTU(RS485 串口)配置南向采集。通用流程(新建、发布、下发)见 南向配置

1. 适用场景

  • 网关通过 RS485 总线连接仪表、传感器、PLC 等从站设备
  • 单条总线上挂多个从站(通过 从站地址 区分)
  • 需要按 寄存器地址 + 功能码 读取温度、湿度、开关量等数据

2. Modbus RTU 配置步骤

南向配置 新建配置后,按以下 Modbus 专用步骤完成:

1. 添加驱动 → 选择「Modbus RTU」→ 填写串口通信参数(须与现场仪表一致)
2. 在驱动下添加设备(从站地址、字节顺序)
3. 为每个设备添加属性(寄存器地址、功能码、数据类型、运算方式等)
4. 状态检测为「就绪」→ 发布 → 绑定网关并下发(见南向配置 §5)

可从 系统设置 → 产品型号 → 物模型 导出南向格式再导入,减少录入,说明见 南向配置 · 与物模型的关系

3. 配置 Modbus RTU 驱动

在配置详情页点击 「添加驱动」,在 Modbus 驱动 分类中选择 Modbus RTU

3.1 通信参数

参数说明常见取值
串口网关使用的物理串口COM1~COM5(与硬件接线一致)
波特率串口通信速率9600(最常见)、19200、115200
数据位每帧数据位数8(常用)、7
停止位停止位数1(常用)、2
校验位奇偶校验none(8N1 最常见)、even、odd
超时时间(ms)单次请求超时1000~3000
缓存字节数串口接收缓冲按驱动默认值或现场要求
请求间隔(ms)两次轮询间隔避免总线拥塞,可适当加大

现场核对要点:网关串口参数必须与 所有从站设备 的 Modbus 通信参数一致(尤其波特率、校验位)。不一致会导致完全无响应或 CRC 错误。

3.2 驱动配置示例

典型温湿度仪表场景常用 9600-8-N-1

  • 波特率:9600
  • 数据位:8
  • 停止位:1
  • 校验位:none

4. 添加 Modbus 设备(从站)

在已配置的 Modbus RTU 驱动下,点击 「添加设备」

字段说明
设备名称便于识别的名称
设备标识符配置内唯一编码(如 10001
从站地址Modbus 从站号,范围 1~247,须与仪表拨码/设置一致
字节顺序多字节数据解析顺序,见下表
设备描述可选备注

4.1 字节顺序说明

选项含义适用
ABCD大端序多数仪表默认
CDAB大端字节交换部分 PLC/仪表
BADC小端字节交换较少见
DCBA小端序较少见

若实时数值明显错误(如温度显示异常大),优先尝试更换字节顺序。

5. 配置属性(数据点/寄存器)

选中设备后,进入 属性管理,为每个采集点添加一条属性。

5.1 Modbus 专有字段

属性通用字段上报设置 外,Modbus 属性还需配置:

字段说明
寄存器地址Modbus 地址(如 40001 表示保持寄存器)

5.2 功能码

读取功能码(常用):

功能码含义
03读保持寄存器(最常用)
04读输入寄存器
01读线圈
02读离散输入

写入功能码(可写属性):

功能码含义
06写单个保持寄存器
16写多个保持寄存器
05写单个线圈
15写多个线圈

5.3 运算方式配置示例

运算方式语法与 Web/Excel 填写说明见 南向配置 · 数据转换表达式

Modbus 寄存器读数通常是整数,需经转换后才得到工程量(温度、压力、百分比等)。以下为 RTU 现场常见配置示例:

配置示例

示例 1:温度(寄存器值 = 实际温度 × 10)

  • 寄存器地址:40001,功能码 03,数据类型 floatint16
  • 数据转换表达式:MUL(0.1)
  • 单位:°C
  • 若寄存器读数为 235,平台上显示 23.5 °C

示例 2:湿度(线性公式 y = 0.1x − 5)

  • 数据转换表达式:LINEAR(0.1, -5)
  • 寄存器 150 → 上报 10

示例 3:运行状态(第 3 位为故障标志)

  • 数据类型:uint16int16
  • 数据转换表达式:BIT(3, 3)
  • 结果为 01,可作布尔量展示

示例 4:组合寄存器高字节为模式字

  • BIT_MUL(8, 15, 1) 解析高 8 位模式
  • 低 8 位可用另一条属性 BIT(0, 7) 单独采集

填写与排障注意

  1. 与字节顺序配合:转换表达式作用于「按字节顺序解析后的数值」;若原始值本身就不对,应先调整 字节顺序,再配置转换。
  2. 与数据类型配合float/int32 等占多个寄存器时,确保地址与类型匹配后再配置 LINEAR/MUL。
  3. Excel 批量导入:「数据转换表达式」列见 第 6 节 模板说明。

5.4 属性级从站地址(高级)

默认继承设备的从站地址。若同一逻辑设备需访问不同从站,可在属性 高级选项 中单独指定从站地址。

6. Excel 批量导入属性

操作步骤见 南向配置 · 批量导入。以下为 Modbus 模板主要列:

列名对应字段必填
属性代码code
属性名称name
数据类型dataType
寄存器地址address
是否可写writable
读功能码readFunc否(如 03)
写功能码writeFunc否(如 06、16)
从站地址slaveId否(默认继承设备)
数据转换表达式transform否,语法见 4.3 节
上传模式uploadMode否,见 4.5 节
上传间隔msuploadInterval

属性代码命名规则见 4.4 节

7. 常见问题与排障

Q: 配置已下发但网关下没有设备?

A: 先确认 发布与下发 是否完成(已发布、网关在线、下发成功),再检查 Modbus 现场项:

  1. 驱动串口参数是否与现场一致
  2. 从站地址是否正确,RS485 接线 A/B 是否反接
  3. 下发后需等待网关扫描/发现,设备较多时可能需要更长时间

Q: 设备在线但数据全为 0 或不变?

A: 检查:

  1. 寄存器地址是否正确(注意 40001 与 0 基址习惯)
  2. 读功能码是否匹配(保持寄存器用 03,输入寄存器用 04)
  3. 数据类型是否匹配(float 占 2 个寄存器等)

Q: 数值量级明显不对(如温度上千)?

A: 按顺序排查:

  1. 字节顺序(ABCD/CDAB 等)是否正确
  2. 数据转换表达式是否遗漏或写错(常见应配 MUL(0.1) 却留空),语法见 南向配置 4.3
  3. 数据类型是否与寄存器长度匹配(如 float 占 2 个寄存器)
  4. 暂时去掉运算方式,查看原始值 x,再反推 LINEAR(a,b)MUL(a) 参数;示例见 5.3 节

Q: 写控制失败?

A: 检查:

  1. 属性是否设置为可写
  2. 写功能码是否正确(06/16/05/15)
  3. 设备是否支持该寄存器写入
  4. 是否有设备控制权限

Q: 多条总线设备互相干扰?

A: 适当增大 请求间隔(ms),避免轮询过快;检查终端电阻与屏蔽接地。

发布、停用、修改已发布配置等通用问题见 南向配置 · 常见问题。更多跨模块问题见 常见问题索引 · 网关与南向接入 FAQ

8. Modbus TCP 简要说明

若设备通过以太网以 Modbus TCP 通信(非 RS485),流程与 RTU 类似,区别在驱动层:

  • 选择 Modbus TCP 驱动
  • 配置 网口超时请求间隔
  • 设备 层填写目标设备的 IP 地址端口(默认 502)
  • 属性层寄存器、功能码配置与 RTU 相同

发布与下发见 南向配置 §5


下一步:完成南向配置后,可通过 项目管理 将网关与设备纳入项目,或在 设备管理 中查看采集数据。

IoT 平台用户手册