![](/assets/static/picture/ico_prin.png)
USR-G771(轻边缘)连接MQTT服务器透传上报示例
一、资料下载
USR-G771&G780s使用说明书(轻边缘)链接:https://www.usr.cn/Download/1435.html
USR-G771&G780s标准AT指令集(轻边缘)链接:https://www.usr.cn/Download/1437.html
USR-CAT1 设置软件(轻边缘)链接:https://www.usr.cn/Download/1438.html
MQTT调试软件comnet_bin软件可以百度自行下载
MODBUS SLAVE软件可以百度自行下载
二、硬件连接
1、所需物品
USR-G771 产品 1台
12V电源适配器 1个
USB-RS485串口线 1条
笔记本电脑 1台
2、硬件连接
USR-G771 的485串口接USB-RS485串口线到电脑USB口,然后产品接12V电源适配器上电。
电脑下载并打开 USR-CAT1 设置软件(轻边缘),安装MODBUS SLAVE软件、 MQTT调试软件comnet_bin软件。
3、查看端口号
电脑鼠标点击计算机管理,右击,点开设备管理器,点击端口,查看接USR-G771的USB-RS485串口线COM口号,COM10。
三、USR-G771参数设置
1、打开USR-G771的设置软件
2、点击进入配置状态
3、点击获取当前参数,查询固件版本号
备注:固件VER:V2.4.01.000000.0000及以上版本支持Modbus轮询。
4、配置通道一参数
通道一:
工作模式:MQTT模式
MQTTClient连接:勾选通用MQTT
服务器地址和端口:填写要连接的MQTT服务器地址和端口
用户名和密码:填写要连接的MQTT服务器的用户名和密码
客户端ID:设置不要和MQTTfx及其他MQTT客户端一样。这里自定义写了1234567890。
MQTT串口传输模式设置:透传模式
订阅主题:勾选主题1,设置/USR-G771/get
推送主题:勾选主题1,设置/USR-G771/update
5、配置MODBUS轮询采集参数
MODBUS轮询采集:
启动Modbus轮询:勾选
轮询上报方式:选择透传上报
Modbus轮询采集点位配置界面:添加3个变量。
No1 变量名1,从机地址1,功能码(保持寄存器功能码03),寄存器地址0,数据类型16位无符号,倍率1,上报方式(直接上报)
No1 变量名2,从机地址1,功能码(保持寄存器功能码03),寄存器地址1,数据类型16位无符号,倍率1,上报方式(直接上报)
No1 变量名1,从机地址1,功能码(保持寄存器功能码03),寄存器地址2,数据类型16位无符号,倍率1,上报方式(直接上报)
备注:
(1)这里添加的从机寄存器地址和变量,需要和MODBUS SLAVE模拟的串口从机寄存器地址和变量保持一致。
(2)使用JSON下发命令,里面的变量名需要和这里的变量名一一对应。
6、点击设置并保存所有参数
四、MQTT调试软件comnet_bin参数设置
1、打开MQTT调试软件comnet_bin
2、配置参数做另一个MQTT客户端
(1)点击网络,点击下面的MQTT
(2)服务器地址填和USR-G771连接的同一个MQTT服务器地址
(3)端口填MQTT服务器端口1883
(4)客户端ID这里是MQTT软件做客户端的ID,保持默认,注意和USR-G771的客户端ID不要一样,如果相同会冲突。
(5)用户名和密码,输入MQTT服务器的用户名,输入MQTT服务器的密码。
(6)订阅主题填/USR-G771/update,发布主题填/USR-G771/get。
3、所有参数设置完成之后,勾选启用
4、点击订阅主题
五、通讯测试
1、MODBUS SLAVE软件设置
(1)点击Setup,Slave ID从机地址用1,Function功能码用03,Address寄存器起始地址用0,Quantity寄存器地址数量用3。
就是模拟从机地址1,采集3个寄存器地址0、地址1、地址2的数据。
(2)点击Connection,选择串口,对应USR-G771所接USB-RS485串口线的COM口号,串口参数和USR-G771串口参数保持一致。 Mode选择RTU,模拟MODBUS RTU协议串口。
(3)寄存器地址0填数据10,寄存器地址1填数据20,寄存器地址3填数据30。
2、透传上报,MQTT软件订阅
网关会按照设定的轮询规则,主动采集从机的数据,并以透传格式上报数据给MQTT服务器。需要接收数据的MQTT客户端订阅联网模块的发布主题就能收到设备的上报信息。
寄存器地址0数据十进制10对应十六进制0A
寄存器地址1数据十进制20对应十六进制14
寄存器地址2数据十进制30对应十六进制1E
3、MQTT软件推送,Json下发命令
MQTT服务器可以往联网模块订阅的主题发送命令来实现交互,例如往从机写数据。可以看到slave从机收到指令进行了回复,同时参数发生了改变。
(1)Json下发命令如下,去修改从机1,寄存器地址0的数据更新100,寄存器地址1的数据更新200,寄存器地址3的数据更新300。
{
"rw_prot": {
"Ver": "1.0.1",
"dir": "down",
"id": "00601924061200038538",
"r_data": [{
"name": "1"
},
{
"name": "2"
},
{
"name": "3"
} ] ,
"w_data": [{
"name": "1",
"value": "100"
},
{
"name": "2",
"value": "200"
},
{
"name": "3",
"value": "300"
} ]
}
}
(2)MQTT软件,在下面的发送框输入Json下发命令,点击发布消息,发送给USR-G771串口,往从机写数据。可以看到slave从机收到指令进行了回复,同时参数发生了改变。寄存器地址0写数据100,寄存器地址1写数据200,寄存器地址2写数据300。
(3)更新后的数据,再上报采集。寄存器地址0写数据100,寄存器地址1写数据200,寄存器地址2写数据300。
4、使用JSON下发命令,id是信息ID号,由服务器下发,设备回复保持一致即可。如服务器不下发, 则忽略。上报中,默认采用设备SN作为ID。
编写人:金志方 编写日期:2024-07-03
审核人:金志方 审核日期:2024-07-03
订正版本:V1.0 订正内容:初稿