Appearance
Modbus 设备接入
本文以完整示例演示如何将 Modbus 设备接入平台。Modbus 设备通常通过网关接入,即传感器/仪表作为子设备挂载在 Modbus 网关下。
接入流程
创建子产品 → 配置物模型 → 添加 Modbus 网关设备 → 添加子设备 → 配置采集器 → 查看数据前置条件: 平台已内置 Modbus 驱动,对应的网络组件和网关产品已自动创建,无需手动配置。
步骤 1:创建子产品
进入 基础信息 → 产品配置,点击"新增":
| 配置项 | 填写内容 | 说明 |
|---|---|---|
| 名称 | 温湿度传感器 | 自定义产品名称 |
| 产品类型 | 传感器 | 根据实际设备选择 |
| 产品代码 | temp_humidity | 自定义产品代码 |
| 设备类型 | 网关子设备 | 可选值:直连设备 / 网关设备 / 网关子设备 |
| 父产品 | 默认 Modbus Tcp 产品 或 默认 Modbus Rtu 产品 | 仅设备类型选“网关子设备”时显示,系统已预置的网关产品 |
设备类型选择“网关子设备”后才会显示“父产品”字段,传感器通过 Modbus 网关接入,所以需要选择父产品。
步骤 2:配置物模型
在产品列表点击"物模型",进入物模型编辑页。
2.1 新增属性
| 属性名称 | 标识符 | 数据类型 | 单位 | 读写类型 |
|---|---|---|---|---|
| 温度 | temperature | float | ℃ | 只读 |
| 湿度 | humidity | float | %RH | 只读 |
| 开关 | switch_status | boolean | — | 可读可写 |
2.2 新增事件模型(采集数据)
事件模型的基本表单字段:
| 字段 | 说明 |
|---|---|
| 事件名称 | 自定义名称,如“温度采集” |
| 协议指令 | 从 Modbus 驱动提供的指令列表中选择,如 Read03(读保持寄存器) |
| 接口代码 | 自定义唯一标识,如 tempCollect |
| 频率标签 | 默认 / 低频 / 中频 / 高频,配合采集器的频率标签使用,为不同事件接口设置不同的采集频率 |
| 事件说明 | 可选,描述该事件模型的用途 |
选择协议指令后,会出现下行配置和上行配置两个选项卡,配置项根据所选指令动态变化。
温度采集:
| 配置项 | 填写内容 |
|---|---|
| 事件名称 | 温度采集 |
| 协议指令 | Read03(读保持寄存器) |
| 接口代码 | tempCollect |
| 频率标签 | 默认 |
| 事件说明 | 采集温度数据 |
| 下行配置 - dataType | float |
| 下行配置 - address | 0(寄存器地址,按设备手册填写) |
| 下行配置 - num | 2(寄存器数量) |
| 上行配置 - value | @temperature |
湿度采集:
| 配置项 | 填写内容 |
|---|---|
| 事件名称 | 湿度采集 |
| 协议指令 | Read03(读保持寄存器) |
| 接口代码 | humCollect |
| 频率标签 | 默认 |
| 事件说明 | 采集湿度数据 |
| 下行配置 - dataType | float |
| 下行配置 - address | 2 |
| 下行配置 - num | 2 |
| 上行配置 - value | @humidity |
2.3 新增功能模型(控制设备)
功能模型的基本表单字段:
| 字段 | 说明 |
|---|---|
| 功能名称 | 自定义名称,如“开关控制” |
| 协议指令 | 从 Modbus 驱动提供的指令列表中选择,如 Write05(写单个线圈) |
| 接口代码 | 自定义唯一标识,如 switchControl |
| 序号 | 用于标识接口的重要程度,值越低排序越靠前,说明该控制接口越重要 |
| 功能说明 | 可选,描述该功能模型的用途 |
选择协议指令后,会出现下行配置和上行配置两个选项卡,配置项根据所选指令动态变化。
| 配置项 | 填写内容 |
|---|---|
| 功能名称 | 开关控制 |
| 协议指令 | Write05(写单个线圈) |
| 接口代码 | switchControl |
| 序号 | 1 |
| 功能说明 | 控制设备开关 |
| 下行配置 - address | 0(线圈地址,按设备手册填写) |
| 下行配置 - value | @switch_status |
下行值说明: 下行值可以写死固定值(如
1、0),也可以用@属性字段动态绑定模型属性的值。对于有多个状态的控制场景(如开关),建议先添加一个布尔类型的模型属性(如 switch_status),然后为该属性配置字典(如“开”=1、“关”=0),再用@switch_status绑定,这样在界面上就能通过下拉框选择“开/关”来控制设备。
步骤 3:添加 Modbus 网关设备
进入 设备管理 → 工业网关设备 → Modbus 网关设备,点击“新增”:
基础配置(TCP 和 RTU 共有):
| 配置项 | 填写内容 | 说明 |
|---|---|---|
| 所属产品 | 选择系统预置的 Modbus 网关产品 | 决定后续显示的动态配置项 |
| 设备编号 | GW-001 | 自定义网关编号 |
| 设备名称 | 1号车间 Modbus 网关 | 自定义名称 |
| 设备地址 | 1号车间配电柜(可选) | 设备安装位置,非必填 |
选择不同协议的网关产品后,动态配置项不同:
Modbus TCP
| 配置项 | 必填 | 说明 |
|---|---|---|
| 主机地址 | 是 | Modbus 网关的 IP 地址 |
| 端口 | 是 | 默认 502 |
| 超时时间 | 是 | 通信超时(毫秒) |
| 读空闲时间 | 是 | 空闲超时(毫秒) |
Modbus RTU
| 配置项 | 必填 | 说明 |
|---|---|---|
| 串口地址 | 是 | 串口设备路径,如 /dev/ttyS0 或 COM1 |
| 波特率 | 是 | 如 9600、19200、115200 |
| 数据位 | 是 | 如 8 |
| 校验位 | 是 | None / Odd / Even |
| 停止位 | 是 | 如 1 或 2 |
步骤 4:添加子设备
在 设备管理 → 工业网关设备 → Modbus 网关设备 列表中,找到步骤3创建的网关设备(1号车间 Modbus 网关),点击右侧的 "子设备" 按钮,弹出子设备列表框,点击"新增":
| 配置项 | 填写内容 | 说明 |
|---|---|---|
| 所属产品 | 温湿度传感器(步骤1创建的子产品) | 自动继承物模型 |
| 设备编号 | 1 | 从机地址(1~247),按设备实际拨码填写 |
| 设备名称 | 车间温湿度传感器 | 自定义名称 |
| 设备地址 | 车间入口(可选) | 设备安装位置,非必填 |
| 字节序 | ABCD | 根据设备手册选择字节序格式 |
| 是否批量采集 | 否 | 启用后平台自动合并优化采集 |
添加完成后,该设备自动成为当前网关的子设备,无需手动选择父设备。
设备编号说明: Modbus 子设备的设备编号就是从机地址,范围 1~247,需要与设备实际的拨码地址一致。
步骤 5:配置采集器
进入 数据采集 → 采集器,点击"新增":
| 配置项 | 填写内容 |
|---|---|
| 事件类型 | 采集器 |
| 产品列表 | 温湿度传感器 |
| 频率标签 | 默认 |
产品列表只能选子产品或直连产品,不能选父产品(网关产品)。
配置完成后,平台开始按指定频率标签自动采集数据。
步骤 6:查看数据
- 进入 运行管控 → 运行展板,查看设备在线状态和实时采集值
- 进入 数据中心 → 模型数据,查看温度/湿度的历史数据曲线
常见问题
Q: 设备显示离线? 检查网关设备的主机地址和端口是否正确,确保平台服务器能访问到 Modbus 网关的 IP 和端口。
Q: 采集数据全部为 0 或异常值? 检查子设备的从机地址(设备编号)是否与设备实际拨码一致,检查字节序格式是否与设备手册匹配。
Q: 多个子设备如何快速配置? 如果多个子设备使用相同的物模型,可以复用同一个子产品。创建子设备时选择相同产品,只需修改从机地址即可。启用"批量采集"可让平台自动优化采集效率。
