当前位置: 首页 > news >正文

使用IOT-Tree消息流MQTT模块节点实现监测数据推送功能

 IOT-Tree Server是个开源物联网软件,可以作为组态软件成为自动化系统的上位软件。她提供了接入、数据组织管理、控制逻辑和人机交互多个方面的功能。IOT-Tree消息流功能是在规整接入各种设备数据之后,提供的功能块组合配置支持(直观快速),通过她你可以在大部分场合快速实现数据的处理——存储、转换、发送等。

本文专门以实际使用案例介绍MQTT这个模块节点的使用。

1 案例背景

本案例是一个工业现场,使用IOT-Tree对接西门子PLC S7-1200获取了设备相关数据。对接使用了驱动“Siemens TCP/IP Ethernet”。配置数据标签如下:

项目要求现场IOT-Tree实例要通过云端MQTT Broker提供的消息接口进行数据收集和指令下达。其中,采集标签数据定时10秒向云端服务器主动推送一次,而报警标签只要有触发,则必须马上推送到云端系统中。另外,云端还要能够支持向现场设备推送一些参数调整指令,IOT-Tree要能够根据指令消息包,修改PLC里面的一些数据点。相关消息包全部使用JSON格式,并且每一种消息对应的主题如下:

MQTT主题主题标题主题详细说明备注
/dev1/update设备1数据由工业现场IOT-Tree向云端MQTT Broker推送的采集数据,定时10秒推送一次生产者
/dev1/alm设备1报警由工业现场IOT-Tree向云端MQTT Broker推送的报警数据,触发时和解除时都要推送生产者
/plat/cmd/chg_tar_temp云端指令-修改目标温度由云端向工业现场IOT-Tree推送的指令,用来修改消费者

1.1 MQTT协议

MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅消息传输协议,专为低带宽、高延迟或不稳定的网络环境设计。最初由 IBM 和 Eurotech 开发,现已成为 OASIS 标准,广泛应用于物联网(IoT)、移动应用和嵌入式系统。

  • MQTT 核心特性

轻量级:协议头最小仅 2 字节,适合资源受限的设备。
发布/订阅模型:支持多对多通信,解耦消息生产者和消费者。
低功耗:适合电池供电的设备,如传感器和可穿戴设备。
三种服务质量(QoS):
QoS 0:最多一次(可能丢失消息)。
QoS 1:至少一次(确保送达,可能重复)。
QoS 2:恰好一次(严格保证不重复)。
保留消息:代理(Broker)可存储最新消息,供新订阅者立即获取。

  • MQTT 基本组件

客户端(Client):发布或订阅消息的设备或应用。
代理(Broker):负责接收、过滤和转发消息的中间服务器。
主题(Topic):消息的分类标识符,采用层级结构(如 sensor/temperature)。

  • MQTT 工作原理

客户端通过 TCP/IP 连接代理,订阅感兴趣的主题。
发布者发送消息到主题,代理将消息转发给所有订阅者。
支持通配符:+ 匹配单层,# 匹配多层(如 sensor/#)。

1.2 IOT-Tree接入和数据组织

此部分内容,本文也不重复了,如果不熟悉,请参考如下内容:

https://gitcode.com/jasonzhu8888/iot-tree

https://github.com/bambooww/iot-tree

机房自动化监控手把手分享给你 - 2 温湿度传感器的对接

机房自动化监控手把手分享给你 - 3 漏水传感器的对接 

机房自动化监控手把手分享给你 - 4 空调设备对接

机房自动化监控手把手分享给你 - 5 电流监测模块对接

机房自动化监控手把手分享给你 - 6 UPS设备对接

2 MQTT模块节点配置

2.1 新增MQTT模块节点

在你的IOT-Tree项目管理界面左下角,你可以添加一个消息流,点击之后,可以看到消息流具体配置界面,你可以在配置界面左边列表选择网络分类下的“MQTT”节点,拖拽到配置区就完成了节点的添加。如下图:

双击刚刚添加的MQTT节点,可以看到弹出配置界面。你可以在里面进行详细配置。

2.2 配置MQTT

2.2.1 配置主界面说明

在MQTT节点弹出界面中,你可以设置MQTT Broker和端口,并且目前此节点支持用户和密码验证方式。这些内容需要根据Broker提供的相关信息进行设置。

主界面下方有生产者和消费者两个配置区域,这两个区域分别对应此MQTT需要发送数据的主题列表和需要监听接收消息的主题列表。点击新增或点击已经建立主题的修改按钮,可以新增或编辑对应的主题信息。

2.2.2 生产者和消费者主题编辑

2.2.3 配置之后关联节点

以上配置全部确定完成之后,你可以看到此MQTT模块节点会自动生成几个关联节点,每个节点对应一个主题。如果是生产者主题,则节点有个输入端口,可以在消息流中接收输入消息并推送;而对于消费者主题,则生成的节点会有输出端口,如果节点收到服务器端MQTT Broker的数据包之后,会在对应节点端口输出消息,由此可以被消息流中的其他节点处理。

3 消息流数据交换完善

有了上面三个自动生成的主题节点,我们可以根据项目中需要采集的标签数据和报警标签,配置相关的节点来完成最终运行流程。

3.1 采集数据定时发送设置

添加“定时触发器”节点,配置触发时间间隔为10秒;后续添加标签读取过滤器节点,这个节点可以过滤需要的标签,并自动形成JSON数据输出。然后把此JSON数据输出连接"/dev1/update"主题节点的输入。这就完成了间隔10秒采集一次数据并推送到云端的功能。

3.2 报警数据触发/解除发送设置

添加“标签事件/报警触发器"节点,并把触发输出和解除输出都接入到"/dev1/alm"这个主题节点。这样当项目标签报警触发和解除使得时候,都会有对应的JSON消息被自动推送。

3.3 云端指令接收处理

当云端发送"/plat/cmd/chg_tar_temp”主题消息时,这个主题节点就会在输出端子输出云端的指令数据。因此,在此节点后方,新增一个"标签数据写入"节点,内部可以根据JSON数据格式配置需要写标签内容(这样会同时把具体的指令写入到PLC中)。

http://www.dtcms.com/a/398969.html

相关文章:

  • 网站开发团队取什么名字好监测网站空白栏目
  • PyTorch 神经网络构建方法总结
  • 案例分享|当Scrum沦为“精致的”形式主义
  • 【Linux网络】UDP协议
  • 【GPT入门】第70课 ragflow简单入门
  • 做任务可以给钱的网站企业网站优化要多少钱
  • 【UPPAAL】uppaal安装|含问题解决
  • 如何区分恶意爬虫与搜索引擎流量,保护数据不被窃取
  • 天津网站备案在哪照相织梦网站安装出现dir
  • Spring IOC :控制反转与依赖注入的深入剖析与实践
  • Verilog语法学习EP11:串口发送模块
  • 【UE·网络篇】ReplicationGraph入门教程
  • 安阳做推广网站html网页小游戏代码
  • HTML,CSS,JS
  • 用CodeBuddy Code CLI构建现代化Vue待办事项应用的完整实战
  • 前端实现网页水印防移除的实战方案
  • 1,LVGL(V8.3.10版本)裸机移植教程
  • 重庆做网站 外包公司百度关键词收录
  • 探索TCP与TCP6连接的关系:netstat找不到tcp接口?
  • 商城网站建设哪家效益快产品推销文案
  • display vlan 概念及题目
  • Composer Deprecation Notice 警告:为什么会出现?如何解决?
  • Python 中常用的数据分析绘图库解析
  • 甜点网站里的新闻资讯怎么做如何做国际网站
  • 怎么知道Redis 6+ 是否启用 ACL
  • three.js ——文字
  • 中山市智能h5网站建设公司wordpress电视剧
  • 个人网站域名一级a做爰片免费网站黄
  • mac m4电脑运行 LLaMA Factory 微调
  • 基于Python的二手房价格数据分析预测系统