USR-M300 网口接MODBUS TCP连接MQTT服务器Json下发示例
备注:本案例是USR-M300联网,和MQTT服务器建立连接,USR-M300的网口LAN口接网口 MODBUS TCP从机,MQTT服务器JSON下发写从机寄存器地址数据。案例用另一个MQTTfx软件做MQTT客户端下发JSON命令去写寄存器数据。
一、资料下载
USR-M300 说明书:https://www.usr.cn/Download/1332.html
USR-M300 规格书:https://www.usr.cn/Download/1333.html
USR-M300 应用指导:https://www.usr.cn/Download/1369.html
【PC端调试工具】网络调试助手 串口调试助手二合一https://www.usr.cn/Download/27.html
MODBUS SLAVE软件可以自己百度下载。
MQTTfx软件可以自己百度下载。
二、硬件连接
1、所需物品
USR-M300 产品 1台
12V电源适配器 1个
超五类网线 2根
笔记本电脑 1台
2、硬件连接
USR-M300 接好4G天线,可以内置卡上网,也可以插外置SIM卡上网,也可以WAN口用网线接上级路由器上网。
USR-M300 的LAN口用网线和电脑直连。
电源端子接12V电源适配,注意正负极不要接反。
电脑下载安装MODBUS SLAVE软件模拟USR-M300 LAN口接的MODBUS TCP从机设备。
3、查看电脑获取的IP
打开控制面板,打开网络和Internet,打开网络连接,查看本地有线网卡状态,详细信息。本案例,电脑从USR-M300获取的IP是192.168.1.11,电脑模拟网口MODBUS TCP设备的IP也就是192.168.1.11。
三、产品参数设置
1、登陆USR-M300网页
电脑打开浏览器,输入192.168.1.1,登陆USR-M300内置网页,用户名和密码都是admin。
2、数据点位:添加从机和点位
(1)点开数据点位,在从机一栏,点击添加。
(2)从机名称:device1,采集协议:Modbus TCP,IP填LAN口接的网口MODBUS TCP从机IP:192.168.1.11,端口号填102,从机地址1,点击确定,等设置完所有参数,最后网页重启USR-M300。
(3)从机--点位列表,点击添加
(4)点位名称:data1(和后面上报数据都点位名称保持一致),寄存器功能码04,寄存器地址1(对应实际十进制寄存器地址0),读写状态读写,点击确定。
(5)再添加第二个点位,点位名称:data2(和后面上报数据的点位名称保持一致),寄存器功能码04,寄存器地址1(对应实际十进制寄存器地址0),读写状态读写,点击确定。
(6)添加完,可以列表检查
3、边缘网关:通信链路--链路1--TCP参数设置
(1)点击链路1,打开链路1开关。
(2)在基础设置,
通信协议:MQTT
协议选择:MQTT-3.1.1
服务器地址:填USR-M300 连接的MQTT服务器地址IP
客户ID:自定义填1234567890,避免和其他连接MQTT服务器的客户端ID重复冲突。
远程端口:填USR-M300 连接的MQTT服务器的端口
开启连接验证,填写连接MQTT服务器的用户名和密码,如果MQTT服务器没有用户名和密码,可以不用开启连接验证。
其他参数保持默认。
点击应用。
(3)发布设置
点击发布设置,点击编辑,主题名称填/USR-M300/update
QOS:选择QOS0,点击确定,点击应用。
(4)订阅设置
点击订阅设置,点击编辑,主题名称填/USR-M300/get
QOS:选择QOS0,点击确定,点击应用。
4、边缘网关:协议转换--Json
(1)点击协议转换,点击Json,开启Json
(2)开启Json之后点击添加
(3)链路选择链路1,发布主题/USR-M300/update,订阅主题/USR-M300/get
(4)点击应用
5、最后网页点击重启,等待USR-M300重启完成。
四、MODBUS SLAVE软件设置
1、MODBUS SLAVE软件设置
(1)在电脑上安装Modbus Slave软件,点击Setup
Slave ID:1(从机地址测试用1)
Function: 03(读寄存器功能码)
Address:0(寄存器起始地址用0)
Quantity:2(从起始地址开始寄存器地址数量)
(2)Modbus Slave软件,点击Connection,选择Modbus TCP/IP。选择Port 102,对应USR-M300 添加从机时填写的端口号102。最后点击OK。
五、MQTTfx软件设置
1、打开MQTTfx软件
2、建一个新的配置文件做另一个MQTT客户端
(1)配置文件名自定义用MQTT
(2)服务器地址填和USR-M300连接的同一个MQTT服务器地址
(3)端口填MQTT服务器端口1883
(4)Client ID(客户端ID)可以点击后面的Generate自动创建,注意和USR-M300的客户端ID不要一样,如果相同会冲突。
(5)点击User Credentials,User NAME输入MQTT服务器的用户名,Password输入MQTT服务器的密码。
(6)所有参数设置完成之后,点击Apply应用。
3、MQTT.fx软件选择新建的客户端MQTT,点击Connect连接
六、MQTT服务器JSON下发写数据
1、MQTT服务器JSON下发写寄存器地址0数据666,写寄存器地址1数据888
MQTTfx软件,点击Publish,输入主题/USR-M300/get,发送区发送JSON格式命令,改变MODBUS SLAVE软件的寄存器地址数据。
发送区按照格式输入下发JSON格式命令:
{
"rw_prot": {
"Ver": "1.0.1",
"dir": "down",
"id": "12345",
"r_data": [{
"name": "data1"
},
{
"name": "data2"
}
],
"w_data": [{
"name": "data1",
"value": "666"
},
{
"name": "data2",
"value": "888"
}
]
}
}
2、MQTT服务器JSON下发写寄存器地址数据之后,MQTT服务器收到回复
MQTTfx软件,点击Subscribe,输入主题/USR-M300/update,点击主题后面的Subscribe接收回复数据。
{
"rw_prot": {
"dir": "up",
"Ver": "1.0.1",
"id": "12345",
"w_data": [{
"name": "data1",
"value": "666",
"err": "0"
}, {
"name": "data2",
"value": "888",
"err": "0"
}],
"r_data": [{
"name": "data1",
"value": "666",
"err": "0"
}, {
"name": "data2",
"value": "888",
"err": "0"
}]
}
}
回复JSON格式内容:
编写人:金志方 编写日期:2024-08-02
审核人:金志方 审核日期:2024-08-02
订正版本:V1.0 订正内容:初稿