Modbus 转 MQTT—ADFWEB网关转换器-广州信裕物联网
作者:www.adfweb.com.cn 邹武艺手机185-020-77899 邮箱805191985@qq.com
1、特性:
HD67933-B2 是一款 Modbus 主站/ MQTT 转换器,具备以下功能:
- MQTT 与 Modbus 之间的电气隔离;
- 可安装于 35mm 铁轨 DIN 导轨上;
- 宽广的电源输入范围:18…35V 直流电及 8…24V 交流电;
- 宽广的工作温度范围:-40°C 至 85°C(-40°F 至 +185°F)。
配置:
您需要在电脑上安装 Compositor SW67933 软件来完成以下操作:
1. 定义 MQTT 的相关参数;
2. 定义 Modbus 线路的参数;
3. 指定哪些 Modbus 变量需要发送到 MQTT 服务器;
4. 指定哪些 Modbus 变量由 MQTT 服务器写入;
5. 更新设备配置。
2、“新配置”按钮用于创建一个包含整个设备配置的文件夹。
设备的配置也可以被导入或导出:
- 要克隆可编程“Modbus主站/MQTT转换器”的配置以便以相同方式配置另一台设备,需要保留该文件夹及其所有内容;
- 要克隆一个项目以获取该项目的不同版本,只需将项目文件夹重命名为另一个名称,然后使用“打开配置”按钮打开新文件夹即可。
3、设置通信:
通过点击SW67933主窗口中的“设置通信”按钮(图2),将出现“设置通信”窗口(图3)。
该窗口分为多个部分,用于定义转换器的不同参数:
- 选择设备
- 以太网连接
- 工作模式
- Modbus主站
- MQTT
- 以太网
- TLS(传输层安全)
- NTP(网络时间协议)
- Wi-Fi
- GSM / GPRS / LTE
4、本节用于定义MQTT连接的主要参数。各字段的含义如下:
- 在“Server URL”字段中,定义了MQTT服务器的URL或IP地址;
- 在“Server Port”字段中,定义了用于MQTT通信的端口;
- 在“Client ID”字段中,定义了转换器的客户端ID(如需要);
- 在“Keep Alive (seconds)”字段中,定义了发送Keep Alive消息的延迟时间(以秒为单位);
- 如果选中“Clean Session”字段,在缺少ACK时,服务器和客户端会删除最后的MQTT消息。如果不选中该字段,服务器和客户端会保留最后的MQTT消息,并在连接异常或缺少ACK时尝试重新发送这些消息(仅适用于QoS 1和QoS 2);
- 如果选中“Will Flag”字段,转换器在连接到服务器时会发布“Will”主题。通过此功能,在连接异常时,服务器会将该主题发布给所有订阅了该主题的MQTT客户端;
- 在“Topic Name Will”字段中,定义了用于“Will”消息的主题名称;
- 在“Message Will”字段中,定义了“Will”消息的有效载荷;
- 如果选中“Retained Will”字段,转换器会在启用Retain标志的情况下发送“Will”消息。这样,服务器会保留最后的“Will”消息;
- 在“QoS Will”字段中,定义了“Will”消息的QoS类型;
- 如果选中“Publish Topic on Connection”字段,转换器在连接到服务器时会发布一个主题;
- 在“Topic Name Connection”字段中,定义了用于连接消息的主题名称;
- 在“Message Connection”字段中,定义了连接消息的有效载荷;
- 如果选中“Retained Connection”字段,转换器会在启用Retain标志的情况下发送连接消息。这样,服务器会保留最后收到的连接消息;
- 在“Username”字段中,定义了用于连接MQTT服务器的用户名;
- 在“Password”字段中,定义了连接MQTT服务器所需的密码。
5、MODBUS 设置访问权限(同步模式):
通过点击SW67933主窗口中的“Modbus 设置访问权限”按钮(图2),将出现“设置Modbus访问权限”窗口。
此部分用于定义Modbus读取请求。
**MODBUS 读取**
字段的含义如下:
- 如果选中“启用”字段,则启用Modbus请求;
- 在“从站ID”字段中定义要读取的Modbus设备的地址;
- 在“类型”字段中定义要读取的寄存器的数据类型。可以选择以下类型之一:
- 线圈状态
- 输入状态
- 保持寄存器
- 输入寄存器
- 在“地址”字段中定义要读取的寄存器的起始地址;
- 在“N点”字段中定义要连续读取的寄存器数量;
- 在“轮询时间”字段中定义发送请求的延迟时间;
- 在“最大错误次数”字段中定义转换器在请求失败后等待的连续错误次数,超过该次数将暂停请求直至下次重启。如果设置为“0”,则此功能将被禁用;
- 如果选中“交换”字段,则会交换Modbus寄存器中的数据;
- 如果选中“交换字”字段,则会交换Modbus字中的数据;
- 在“助记符”字段中定义请求的描述。