1.访问EMQ 平台的MQTT测试信息页面 网址:https://www.emqx.io/cn/mqtt/public-mqtt5-broker
2.访问IG902的web管理界面,进入“边缘计算”,启动APP。
3.配置设备列表,配置读取的设备协议及寄存器地址。
4.使用Modbus Slave 模拟数据。
5.查看 IG设备读取状态
6.选择“设备管理>>云服务”,配置MQTT连接。
7.配置脚本将数据上传至云端。
1)选择“云服务”,点击发布中的“+”。
2)配置相关的发布设置。
3)配置订阅脚本。
代码:
import loggingimport json
def ctl_test(topic, payload, wizard_api): #定义订阅主函数
logging.info(topic) #打印订阅主题,假定topic为write/plc
logging.info(payload) #打印订阅数据,假定payload数据为{"method":"setValue", "TagName":"SP1", "TagValue":12.3}
payload = json.loads(payload) #反序列化订阅数据
if payload["method"] == "setValue": #检测是否为写入数据
message = {payload["TagName"]:payload["TagValue"]} #定义下发消息,包括下发的变量名称和变量值
wizard_api.write_plc_values(message) #调用wizard_api模块中的write_plc_values方法,将message字典中的数据下发至指定变量
相关脚本程序参考
http://app.ig.inhand.com.cn/
8.PC端使用MQTT客户端订阅相同的Topic,接收IG设备发送的数据。
1)使用MQTTBox 充当MQTT协议的客户端2。
2)订阅IG设备的发布主题。
3)查看数据
4)测试下发数据到IG。
发布信息到客户端,填写对应客户端订阅主题,及修改字段 {"method":"setValue", "TagName":"字段名", "TagValue":修改值为} 此处修改客户端字段 temperature 修改值为12.3 此处输入{"method":"setValue", "TagName":" temperature ", "TagValue":12.3} 点击发布按钮 .
5)查看数据是否下发成功。
注:如果下发未成功,1.确定该变量允许写入。2.根据日志查找其它原因。