![](/assets/static/picture/ico_prin.png)
USR-G771(轻边缘)连接MQTT服务器Json组包上报示例
一、资料下载
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
MQTTfx软件可以百度自行下载
MODBUS SLAVE软件可以百度自行下载
二、硬件连接
1、所需物品
USR-G771 产品 1台
12V电源适配器 1个
USB-RS485串口线 1条
笔记本电脑 1台
2、硬件连接
USR-G771 的485串口接USB-RS485串口线到电脑USB口,然后产品接12V电源适配器上电。
电脑下载并打开 USR-CAT1 设置软件(轻边缘),安装MODBUS SLAVE软件、MQTTfx软件。
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轮询:勾选
轮询上报方式:选择JSON组包上报
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、点击设置并保存所有参数
四、MQTTfx参数设置
1、打开MQTTfx软件
2、建一个新的配置文件做另一个MQTT客户端
(1)配置文件名自定义用MQTT
(2)服务器地址填和USR-G771连接的同一个MQTT服务器地址
(3)端口填MQTT服务器端口1883
(4)Client ID(客户端ID)可以点击后面的Generate自动创建,注意和USR-G771的客户端ID不要一样,如果相同会冲突。
(5)点击User Credentials,User NAME输入MQTT服务器的用户名,Password输入MQTT服务器的密码。
(6)所有参数设置完成之后,点击Apply应用。
3、MQTT.fx软件选择新建的客户端MQTT,点击Connect连接
五、通讯测试
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、Json组包上报,MQTT.fx软件订阅
网关会按照设定的轮询规则,主动采集从机的数据,并以JSON格式上报数据给MQTT服务器。需要接收数据的MQTT客户端订阅联网模块的发布主题就能收到设备的上报信息。
(1)MQTT.fx软件点击Subscribe,输入/USR-G771/update,点击后面的Subscribe。
(2)点击MQTT.fx软件的每一条/USR-G771/update,可以看到每一条JSON上报信息。
采集寄存器地址0数据10,寄存器地址1数据20,寄存器地址2数据30。
{"params":{"dir":"up","id":"00601924061200038538","r_data":[{"name":"1","value":"10","err":"0"},{"name":"2","value":"20","err":"0"},{"name":"3","value":"30","err":"0"}]}}
3、MQTT.fx软件推送,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.fx软件点击Publish,输入/USR-G771/get,在下面的发送框输入Json下发命令,点击Publish发送给USR-G771串口,往从机写数据。可以看到slave从机收到指令进行了回复,同时参数发生了改变。寄存器地址0写数据100,寄存器地址1写数据200,寄存器地址2写数据300。
(3)更新后的数据,再上报采集。寄存器地址0写数据100,寄存器地址1写数据200,寄存器地址2写数据300。
4、使用JSON下发命令,
id是信息ID号,由服务器下发,设备回复保持一致即可。如服务器不下发, 则忽略。上报中,默认采用设备SN作为ID。
编写人:金志方 编写日期:2024-07-02
审核人:金志方 审核日期:2024-07-02
订正版本:V1.0 订正内容:初稿