登录
首页 工业以太网 泓格工业通讯
回帖 发帖
正文

主题:运用MQTT 完成IoT 数据传输-ET-2200 之MQTT 协议应用

点击:685 回复:1

  MQTT(Message Queuing Telemetry Transport)是一种开放、简单、易于实作的轻量级发布/ 订阅式消息传输协议,可在低频宽的网络环境中提供可靠的网络服务。这些特性使其非常适合在各种受限的环境下使用,例如机器对机器(M2M) 和物联网(IoT)等程序码空间受限、网络频宽受限,又要求实时性、安全性、且数据传输次数密集的通信系统。
  何谓发布/ 订阅式消息传输协议?
  MQTT 架构可分为三大部分:Broker、Publisher 和Subscriber,Broker 是传递讯息的代理人。在MQTT 架构中Broker 扮演了Server 的角色,任何讯息都需经过Broker的处理才能送达,Broker 利用讯息的Topic( 主题名称) 转发给正确的Client。Publisher 和Subscriber 都是Broker的Client 端,Publisher 会将特定Topic 的更新讯息送往Broker。当特定Topic 的讯息更新时,Broker 便会将新的讯息转发给已订阅的Subscriber,所以只需要知道主题名称,任何Client 都能兼任Publisher 和Subscriber。
附件 1.jpg

  ET-2200 系列的MQTT功能
  ET-2200 系列为DI、DO 模块,新增的MQTT 功能设计为搭配DI、DO 使用。Publish 功能主要有三种不同的模式,分别为Power-On、State-Change 以及Periodic。Power-On 功能仅在模块重启或是刚上电时作用, 当模块发生供电异常或触发看门狗功能重启后, 有开启Power-OnPublish 功能的DO 将会在与Broker 连线后立即发布当前状态通知所有订阅端。State-Change Publish 在指定的DI、DO 状态发生改变时才会更新主题讯息,而Periodic Publish 则是在固定的时间间隔不断发布当前状态。Subscribe 功能为DO 仅有,可应用于远程设定DO 状态。
  应用案例
  通过开源软件Mosquitto 可以在Windows、macOS 和Linux 等操作系统上架设MQTT 架构的Server 端(Broker),另外使用Chrome 线上商店的免费软件MQTTLens可以模拟MQTT 架构的Client 端(Publisher和Subscriber)。配合上述两个软件可以简单应用ET-2200 系列模块的MQTT 功能,请参阅下方详细步骤。
  与Broker 建立连线
  MQTTLens – 点击”+” 并输入Broker的IP Address 后,建立与Broker 的连线。
附件 2.jpg

  ET-2200 – 登入Web Server 后点击MQTT 页面, 将MQTT 设定为Enable 并在Broker 栏位输入Broker 的IP Address 后点击Update Settings 套用设定。
附件 3.jpg

  Publisher 功能
  Step 1 开启MQTT 的DO、DI Publish 功能
附件 4.jpg

  Step 2 MQTT 页面点选RestartService,确保设定已套用
附件 5.jpg

  Step 3 使用MQTTLens 订阅Step 1 开启的DO、DI 主题名称( 此范例rb_all 为例)
附件 6.jpg

  Step 4 观察MQTTlens 可以看到订阅的主题”rb_all”每隔9000ms(Periodic 预设值)会更新主题讯息,讯息内容为所有DO 当前状态。
附件 7.jpg

  Subscriber 功能
  Step 1 开启MQTT 的DO Subscribe 功能
附件 8.jpg

  Step 2 MQTT 页面点选RestartService,确保设定已套用
附件 9.jpg

  Step 3 使用MQTTLens 发布Step 1 开启的DO 主题名称( 此范例do_all 为例)
附件 10.jpg

  Step 4 回到ET-2200 Web Server 的Home 页面,观察DO 状态是否与发布讯息相同
附件 11.jpg

  透过MQTT 实现ET-2200 的I/OPair-connection 功能
附件 12.jpg

  Step 1 使用ET-2200 # 1 模块的MQTTDI 页面开启State-Change Publish 功能并自订一个Topic ( 例如pair-connection)
附件 13.jpg

  Step 2 使用ET-2200 # 2 模块的MQTTDO 页面开启Subscribe 功能并输入Step 1设定的Topic ( 例如 pair-connection)
附件 14.jpg

  Step 3 回到各自的MQTT 页面点选Restart Service,确保设定已套用
附件 14.jpg

  Step 4 对ET-2200 # 1 模块的DI 输入讯号改变DI 状态,观察ET-2200 # 2 模块Home 页面的DO 状态是否与ET-2200 # 1模块的DI 一同改变。以上图为例,当ET-2200 # 1 的DI 状态发生改变时,ET-2200 #1 会向Broker 发布当前DI 状态,Broker 收到讯息后会将最新的讯息发布给”已订阅”的ET-2200 # 2, 而ET-2200 # 2 收到Broker 的讯息后将DO 调整为对应讯息的状态。
最后修改:2020/7/15 9:45:11
20-07-15 09:42
1楼
该帖内容不符合相关规定!
23-02-28 14:04

工控新闻

更多新闻资讯