如何使用Node-RED采集西门子PLC数据通过MQTT协议实现数据交互并WEB组态显示

news2025/4/21 21:28:43

需求概述

本章节主要实现一个流程:使用纵横智控EG网关通过Node-red(可视化编程)采集PLC数据,并通过MQTT协议和VISION(WEB组态)实现数据交互。

以采集西门子PLC为例,要采集的PLC的IP、端口和点位地址如下:

PLC

S7-1200

IP

192.168.0.59/102

地址

数据类型

属性

I0.0

Boolean

只读

I0.1

Boolean

只读

DB1.DBD0

Float

读/写

DB1.DBD2

Float

读/写

(!!!本章节不限制PLC类型,全部PLC通用,演示使用的西门子S7-1200)

需求分析

Node-red配置:

第一步:采集PLC数据

第二步:创建MQTT Broker(MQTT服务端)

第三步:创建MQTT发布消息

第四步:创建MQTT订阅消息(需要写变量时创建)

VISION配置:

第一步:创建MQTT设备

第二步:创建MQTT订阅消息

第三步:创建MQTT发布消息(需要写变量时创建)

需求实现

Node-red配置

第一步:采集PLC数据

此处为采集PLC数据,不在过多赘述,可参考PLC对接案例。

此处为语雀内容卡片,点击链接查看:西门子 S7 协议 · IOTRouter

此处为语雀视频卡片,点击链接查看:WEB组态-西门子PLC数据采集2.mp4

💡注入节点用于设置采集周期,根据实际情况调整周期时间。

第二步:建立MQTT Broker(服务端)

使用MQTT Broker节点创建一个本地MQTT服务,创建MQTT服务端的主要目标是搭建一个消息传递平台,该平台能够Node-redVISION作为客户端进行无缝的数据交互。

本示例设置为:端口1883。因为是本机通信,MQTT Client在配置服务器地址时请填:127.0.0.1。

此处为语雀视频卡片,点击链接查看:WEB组态-建立MQTT Broker.mp4

第三步:创建MQTT发布消息

发布消息,即将Node-red采集到的数据,通过MQTT发送给VISION。主题内容可自定义,本示例设置发布主题为:/send

此处为语雀视频卡片,点击链接查看:WEB组态-建立MQTT发布(2).mp4

第四步:创建MQTT订阅消息(不需要控制可以忽略此步骤)

订阅消息,即接收来自VISION组态发送的控制消息并响应给PLC。本示例接收DB1.DBD0DB1.DBD2的控制命令。 订阅主题设置为/X/#形式,可以接收所有符合/X/X格式的发布主题的数据。这种设置便于通过一个订阅主题同时接收多个不同发布主题的数据。

此处为语雀视频卡片,点击链接查看:WEB组态-创建MQTT订阅.mp4

注意:由于写入成功后,PLC节点也会发送响应信息,为避免将写成功的响应误认为是采集数据,需要添加条件判断以过滤数据。可参考以下设置进行配置:

此处为语雀视频卡片,点击链接查看:WEB组态-过滤写响应1.mp4

VISION配置

第一步:创建MQTT设备

创建设备选择MQTT协议,填好MQTT参数,如果连接正常,左下角会有绿色指示灯常亮。

此处为语雀视频卡片,点击链接查看:WEB组态-创建MQTT设备.mp4

第二步:创建MQTT订阅消息

订阅消息,即接收来自Node-red发布的消息。

点击搜索按钮,可以查看到当前可用的主题及其消息内容,选择Node-red创建的MQTT发布主题的消息进行订阅。

此处为语雀视频卡片,点击链接查看:WEB组态-订阅数据1.mp4

第三步:创建MQTT发布消息(不需要控制可以忽略此步骤)

发布消息,即向Node-red发送控制命令。 本示例中需要控制DB1.DBD0DB1.DBD2两个变量,因此需要创建两个发布数据标签,发布主题格式按照Node-red配置第四步设置的/rend/X形式进行配置即可。

注意:向有效荷载添加属性的键值需要设置和Node-red采集PLC时配置的数据名称一致。

此处为语雀视频卡片,点击链接查看:WEB组态-发布数据1.mp4

至此整个读写流程的数据创建就已经创建完成,接下来只需要将控件和数据标签绑定即可实现数据的监测。

👇👇了解更多👇👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2339675.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【cocos creator 3.x】速通3d模型导入, 模型创建,阴影,材质使用,模型贴图绑定

1、右键创建平面,立方体 2、点击场景根节点,shadows勾选enabled3、点击灯光,shadow enabled勾选 4、点击模型,勾选接收阴影,投射阴影(按照需要勾选) 5、材质创建 6、选中节点,找…

驱动开发硬核特训 · Day 15:电源管理核心知识与实战解析

在嵌入式系统中,电源管理(Power Management)并不是“可选项”,而是实际部署中影响系统稳定性、功耗、安全性的重要一环。今天我们将以 Linux 电源管理框架 为基础,从理论结构、内核架构,再到典型驱动实战&a…

【零基础】基于DeepSeek-R1与Qwen2.5Max的行业洞察自动化平台

自动生成行业报告,通过调用两个不同的大模型(DeepSeek 和 Qwen),完成从行业趋势分析到结构化报告生成的全过程。 完整代码:https://mp.weixin.qq.com/s/6pHi_aIDBcJKw1U61n1uUg 🧠 1. 整体目的与功能 该脚本实现了一个名为 ReportGenerator 的类,用于: 调用 DeepSe…

C 语言联合与枚举:自定义类型的核心解析

目录 1.联合体 1.1联合体的声明与创建 1.2联合体在内存中的存储 1.3相同成员的结构体与内存比较 1.4联合体内存空间大小的计算 1.5联合体的应用 2.枚举类型 2.1枚举变量的声明 2.2枚举变量的优点 2.3枚举的使用 上篇博客中,我们通过学习了解了C语言中一种自…

基于Canal+Spring Boot+Kafka的MySQL数据变更实时监听实战指南

前期知识背景 binlog 什么是binlog 它记录了所有的DDL和DML(除 了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL 的二进制日志是事务安全型的。一般来说开启二进制日志大概会有1%的性能损耗。 binlog分类 MySQL Bi…

MySQL运维三部曲初级篇:从零开始打造稳定高效的数据库环境

文章目录 一、服务器选型——给数据库一个舒适的家二、系统调优——打造高性能跑道三、MySQL配置——让数据库火力全开四、监控体系——数据库的体检中心五、备份恢复——数据安全的最后防线六、主从复制——数据同步的艺术七、安全加固——守护数据长城 引言:从小白…

【MySQL】MySQL的基础语法及其语句的介绍

1、基础语法 mysql -h【主机名】 -u【用户名】 -p //登录MySQL exit或quit; //退出MySQL show database; //查看MySQL下的所有数据库 use 【数据库名】; //进入数据库 show tables; //查看数据库下的所有表名 *MySQL的启动和关闭 &am…

【计算机视觉】三维视觉项目 - Colmap二维图像重建三维场景

COLMAP 3D重建 项目概述项目功能项目运行方式1. 环境准备2. 编译 COLMAP3. 数据准备4. 运行 COLMAP 常见问题及解决方法1. **编译问题**2. **运行问题**3. **数据问题** 项目实战建议项目参考文献 项目概述 COLMAP 是一个开源的三维重建软件,专注于 Structure-from…

ALSA架构学习2(驱动MAX98357A)

1 前言和环境 之前其实写过两篇,一篇是讲ALSA,一篇是I2S。 ALSA架构学习1(框架)_alsa框架学习-CSDN博客 总线学习5--I2S_max98357接喇叭教程-CSDN博客 在ALSA那篇的结尾,也提了几个小练习。比如: ### 4…

数据结构*集合框架顺序表-ArrayList

集合框架 常见的集合框架 什么是顺序表 顺序表是一种线性表数据结构,它借助一组连续的存储单元来依次存储线性表中的数据元素。一般情况下采用数组存储。 在数组上完成数据的增删查改。 自定义简易版的顺序表 代码展示: public interface IArray…

VMware Workstation 保姆级 Linux(CentOS) 创建教程(附 iso)

文章目录 一、下载二、创建 一、下载 CentOS-7.9-x86_64-DVD-2009.iso 二、创建 VMware Workstation 保姆级安装教程(附安装包) VMware Workstation 保姆级安装教程(附安装包) VMware Workstation 保姆级安装教程(附安装包)

软考-信息系统项目管理师-2 信息技术发展

总结思维导图 云计算(掌握) (3)多租户和访问控制管理访问控制管理是云计算应用的核心问题之一云计算访问控制的研究主要集中在云计算访问控制模型、基于ABE密码体制的云计算访问控制、云中多租户及虚拟化访问控制研究云中多租户及虚拟化访问控制是云计算的典型特征。 大数据(…

Spring Boot JPA 开发之Not an entity血案

项目状况介绍 项目环境 JDK 21Spring Boot 3.4.3Hibernate: 6.6.13.Final项目描述 因为是微服务架构,项目层级如下 project-parent project-com project-A … project-X 其中: project-parent定义依赖库的版本project-com 定义了一些公用的方法和配置,包括持久层的配置。…

HTMLCSS实现轮播图效果

这段代码实现了一个具有自动轮播、手动切换功能的图片轮播图,并且配有指示器(小圆点)来显示当前图片位置。轮播图可通过左右箭头按钮进行手动切换,也能自动定时切换,当鼠标悬停在轮播图上时,自动轮播会暂停…

嵌入式学习——opencv图像库编程

环境配置 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和图像处理库,广泛用于各种计算机视觉任务,如图像处理、视频分析、人脸识别、物体检测、机器学习等。它提供了丰富的函数和工具,用于处理…

【每日八股】复习 MySQL Day1:事务

文章目录 复习 MySQL Day1:事务MySQL 事务的四大特性?并发事务会出现什么问题?MySQL 事务的隔离级别?不同事务隔离级别下会发生什么问题?MVCC 的实现原理?核心数据结构版本链构建示例可见性判断算法MVCC 可…

外接键盘与笔记本命令键键位不同解决方案(MacOS)

文章目录 修改键位第一步:打开设置第二步:进入键盘快捷键第三步:修改修饰键设置第四步:调整键位第五步:保存设置tips ikbc c87键盘win键盘没反应的解决亲测的方法这是百度的答案标题常规组合键尝试‌:型号差…

kotlin知识体系(五) :Android 协程全解析,从作用域到异常处理的全面指南

1. 什么是协程 协程(Coroutine)是轻量级的线程,支持挂起和恢复,从而避免阻塞线程。 2. 协程的优势 协程通过结构化并发和简洁的语法,显著提升了异步编程的效率与代码质量。 2.1 资源占用低(一个线程可运行多个协程)…

vscode stm32 variable uint32_t is not a type name 问题修复

问题 在使用vscodekeil开发stm32程序时,发现有时候vscode的自动补全功能失效,且problem窗口一直在报错。variable “uint32_t” is not a type name uint32_t 定义位置 uint32_t 实际是在D:/Keil_v5/ARM/ARMCC/include/stdint.h中定义的。将D:/Keil_v5…

Formality:Bug记录

相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 本文记录博主在使用Synopsys的形式验证工具Formality中遇到的一个Bug。 Bug复现 情况一 // 例1 module dff (input clk, input d_in, output d_out …