发表于:2020/7/15 9:42:14
#0楼
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。
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 的连线。
ET-2200 – 登入Web Server 后点击MQTT 页面, 将MQTT 设定为Enable 并在Broker 栏位输入Broker 的IP Address 后点击Update Settings 套用设定。
Publisher 功能
Step 1 开启MQTT 的DO、DI Publish 功能
Step 2 MQTT 页面点选RestartService,确保设定已套用
Step 3 使用MQTTLens 订阅Step 1 开启的DO、DI 主题名称( 此范例rb_all 为例)
Step 4 观察MQTTlens 可以看到订阅的主题”rb_all”每隔9000ms(Periodic 预设值)会更新主题讯息,讯息内容为所有DO 当前状态。
Subscriber 功能
Step 1 开启MQTT 的DO Subscribe 功能
Step 2 MQTT 页面点选RestartService,确保设定已套用
Step 3 使用MQTTLens 发布Step 1 开启的DO 主题名称( 此范例do_all 为例)
Step 4 回到ET-2200 Web Server 的Home 页面,观察DO 状态是否与发布讯息相同
透过MQTT 实现ET-2200 的I/OPair-connection 功能
Step 1 使用ET-2200 # 1 模块的MQTTDI 页面开启State-Change Publish 功能并自订一个Topic ( 例如pair-connection)
Step 2 使用ET-2200 # 2 模块的MQTTDO 页面开启Subscribe 功能并输入Step 1设定的Topic ( 例如 pair-connection)
Step 3 回到各自的MQTT 页面点选Restart Service,确保设定已套用
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 调整为对应讯息的状态。
何谓发布/ 订阅式消息传输协议?
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。
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 的连线。
ET-2200 – 登入Web Server 后点击MQTT 页面, 将MQTT 设定为Enable 并在Broker 栏位输入Broker 的IP Address 后点击Update Settings 套用设定。
Publisher 功能
Step 1 开启MQTT 的DO、DI Publish 功能
Step 2 MQTT 页面点选RestartService,确保设定已套用
Step 3 使用MQTTLens 订阅Step 1 开启的DO、DI 主题名称( 此范例rb_all 为例)
Step 4 观察MQTTlens 可以看到订阅的主题”rb_all”每隔9000ms(Periodic 预设值)会更新主题讯息,讯息内容为所有DO 当前状态。
Subscriber 功能
Step 1 开启MQTT 的DO Subscribe 功能
Step 2 MQTT 页面点选RestartService,确保设定已套用
Step 3 使用MQTTLens 发布Step 1 开启的DO 主题名称( 此范例do_all 为例)
Step 4 回到ET-2200 Web Server 的Home 页面,观察DO 状态是否与发布讯息相同
透过MQTT 实现ET-2200 的I/OPair-connection 功能
Step 1 使用ET-2200 # 1 模块的MQTTDI 页面开启State-Change Publish 功能并自订一个Topic ( 例如pair-connection)
Step 2 使用ET-2200 # 2 模块的MQTTDO 页面开启Subscribe 功能并输入Step 1设定的Topic ( 例如 pair-connection)
Step 3 回到各自的MQTT 页面点选Restart Service,确保设定已套用
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编辑过]
泓格科技(ICP DAS)成立于1993年 ,是专注于工业数据采集产品开发并行销全世界的企业。
当年畅销大陆的牛顿7000和iDAM7000模块,就是以OEM的方式由泓格生产的。多年来泓格
在工业自动化的数据采集、传输和控制领域不断耕耘,目前可以提供数百款产品。包
括:“PAC可编程自动化控制器 ”、“ 分布式I/O模块”、“ PCI和ISA接口工业数据采集卡”、“无线
通讯模块 ”“WinCE平台控制器”、“ 信号调理模块”、“ 运动控制卡”、“ 人机界面”以及“组态软
件”等等。
当年畅销大陆的牛顿7000和iDAM7000模块,就是以OEM的方式由泓格生产的。多年来泓格
在工业自动化的数据采集、传输和控制领域不断耕耘,目前可以提供数百款产品。包
括:“PAC可编程自动化控制器 ”、“ 分布式I/O模块”、“ PCI和ISA接口工业数据采集卡”、“无线
通讯模块 ”“WinCE平台控制器”、“ 信号调理模块”、“ 运动控制卡”、“ 人机界面”以及“组态软
件”等等。