版本: v1.0 修改日期: 2026-05-29 本手册指导实施人员、项目交付人员与第三方对接人员,在 viSCADA 平台上完成 Modbus Slave 从站设备的接入与配置,并对外提供 Modbus TCP / Modbus RTU Over TCP 读写服务。
1 文档信息
| 项 | 内容 |
|---|---|
| 文档名称 | viSCADA Modbus Slave 配置手册 |
| 适用平台 | viSCADA(需已部署 Modbus Slave 服务) |
| 适用对象 | 实施人员、项目交付人员、第三方对接人员 |
| 版本 | V1.0 |
| 编写日期 | 2026-03-27 |
2 使用场景
本手册适用于以下场景:
- 在 viSCADA 平台创建一个 Modbus 从站设备;
- 将平台物模型属性映射为 Modbus 寄存器地址;
- 对外提供 Modbus TCP 或 Modbus RTU Over TCP 读写服务;
- 与第三方系统、串口服务器或下游主站系统进行数据交互。
3 术语与基础概念
3.1 平台术语
| 术语 | 说明 |
|---|---|
| 设备类 | 平台中的设备模板,用于定义协议、物模型、技术参数等通用能力 |
| 设备实例 | 基于设备类创建的具体设备对象,代表实际对外提供 Modbus Slave 服务的对象 |
| 物模型属性 | 平台中设备的数据点,用于映射 Modbus 寄存器 |
3.2 Modbus 相关术语
| 术语 | 地址前缀 | 读写属性 | 常见用途 |
|---|---|---|---|
| 线圈寄存器(Coil) | 0x | 读写 | 开关量控制、布尔状态 |
| 离散输入(Discrete Input) | 1x | 只读 | 外部输入状态 |
| 输入寄存器(Input Register) | 3x | 只读 | 模拟量采集值 |
| 保持寄存器(Holding Register) | 4x | 读写 | 参数配置、数值下发 |
ℹ️
slaveId为 Modbus 从站地址,用于主站识别从站设备;slaveUrl为 Modbus Slave 服务地址。
4 配置流程总览
建议按以下顺序完成配置:
各步骤分别对应本手册的第 5~9 章,第 10 章提供完整配置示例,第 11 章为配置完成后的校验方法。
5 创建设备类
5.1 操作入口
平台后台 → 「设备管控」 → 「设备类」 → 「新增设备类」
5.2 必填配置项
| 字段 | 说明 | 配置要求 |
|---|---|---|
| 通讯协议 | 协议类型 | 必须选择 MODBUS |
| 设备通讯类型 | 通讯方式 | 必须选择 直连设备 |
| 设备类名称 | 业务可读名称 | 按业务规范填写 |
| 设备类标识 | 设备类唯一标识 | 按命名规范填写,建议全局唯一 |
| 标准化名称 | 数仓/业务线标准名 | 按业务线标准填写 |
该步骤用于创建一个支持 Modbus 协议的从站设备模板,后续物模型属性、技术参数及设备实例均基于该设备类进行配置。
图 1 设备类新增界面
6 配置物模型属性与寄存器地址映射
6.1 操作入口
已创建的从站设备类 → 「物模型」 → 「添加属性」
该步骤用于建立 Modbus 寄存器地址 与 平台物模型属性 的对应关系,使平台属性可被主站通过指定寄存器地址读写。
6.2 地址标识填写规范
属性标识按 寄存器地址:数据类型 格式填写:
0x0001:BOOL
4x0001:INT
4x0005:REAL
4x0007:INT
图 2 属性标识配置示例
6.3 属性配置要求
| 字段 | 说明 | 配置要求 |
|---|---|---|
| 属性标识 | 寄存器地址 + 数据类型 | 按 6.2 规范填写 |
| 读写模式 | 读/写能力 | 统一选择 读写 |
| 标准化名称 | 数仓字段名 | 按业务规范填写 |
| 数据类型 | 平台侧类型 | 按下表选择 |
数据类型选择参考:
| Modbus 标识示例 | 推荐平台数据类型 | 适用场景 |
|---|---|---|
0x0001:BOOL | boolean | 开关量 |
4x0001:INT | int | 整数型寄存器 |
4x0005:REAL | double / float | 浮点数 |
4x0007:INT | int | 一般数值参数 |
图 3 属性读写模式与数据类型配置
6.4 关键约束
⚠️ 以下约束为强制要求,违反将导致读写错误或数据冲突。
- 寄存器地址必须项目内全局唯一:同一项目中的 modbus-slave 实例按”一个设备”统一管理,寄存器地址不可重复,否则会造成地址冲突。
- 地址区间与数据类型必须匹配:布尔量应配置在线圈区(
0x),数值型参数应配置在保持寄存器区(4x),不可错配。 - 同一寄存器建议仅允许一个主站读写:多主站并发操作同一地址,可能导致竞争写入、数据覆盖或状态异常。
7 创建设备实例
7.1 操作入口
平台后台 → 「设备管控」 → 「设备管理」 → 选择对应设备类 → 「新增设备」
基于已创建的 Modbus 从站设备类创建实例,该实例代表实际对外提供 Modbus Slave 服务的设备对象。
7.2 必填字段
| 字段 | 说明 | 示例值 |
|---|---|---|
| 设备名称 | 现场或项目名称 | ModbusSlave_01 |
| 设备标识 | 唯一标识,便于检索和接口调用 | modbus_slave_01 |
| 标准化名称 | 业务线标准名 | PID |
| 所属设备类 | 关联的设备类 | 选择已创建的 Modbus 从站设备类 |
图 4 设备实例创建界面
8 配置设备技术参数
8.1 操作入口
已创建的从站设备 → 「技术参数」 → 「新增项」
8.2 必填参数
| 参数名 | 参数值 | 说明 |
|---|---|---|
slaveUrl | tcp://modbus-slave:33502 | Modbus Slave 服务地址,固定填写 |
slaveId | 1 | Modbus 从站地址,默认值 |
⚠️ 如需修改
slaveId,必须同步调整对应配置文件并重启服务,否则平台配置与服务实际地址不一致。
图 5 技术参数配置示例
8.3 可选参数
除必填项外的技术参数如无特殊需求,建议保持默认(不启用)。
| 参数名 | 说明 | 启用建议 |
|---|---|---|
proxy | 是否通过代理转发通讯 | 无特殊需求不启用 |
sharedChannel | 是否共享通道 | 无特殊需求不启用 |
byteOrder | 字节序设置 | 仅在多字节数据解析异常时调整 |
ForceContiguousRead | 是否强制连续读取 | 仅在特定设备兼容场景下启用 |
💡 各类寄存器读写长度阈值参数,应结合实际数据规模与性能需求填写。若项目存在第三方协议适配差异,建议先联调测试后再调整可选参数。
9 对外服务与第三方对接
完成上述配置后,可根据实际场景向下游系统提供服务地址与端口。
9.1 服务端口
| 服务地址 | 协议类型 | 适用场景 |
|---|---|---|
modbus-slave:33502 | Modbus TCP | viSCADA 平台与 modbus-slave 服务之间的内部读写 |
modbus-slave:502 | Modbus RTU Over TCP | 串口服务器对接,常用于串口透传场景 |
9.2 第三方对接流程
如需对接第三方系统,按以下步骤操作:
- 为 modbus-slave 服务配置对外 IP 映射或端口映射;
- 确认映射后的公网或局域网访问地址;
- 向对接方提供最终可访问的 IP + 端口;
- 明确使用协议类型:Modbus TCP 或 Modbus RTU Over TCP。
9.3 安全控制要求
对外开放端口时,必须同时落实以下控制措施:
| 措施 | 说明 |
|---|---|
| 来源 IP 限制 | 仅允许授权主站访问,避免未授权访问 |
| 服务隔离 | 非必要场景不直接暴露内部服务地址 |
| 端口纳管 | 对外映射端口纳入项目安全管理范围 |
| 写入控制 | 若存在写入能力,需严格控制第三方主站数量与权限 |
10 完整配置示例
以下为一个标准的最小配置示例,可作为实施模板。
10.1 设备类
| 字段 | 值 |
|---|---|
| 设备类名称 | ModbusSlave 标准类 |
| 通讯协议 | MODBUS |
| 设备通讯类型 | 直连设备 |
10.2 物模型属性
| 属性名称 | 属性标识 | 数据类型 | 读写模式 |
|---|---|---|---|
| 启停控制 | 0x0001:BOOL | boolean | 读写 |
| 运行状态 | 1x0001:BOOL | boolean | 读写 |
| 温度采集 | 3x0001:INT | int | 读写 |
| 设定值 | 4x0001:INT | int | 读写 |
| 浮点参数 | 4x0005:REAL | double | 读写 |
10.3 设备实例
| 字段 | 值 |
|---|---|
| 设备名称 | ModbusSlave_01 |
| 设备标识 | modbus_slave_01 |
10.4 技术参数
| 参数 | 值 |
|---|---|
slaveUrl | tcp://modbus-slave:33502 |
slaveId | 1 |
10.5 对外对接信息
| 协议 | 访问地址 |
|---|---|
| Modbus TCP | 映射后 IP + 端口 |
| Modbus RTU Over TCP | 映射后 IP + 端口 |
11 配置校验
完成配置后,按以下三步进行校验。
11.1 平台侧检查
- 设备类已绑定
MODBUS协议; - 物模型属性已全部创建;
- 寄存器地址无重复;
- 设备实例已绑定正确的设备类;
slaveUrl与slaveId填写正确。
11.2 通讯验证
使用第三方 Modbus 调试工具,重点确认:
- 是否可连接目标 IP 与端口;
- 是否能按配置的
slaveId正常访问; - 是否可读取已映射的寄存器;
- 对可写寄存器写入后,平台属性是否同步更新。
11.3 读写验证示例
以 10.2 的配置为例,验证:
| 操作 | 预期结果 |
|---|---|
读取 0x0001 | 返回布尔值 |
写入 4x0001 | 平台数值同步更新 |
读取 4x0005 | 浮点数正常解析 |
12 配置要点速查
实施过程中须重点关注以下三项:
| 要点 | 说明 | 对应章节 |
|---|---|---|
| 寄存器地址必须项目内全局唯一 | 重复会导致地址冲突 | 6.4 |
slaveUrl 与 slaveId 必须正确配置 | 否则平台与服务地址不一致 | 8.2 |
| 对外端口开放前必须完成安全控制与联调 | 避免未授权访问与第三方对接失败 | 9.3 |