使用Mirco850进行MQTT数据发布
Adam.Sun
摘要
罗克韦尔的小型控制器提供MQTT UDFB功能块进行MQTT报文的发布和订阅功能,本文将基于Mirco850和悉息掌控数字化云平台进行MQTT数据发布功能演示。
1、Mirco850 MQTT样例程序下载
打开RA官网,在Sample Code Library样例程序库中搜索MQTT。
点击下载Mirco800 UDFB:MQTT sample code
下载完成后打开压缩包,里面包含一个说明文档和一个Mirco800样例程序。
注:由于Mirco800的MQTT样例程序中不能直接识别数据云服务器的Host地址,因此我们需要将Host地址解析为IPv4的地址进行使用,因此需要在Sample Code Library样例程序库中搜索“DNS_RESOLVE_HOST_NAME”样例程序。
2、创建MQTT数据云服务器通道
首先我们使用悉息科技的MQTT服务器进行测试,也可使用其他类似云端服务器。
登录服务器中台:https://witjoint.console.******.com/login
在连接中创建MQTT连接
创建MQTT通道并命名
获取到MQTT通道连接信息如下图,在Node-Red中会使用到:
服务器地址Host:iothub.aliyun.zhangkong365.com
端口Port:1883
用户名Username:adam
密码Password:******
通道名称Topic:Channel/5f841565256aba158221f9e2/M850
3、配置Mirco850 MQTT程序
导入MQTT样例程序项目。
打开下载的MQTT样例程序,后缀.ccwarc CCW存档文件。
导入后,程序包含一个主程序和三个用户自定义功能块。
导入DNS解析域名程序。
导入后,程序会多一个用户自定义功能块。
4、Mirco850 MQTT数据发布测试
我们需要对样例程序做一些微调以便进行功能测试。
1)、获取数据云服务器IP地址
将计算机和Mirco850接入互联网,并设置IP地址为自动获取状态,确认DNS服务器IP地址。
获取数据云服务器的IP地址,
HostName:数据云服务器域名
DNSServer:本地路由器的DNS服务器IP地址
HostIP:解析得到的数据云服务器IP地址
2)、建立MQTT连接
设置locServer的IP地址(即上面获取的HostIP)和端口号;
设置userID和userPass,参考上文数据云的用户名和密码;
ConnectCmd触发连接命令,当socketSts状态为9时表示连接成功。
3)、发布MQTT报文
设置pubTopic通道名称,参考上文数据云的通道名;
设置pubData发布数据,需要参考JSON数据格式,使用字符串进行拼接。
采用1s触发一次,此处可以看到Sts_Done状态为正常。
字符串的拼接可参考如下
每秒触发可参考如下
4)、数据云确认接收MQTT报文
此处可看到报文接收正常,至此Mirco850进行MQTT数据发布测试完毕。