版本: v1.0 修改日期: 2026-05-29
Modbus 对接操作手册
文档定位:本手册面向项目经理,只讲”该做什么、向厂家要什么、怎么判断资料齐了”。技术细节由技术团队负责。
完成后你将能够:向 Modbus 设备厂家收齐全部对接资料,通过提资入口提交,技术团队即可开始配置。
阅读路径:确认适用场景(第 1 节)→ 收资料(第 3 节)→ 自查提交(第 6 节)。
1 确认是否走本手册
1.1 适用场景
满足以下任一条件,走本手册:
- 现场设备是电表、水表、热表、燃气表等智能仪表
- 现场设备是温控器、变频器、变送器、智能传感器
- 现场设备是三菱、欧姆龙、施耐德、和利时、汇川、台达等品牌的 PLC
- 厂家答复”我们的设备支持 Modbus TCP”或”支持 Modbus RTU”
1.2 不走本手册的情况
| 现场情况 | 应走方式 |
|---|---|
| 设备是西门子 PLC | S7 对接(首选) |
| 厂家提供接口地址或接口文档 | HTTP 对接 |
厂家提供 opc.tcp:// 开头的地址 | OPC UA 对接 |
2 术语速览
| 术语 | 通俗解释 | 类比 |
|---|---|---|
| Modbus | 一种工业设备之间通用的”对话规则” | 工业界的”普通话” |
| Modbus TCP | 通过网线传输的 Modbus | 通过互联网打电话 |
| Modbus RTU | 通过串口线(RS-485 等)传输的 Modbus | 通过对讲机喊话 |
| 从站(Slave) | 提供数据的设备(如电表本体) | 被”问”的一方 |
| 主站(Master) | 主动来取数据的一方(我方平台) | 主动”问”的一方 |
| 从站地址(Slave ID) | 同一条线路上每台设备的”门牌号”,必须唯一 | 同一栋楼里的房间号 |
| 寄存器(Register) | 设备内部存放数据的”格子”,每个格子一个地址 | 储物柜的格子 |
| 功能码 | 告诉设备”我要读什么 / 写什么”的命令编号 | 服务窗口的业务编号 |
| 字节序 | 数值在存储时字节的排列顺序 | 数字”1234”是从左读还是从右读 |
| 串口服务器 | 将 RS-485 串口信号转换为网络信号的硬件设备 | RS-485 转网线的”翻译机” |
💡 TCP 和 RTU 怎么区分?viSCADA 如何接入?
viSCADA 平台统一通过网络(TCP)连接设备,无论现场设备本身走 TCP 还是 RTU。
- 设备插的是网线(水晶头)→ Modbus TCP,直接将设备 IP 与端口填入平台。
- 设备接的是两根细线(RS-485,常标 A/B)→ Modbus RTU,必须先在现场安装串口服务器(RS-485 转 TCP 的转换设备),由串口服务器负责信号转换后再接入平台。
RTU 场景 viSCADA 只需:串口服务器的 IP 与端口。 串口服务器的安装与串口参数配置(波特率、数据位、停止位、校验方式等)由现场工程师负责,与 viSCADA 配置无关。
💡 从站地址常识
- 取值范围:1 ~ 247
- 同一条线路上每台设备的从站地址必须不同
- 如果 5 台电表全设成 ID=1,数据会”打架”,全部读不准
💡 点位读写模式
点表中每个点位必须明确标注读写模式:
模式 含义 典型用途 只读 只能从设备读取数据,不能写入 温度、压力、电量等传感器采集值 读写 既能读取数据,也能向设备写入控制指令 设定值、启停控制、阀门开度调节 ⚠️ 读写点必须额外提供功能码(告诉平台用哪个指令写入)。收到点表后须确认:每个标注为”读写”的点都已填写功能码,否则控制指令无法下发。
💡 字节序常识 一个 4 字节的浮点数(如
25.6℃),不同设备厂商可能按不同顺序存放:
ABCD(大端,默认最常见)CDAB(字交换)BADC(字节交换)DCBA(全反)如果读出来的温度是
1093.5℃或0.0001℃这种明显不对的数,90% 是字节序错了。
💡 常用数据类型速查
类型 含义 占寄存器数 典型用途 BOOL布尔值,只有 0 或 1 — 开关状态、设备运行 / 停止、阀门开 / 关 INT1616 位有符号整数,-32768 ~ 32767 1 个 温度(放大 10 倍存储)、转速、压力 UINT1616 位无符号整数,0 ~ 65535 1 个 状态码、报警码、计数值 INT3232 位有符号整数 2 个 较大范围的整数值 UINT3232 位无符号整数,0 ~ 4294967295 2 个 电表累计电量、脉冲计数 FLOAT3232 位浮点数(带小数) 2 个 温度、压力、流量等模拟量(最常见) FLOAT6464 位浮点数(高精度) 4 个 较少见,以厂家文档为准 ⚠️ 占多个寄存器的类型,厂家必须在点表中标注清楚:
INT32/UINT32/FLOAT32占 2 个寄存器,FLOAT64占 4 个,填错会导致数值明显异常。⚠️ 部分电表使用 BCD 码(Binary Coded Decimal,一种特殊的数字编码方式)存储数据。若读出的数值明显不合理,可向厂家确认是否使用 BCD 编码,技术团队将做对应处理。
📌 不确定类型怎么办? 要求厂家在寄存器表中逐点标注数据类型,不接受只写”浮点数”或”整数”,须写明具体类型(如
FLOAT32)。填写有误将导致读取数值异常。
3 资料清单(可直接发给厂家)
先把下方模板发给厂家,要求按模板逐项填写,再对照本清单核查到位情况。
📎 提资模板:【附件】modbus-device-register-mapping.xlsx
📌 提交命名:项目名-Modbus-采集表
以下资料均为必填,缺一不可:
- 设备名称
- 设备 IP 地址与端口(默认端口 502)——Modbus TCP 必填
- 串口服务器 IP 地址与端口——Modbus RTU 必填
- 从站地址(Slave ID,取值 1~247)
- 数据点位地址清单(含寄存器地址)
- 读写属性(每个点位标注只读或读写)及读写点的功能码
- 完整点表(含名称、地址、类型、单位、读写属性)
- 字节序说明(非默认时须在模板注明)
4 操作步骤
步骤 1:优先发模板,不口述
把上方”提资模板”发给厂家,要求按模板逐项填齐。
⚠️ 不接受以下回复:
- “等现场调试时再补充”
- “口头告诉你就行”
- “发张照片给你”
步骤 2:确认是 TCP 还是 RTU
参考第 2 节术语速览的判断方法。不接受厂家答复”都行”或”差不多”——两种协议参数完全不同,必须二选一并书面确认。
步骤 3:逐点明确读写权限
要求厂家在点表中逐点标注:
- 只读:数据采集类(温度、压力、电量等)
- 读写:控制类(启停、设定值、阀门开度),读写点必须额外注明功能码
步骤 4:核查点表完整性
确认点表包含以下五项,缺一不可:点位名称、地址、数据类型、单位、读写属性。
各数据类型含义详见第 2 节”常用数据类型速查”。
步骤 5:同线路设备清点从站地址
如果一条线路上挂了多台 Modbus 设备(常见于 RTU 总线),要求厂家或现场负责人列一张表,确认每台设备的 Slave ID 不重复。
5 资料收集表
| 项目 | 是否必填 | 填写要求 |
|---|---|---|
| 设备名称 | 必填 | 与现场铭牌或命名一致 |
| 设备 IP 地址与端口 | TCP 必填 | 默认端口 502 |
| 串口服务器 IP 地址与端口 | RTU 必填 | 平台连接串口服务器;端口以实际为准 |
| 从站地址 | 必填 | 同线路不可重复,取值 1~247 |
| 数据点位地址 | 必填 | 含寄存器地址、名称、数据类型(INT16 / UINT16 / INT32 / FLOAT32)、单位 |
| 读写属性 / 功能码 | 必填 | 逐点注明”只读”或”读写”;读写点须提供功能码 |
| 字节序 | 条件必填 | 非默认时须在模板注明 |
| 完整点表 | 必填 | 优先提供可编辑 Excel,其他格式可接受,但内容须清晰准确 |
6 提交前自查清单
- 已确认对接协议为 Modbus,并明确是 TCP 还是 RTU
- TCP 已获取设备 IP 地址与端口;RTU 已获取串口服务器 IP 地址与端口
- 已获取从站地址,并确认同线路无重复
- 已获取完整点表(含地址、名称、数据类型、单位、读写属性)
- 已明确各点读写属性,读写点已标注功能码
- 已确认数据字节序(若非默认)
- 已完成 网络连通性 验证
- 已通过 统一提资入口 提交资料
- 已在泛微系统发起技术服务流程
7 常见问题与处置
⚠️ 从站地址重复
- 后果:同一条 RTU 线路上多台设备 ID 相同,设备互相抢响应,数据全部错乱,无法区分采集来源。
- 处置:要求厂家或现场负责人列表确认每台设备的 Slave ID,上线前逐台核对,不接受”应该不重复”的口头保证。
⚠️ 混淆 TCP 与 RTU
- 后果:TCP 需要 IP + 端口;RTU 需要串口服务器 IP + 端口。按错协议配置必然返工。
- 处置:不接受”都行”的答复。要求厂家书面明确设备使用的是 TCP 还是 RTU,现场查看接线方式即可判断(网线 = TCP,两根细线 = RTU)。
⚠️ 字节序未说明导致数据异常
- 后果:读出来的温度变成
-1234567℃、压力变成0.000003 MPa,数值明显不合理。- 处置:提资时主动问一句:“数据字节序是默认 ABCD 还是其他?“非默认时必须在点表中注明。
⚠️ 数据类型与寄存器数量不匹配
- 后果:一个
FLOAT32(浮点数)占 2 个寄存器,若厂家填”长度 1”则读取的数值完全错误,且很难排查原因。- 处置:退回点表,要求厂家复核每个多字节类型(INT32 / UINT32 / FLOAT32 / FLOAT64)对应的寄存器数量是否填写正确。
⚠️ 只给点位名称,没有寄存器地址
- 后果:技术团队无法定位数据,无法开始配置。
- 处置:退回点表,要求补充每个点位的寄存器地址(如
40001、30002)。
⚠️ 采集周期过短把设备打挂
- 后果:部分老式仪表对采集频率敏感,采集过快可能导致仪表死机或通讯异常。
- 处置:默认采集周期设为 5 秒~1 分钟,业务有特殊要求再单独确认并调整。
8 遇到问题的三步处置
- 先排查:网络未通、资料未齐、从站地址冲突——三类问题覆盖 80% 的卡点。
- 对照清单:参考第 3 节资料清单,逐项确认是否到位。
- 同步技术团队:将已收集资料、网络测试结果、当前卡点描述整理后一并发送,避免反复沟通。