如何通过网关实现LoRaWAN转Modbus
目录
概述
星纵物联LoRaWAN®网关可以作为Modbus服务器,通过TCP或Modbus TCP协议,通过Modbus RTU建立LoRaWAN设备与Modbus客户端之间的通信,可以快速轻松的将LoRaWAN设备集成到BMS或PLC系统中。
准备
- 星纵物联LoRaWAN®网关UG67/UG65(需V60.0.0.45版本或更高),UG56(V56.0.0.5版本或更高)。
- 传感器:任意LoRaWAN传感器,本次以UC100为例。
- Modbus客户端工具,本次以Modpoll为例。
步骤
1. 编解码版本检查
点击网关”Network Server”–>”载荷编解码器”,确保网关的解码器版本为1.3.5或更高版本
注意:在线升级要确保网关可以访问互联网,本地升级参考如何在网关上使用编解码器 – 星纵物联。
注:如果编解码器列表不包括您的设备,请参考如何在Milesight网关上使用载荷编解码器自定义解码器,如果您需要接收设备数据,请确保您的自定义编解码器具有解码器和对象映射功能;如果您需要向设备发送下行命令,请确保您的自定义编解码器同时具有编码器和对象映射功能。
2. 传感器设备对接网关
传感器对接网关请参考网关内置NS添加节点设备,在添加设备时请确保选择正确的解码器并配置正确的设备参数。
3. Modbus TCP配置
3.1 添加Modbus Server
(1)传感器设备成功对接后,转到“协议集成”–>“Modbus Server界”面,添加”Modbus Server“。
(2)启用:勾选启用
名称:自定义服务器名称
端口:设置服务器的连接端口(有效值0~65535)
连接方式:选择 Modbus TCP连接
填写Server ID:自定义从机地址有效值(1-255)
描述:自定义描述内容(非必填)
3.2 添加Modbus 对象
(1)转到Server旁边的Modbus对象;并点击”添加”。
(2)勾选需要推送的设备后,点击“+”号,展开寄存器选择界面,勾选所需要的ModbusTCP转发的数据内容,点击”保存”。
项 | 描述 | |
寄存器类型 | Coil (线圈) | 单个位的读写寄存器,通常用于开关状态 |
Discrete Input (离散输入) | 单个位的只读寄存器,通常用于传感器状态 | |
Input Register (输入寄存器) | 16位的只读寄存器,通常用于模拟量输入 | |
Holding Register (保持寄存器) | 16位的读写寄存器,通常用于存储和控制参数 | |
数据格式 | INT16 | 16位有符号整数 |
UINT16 | 16位无符号整数 | |
INT32 | 32位有符号整数,通常需要两个连续的寄存器 | |
UINT32 | 32位无符号整数,通常需要两个连续的寄存器 | |
FLOAT32 | 32位浮点数,通常需要两个连续的寄存器 | |
String | 用于存储和传输文本数据,根据存储字符长度设置对应的寄存器数量。 | |
Flag | 用于表示布尔值或状态信息。每个标志占用一个位,因此可以在一个寄存器中存储多个标志。 | |
寄存器数目 | 数值 | 存储数据的寄存器数量 |
3.3 查看配置情况与数据获取
(1)保存后点击“+”号可以展开这台设备之前添加的寄存器情况。
(2)当网关收到该节点上报的数据,对应的寄存器对象会显示当前值及更新的时间信息。
3.4 Modbus客户端采集测试
(1)打开modbus poll工具,点击”Connection“,选择Modbus TCP/IP连接方式,IP地址填写网关的IP地址,端口填写与网关创建Modbus服务器端口保持一致。
(2)点击”Setup-Read/Write Definition”进行配置采集参数。
(3)设置对应的参数后点击OK。
- Slave ID:创建服务时配置的从站地址
- function:配置采集寄存器的功能码,需要与网关上配置寄存器类型一致
- Address:采集地址(数值根据设置显示的寄存器地址进行配置)
- Quantity:采集寄存器数量
(4)在Display中选择对应的数据格式类型,如图中为float_dcba,选择对匹配显示。
(5)检查最终采集到的数据显示内容情况。
4. Modbus TCP(WS50X触摸开关为例)
4.1 新建载荷解码函器
(1)将WS50X_decoder.js、WS50X_ecode.js、WS50X_mapping.js中的内容分别复制到解码函数、编码函数、对象映射函数中,并保存,3个链接如下:
- https://milesight-cn-resource.oss-cn-hangzhou.aliyuncs.com/document/WS50X_decoder.txt(解码函数)
- https://milesight-cn-resource.oss-cn-hangzhou.aliyuncs.com/document/WS50X_ecode.txt(编码函数)
- https://milesight-cn-resource.oss-cn-hangzhou.aliyuncs.com/document/WS50X_mapping.txt(对象映射函数)
(2)进入“Network Server->设备”,点击添加,添加对应的设备信息,选择设备对应的载荷解码器。
4.2 进添加Modbus对象
(1)“协议集成”–>Modbus Server–>添加Modbus对象,只需要选择switch_1、switch_2、switch_3这三个对象,寄存器类型选择Coil,如下图所示:
保存后,当开关状态改变上报,这边将会更新最新的状态值,如下图所示:
4.3 Modbus TCP上行采集
(1)打开modbus poll工具使用modbus TCP模式,信息与网关上配置一致,ModbusServer地址即网关IP,TCP端口,如下图所示:
(2)进入Setup–>Read/Write Definition,选择寄存器类型(01 Read Coils)。
(3)设备上报数据采集,当开关按键触发时,如下图界面的当前值将更新为最新的设备开关状态。
4.4 Modbus TCP下发控制
(1)需当需要通过Modbus TCP下发控制开关时,双击寄存器(ID=1,起始地址=0)窗口,如下图所示:
(2)将会弹出下图窗口,当Value选择off并点send将下发关闭switch1 / L1的灯,反之Value选择on,则表示下发打开开关L1。
(3)在网关上即可收到通过Modbus TCP下发的指令,如下发关闭开关L1的指令ff2910,如下图所示: