通过AIoTedge或ThingsKit物联网平台内置的Node-RED读取OPC-UA
《通过AIoTedge或ThingsKit物联网平台内置的Node-RED读取OPC-UA》
一、引言
随着工业物联网(IIoT)的快速发展,设备之间的互联互通变得至关重要。OPC-UA(Open Platform Communications Unified Architecture)作为一种广泛应用于工业领域的标准化通信协议,能够实现不同厂商设备之间的数据交互。而Node-RED作为一种基于流的开发工具,以其简单易用、灵活高效的特点,在物联网开发中备受青睐。本文将介绍如何借助AIoTedge或ThingsKit物联网平台内置的Node-RED来读取OPC-UA数据,实现工业设备数据的采集与处理。
二、OPC-UA简介
OPC-UA是一种面向工业自动化的通信协议,旨在实现不同设备、系统和应用程序之间的无缝数据交换。它具有以下特点:
- 跨平台性:支持多种操作系统和硬件平台,能够广泛应用于各种工业环境中。
- 安全性:通过加密和认证机制保障数据传输的安全性,防止数据泄露和未授权访问。
- 互操作性:遵循标准化规范,确保不同厂商设备之间的兼容性和互操作性。
- 灵活性:支持多种数据模型,能够满足不同工业场景下的数据采集和处理需求。
三、Node-RED简介
Node-RED是一个基于Node.js的低代码开发工具,通过可视化编程的方式,将不同的功能模块(节点)组合成数据流,实现数据的采集、处理和传输。它具有以下优势:
- 易用性:通过拖拽节点和连线的方式构建数据流,无需复杂的编程知识,降低了开发门槛。
- 丰富的节点库:提供了大量的预定义节点,涵盖了数据采集、处理、存储、通信等多个方面,能够满足各种开发需求。
- 可扩展性:支持用户自定义节点,可以根据实际需求开发新的功能模块,扩展其应用范围。
- 社区支持:拥有活跃的开发者社区,提供了丰富的教程、示例和插件,便于开发者学习和交流。
四、AIoTedge与ThingsKit物联网平台概述
(一)AIoTedge
AIoTedge是一个面向工业物联网的边缘计算平台,旨在将人工智能(AI)和物联网(IoT)技术相结合,实现边缘设备的智能化管理和数据处理。它支持多种协议的接入,包括OPC-UA,并通过内置的Node-RED提供了强大的数据流编排能力,能够快速构建工业物联网应用。
(二)ThingsKit
ThingsKit是一个综合性的物联网平台,提供了设备管理、数据采集、数据分析、可视化展示等功能。它内置了Node-RED,使得开发者可以方便地通过Node-RED读取和处理各种设备数据,包括OPC-UA数据。ThingsKit还提供了丰富的设备接入协议支持和云平台服务,能够满足从设备接入到数据分析的全流程需求。
五、通过Node-RED读取OPC-UA数据的实现步骤
(一)安装与配置OPC-UA服务器
在开始之前,需要确保目标工业设备或系统已经配置了OPC-UA服务器,并且该服务器能够正常运行。OPC-UA服务器负责将设备数据封装为OPC-UA协议格式,供客户端访问。常见的OPC-UA服务器软件有OPC Foundation的官方实现、Kepware OPC Server等。安装并配置好OPC-UA服务器后,需要记录下服务器的IP地址、端口号以及需要访问的节点路径等信息,这些信息将用于后续的Node-RED配置。
(二)在AIoTedge或ThingsKit平台中启动Node-RED
- AIoTedge平台:
- 登录AIoTedge平台,进入边缘设备管理界面。
- 选择目标边缘设备,启动Node-RED服务。通常,AIoTedge平台会提供一个简单的启动按钮或命令行工具来启动Node-RED。
- 启动后,通过浏览器访问Node-RED的可视化编辑界面,通常地址为http://<边缘设备IP>:1880。
- ThingsKit平台:
- 登录ThingsKit平台,进入物联网应用开发界面。
- 在应用开发环境中找到Node-RED模块并启动。ThingsKit平台可能会提供一个集成的Node-RED开发环境,方便用户直接在平台上进行操作。
- 启动后,同样通过浏览器访问Node-RED的可视化编辑界面,开始构建数据流。
(三)安装OPC-UA节点
Node-RED本身并不直接支持OPC-UA协议,需要安装专门的OPC-UA节点来实现与OPC-UA服务器的通信。在Node-RED的编辑界面中,点击右上角的“管理面板”(通常是一个齿轮图标),进入“节点”管理页面。在搜索框中输入“OPC-UA”或“node-red-contrib-opcua”,找到相关的OPC-UA节点包并安装。安装完成后,Node-RED将自动加载该节点,使其可以在数据流中使用。
(四)构建OPC-UA数据读取流
- 添加OPC-UA连接节点:
- 在Node-RED编辑界面中,从左侧节点库中拖拽一个OPC-UA连接节点到工作区。
- 双击该节点,进入配置界面。在配置界面中,输入OPC-UA服务器的IP地址、端口号以及连接的安全策略等信息。如果OPC-UA服务器需要认证,还需要填写相应的用户名和密码。
- 点击“完成”按钮,保存配置。
- 添加OPC-UA读取节点:
- 从节点库中拖拽一个OPC-UA读取节点到工作区,并将其连接到之前配置好的OPC-UA连接节点。
- 双击OPC-UA读取节点,进入配置界面。在配置界面中,指定需要读取的OPC-UA节点路径。节点路径通常是一个以“ns=;s=”格式表示的字符串,例如“ns=2;s=Demo.Static.Scalar.Int32”。
- 设置读取的频率,即每隔多长时间读取一次数据。可以根据实际需求选择合适的读取频率,例如每秒读取一次或每分钟读取一次。
- 点击“完成”按钮,保存配置。
- 添加数据处理节点(可选):
- 如果需要对读取到的OPC-UA数据进行进一步处理,例如数据转换、过滤、计算等,可以拖拽相应的数据处理节点到工作区,并将其连接到OPC-UA读取节点的输出端。
- 根据实际需求配置数据处理节点的参数,实现所需的数据处理功能。
- 添加数据输出节点:
- 为了将读取到的OPC-UA数据发送到其他系统或进行可视化展示,需要添加一个数据输出节点。常见的数据输出节点包括调试节点(用于在Node-RED调试控制台中查看数据)、HTTP请求节点(用于将数据发送到云平台或其他应用程序)、MQTT节点(用于将数据发布到消息队列中)等。
- 将数据输出节点连接到数据处理节点的输出端(如果添加了数据处理节点)或OPC-UA读取节点的输出端。
- 配置数据输出节点的参数,例如调试节点不需要额外配置,HTTP请求节点需要填写目标URL、请求方法、请求头等信息,MQTT节点需要填写MQTT代理服务器地址、端口号、主题等信息。
- 部署数据流:
- 完成数据流的构建后,点击Node-RED编辑界面右上角的“部署”按钮,将数据流部署到运行环境中。
- 部署完成后,Node-RED将自动启动数据流,开始按照配置的逻辑读取OPC-UA数据,并进行相应的处理和输出。
(五)测试与验证
- 查看调试信息:
- 在Node-RED的调试控制台中查看OPC-UA数据读取的结果。如果添加了调试节点,读取到的数据将显示在调试控制台中。通过查看调试信息,可以确认数据是否正确读取以及数据格式是否符合预期。
- 验证数据输出:
- 根据配置的数据输出节点类型,验证数据是否成功发送到目标系统或应用程序。例如,如果使用HTTP请求节点将数据发送到云平台,可以在云平台上查看接收到的数据;如果使用MQTT节点将数据发布到消息队列中,可以使用MQTT客户端工具订阅相应的主题,查看发布的数据。
- 检查OPC-UA服务器日志:
- 查看OPC-UA服务器的日志,确认是否有来自Node-RED的连接请求和数据读取操作。通过服务器日志可以进一步确认数据读取过程是否正常,以及是否存在权限问题或其他异常情况。
六、实际应用场景与案例分析
(一)工业设备数据监控
在工业生产环境中,通过AIoTedge或ThingsKit平台内置的Node-RED读取OPC-UA数据,可以实现对工业设备运行状态的实时监控。例如,读取设备的温度、压力、转速等关键参数,并将这些数据发送到云平台进行存储和分析。通过在云平台上设置数据可视化界面,操作人员可以直观地查看设备
相关文章:
通过AIoTedge或ThingsKit物联网平台内置的Node-RED读取OPC-UA
《通过AIoTedge或ThingsKit物联网平台内置的Node-RED读取OPC-UA》 一、引言 随着工业物联网(IIoT)的快速发展,设备之间的互联互通变得至关重要。OPC-UA(Open Platform Communications Unified Architecture)作为一种…...
《大模型开源与闭源的深度博弈:科技新生态下的权衡与抉择》
开源智能体大模型的核心魅力,在于它构建起了一个全球开发者共同参与的超级协作网络。想象一下,来自世界各个角落的开发者、研究者,无论身处繁华都市还是偏远小镇,只要心怀对技术的热爱与追求,就能加入到这场技术狂欢中…...
genicamtl_lmi_gocator_objectmodel3d
目录 一、在halcon中找不到genicamtl_lmi_gocator_objectmodel3d例程二、在halcon中运行genicamtl_lmi_gocator_objectmodel3d,该如何配置三、代码分段详解(一)传感器连接四、代码分段详解(二)采集图像并显示五、代码分…...
Node.js 24发布:性能与安全双提升
在科技的迅速发展中,Node.js作为一个备受青睐的开源跨平台Java运行环境,近日迎来了其24.0版本的正式发布。此次更新不仅承诺提升性能和安全性,还为开发者提供了更为顺畅的开发体验,值得我们深入探讨。 Node.js 24.0的最大亮点之一…...
是德科技 | 单通道448G未来之路:PAM4? PAM6? PAM8?
内容来源:是德科技 随着数据中心规模的不断扩大以及AI大模型等技术的兴起,市场对高速、大容量数据传输的需求日益增长。例如,AI训练集群中GPU等设备之间的互联需要更高的传输速率来提升效率。在技术升级方面,SerDes技术的不断进步…...
Dify智能体开发实践
1.聊天助⼿:创建技术⽀持问答机器⼈,通过提示词约束回答范围并引导追问澄清。 1.提示词 (1)技术支持机器人提示词 你是一位专业的技术支持机器人,专门为公司的各类技术产品和服务提供支持。你的回答范围严格限制在以下…...
网络安全之APP渗透测试总结
1、脱壳 360免费版加固,frida-dexdump、blackdex都可以脱掉。这里就不演示了 GitHub - hluwa/frida-dexdump: A frida tool to dump dex in memory to support security engineers analyzing malware. 2、密码泄露 经过对app登录界面,有对密码强度进行…...
笔记:NAT
一、NAT 的基本概念 NAT(Network Address Translation,网络地址转换) 是一种在 IP 网络中重新映射 IP 地址的技术,主要用于解决 IPv4 地址短缺问题,同时提供一定的网络安全防护作用。 功能: 将内部网络&am…...
民锋视角下的多因子金融分析模型实践
在当前金融市场环境中,数据粒度与因子建模逐渐成为提升交易系统稳定性的重要方式。民锋长期专注于模型优化与策略深度挖掘,提出了一套适用于中短周期的数据判断体系,核心在于“多因子融合动态调权”。 具体而言,民锋的分析框架常…...
ThinkPHP 根据路由文件获取路由列表
定义一个路由变量 比如我们要获取admin的路由 $routeFile "admin.php"; 清除路由 调用 Route::clear() 方法,清除当前已定义的所有路由。 Route::clear();设置路由懒加载 调用 Route::lazy(false) 方法,禁用路由的懒加载功能,选择立即加…...
算法打卡第三天
10.长度最小的子数组 (力扣209题) 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度**。**如果不存在符合条件的子…...
04_spring容器管理单例多例
文章目录 1. 单例(Singleton)2. 多例(Prototype)3. 使用场景4. 注意事项 在Spring框架中,Spring容器负责创建、配置和管理应用程序中的bean。关于单例(Singleton)和多例(Prototype&a…...
算法C++最大公约数
原理 代码实现 #include <stdio.h>// 递归版本 int gcd_recursive(int a, int b) {if (b 0) return a; // 终止条件:余数为0时,除数即为GCDreturn gcd_recursive(b, a % b); // 递归调用,更新为(b, a%b) }// 迭代版本 int gcd_iterat…...
在 Ubuntu 下通过 C APP程序实现串口发送数据并接收返回数据
一、前言 使用 C 应用进行串口调用需要手动配置串口的各项参数,并且 Ubuntu 下的串口是通过读写文件实现的,所以还需要设置权限。 二、源码分析 serial.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <…...
ubuntu24.04+RTX5090D 显卡驱动安装
初步准备 Ubuntu默认内核太旧,用mainline工具安装新版: sudo add-apt-repository ppa:cappelikan/ppa sudo apt update && sudo apt full-upgrade sudo apt install -y mainline mainline list # 查看可用内核列表 mainline install 6.13 # 安装…...
ubuntu22.04上运行opentcs6.4版本
1、下载github上的源码: openTCS - Downloads 2、安装java21 我的版本是:java --version java 21.0.6 2025-01-21 LTS Java(TM) SE Runtime Environment (build 21.0.68-LTS-188) Java HotSpot(TM) 64-Bit Server VM (build 21.0.68-LTS-188, mixed mo…...
labelme进行关键点标注并转换为yolo格式
目录 1、labelme安装和打开2、边界框和关键点标注3、将lamelme的json格式转成yolo可以使用的txt格式4、将数据和标签按照9比1分为训练集和测试集 1、labelme安装和打开 在python3.9及以上环境中安装labelme,labelme要用到pyqt,所以在使用labelme之前要安…...
每日算法-250521
每日算法学习 大家好!这是我今天的算法练习记录,分享四道 LeetCode 题目的解题思路和代码。希望能对大家有所帮助! 219. 存在重复元素 II 题目 思路 哈希表 利用哈希表来存储数组中元素及其最近出现的索引。 解题过程 当我们遍历数组 num…...
正大模型视角下的高频交易因子构建策略研究
正大模型视角下的高频交易因子构建策略研究 在金融衍生品交易体系中,数据主导型模型逐渐成为核心竞争力。以正大为代表的量化团队,通过大量历史数据研究,构建出一套基于高频因子的模型框架,从成交节奏、盘口行为、价格波动等维度动…...
Babylon.js学习之路《八、动画基础:关键帧动画与缓动效果》
文章目录 1. 引言:动画在3D场景中的核心作用2. 关键帧动画基础2.1 键帧动画原理2.2 创建简单关键帧动画 3. 缓动函数(Easing Functions)3.1 缓动函数的作用3.2 应用缓动函数 4. 复杂动画:多属性联动与序列控制4.1 同时控制位置、旋…...
小满未满,是成长的序章
节气小满,昭示着奋斗正当时,Codigger 怀揣热忱,在代码的天地里披荆斩棘,向着圆满目标大步迈进 。...
JavaWeb 开发流程
项目建立 SpringBoot框架构建 Spring Boot 是基于 Spring 框架的开源 Java 基础框架,用于创建独立、生产级的基于 Spring Framework 的应用程序。 我们可以使用IDEA建立SpringBoot框架。 语言选择Java,类型选择Maven,JDK和Java要保持一致&…...
Cmake 使用教程
介绍 CMake 是一个开源、跨平台的构建系统,主要用于软件的构建、测试和打包。CMake 使用平台无关的配置文件 CMakeLists.txt 来控制软件的编译过程,并生成适用于不同编译器环境的项目文件。例如,它可以生成 Unix 系统的 Makefile 、 Win…...
CLIP、ViLT 与 LLaVA:多模态模型是如何看图说话的?
一、前言:我们已经讲了 MLLM 能力,但它到底是怎么实现“看图说话”的? 在之前文章中,我们已经提到了MLLM可以看图说话以及文生图等能力,ViT统一图文多模态架构。那模型是如何处理图文信息以及不同处理所带来的能力是怎…...
基于Springboot + vue3实现的流动摊位管理系统
项目描述 本系统包含管理员、用户、商家三个角色。 管理员角色: 用户管理:管理系统中所有用户的信息,包括添加、删除和修改用户。 配置管理:管理系统配置参数,如上传图片的路径等。 权限管理:分配和管理…...
我的软考经历
说明:本文分享博主软考经验,及软考证书在找工作时的作用。 软考 软考,全称:中国计算机技术与软件专业技术资格(水平)考试,报名/考试/查询网址为,中国计算机技术职业资格网 考试分…...
C++的异常
引入:异常的意义是什么? ①:错误分离 将正常逻辑(try)与错误处理(catch)分离,避免代码被大量 if-else 污染。 ②:强制处理 若不捕获异常,程序终止,…...
精益制造数字化转型智能工厂三年规划建设方案
该文档是精益制造数字化转型智能工厂三年规划建设方案,以打造高品质、低成本、柔性化的绿色智能工厂为愿景,围绕制造技术、自动化、数智化、管理赋能四大路径,通过夯实 EHS、品质一致性、生产安定化、现场整洁四大基石,推进标杆车间打造、联合管理、TOB 流程改善等专项。规…...
Linux 文件(3)
文章目录 1. Linux下一切皆文件2. 文件缓冲区2.1 缓冲区是什么2.2 缓冲区的刷新策略2.3 为什么要有缓冲区2.4 一个理解缓冲区刷新的例子 3. 标准错误 1. Linux下一切皆文件 在刚开始学习Linux的时候,我们就说Linux下一切皆文件——键盘是文件,显示器是文…...
Java异步编程利器:CompletableFuture 深度解析与实战
精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 一、CompletableFuture 概述 CompletableFuture是Java 8引入的异步编程工具类,实现了Future和CompletionStage接口,支持链式调用、组…...
如何支持Enhanced RTMP H.265(HEVC)
在实时音视频传输中,H.264长期占据主流,但随着视频质量要求的不断提高和带宽压力的加大,H.265(HEVC)作为下一代视频编码标准逐渐崭露头角。 在这种背景下,我们顺应行业发展趋势,成功集成了对Enh…...
Idea 查找引用jar包依赖来源的Maven pom坐标
目录 问题引入 实现解决 问题引入: 在查看拉取的项目,维护自己项目、或者迁移原有项目时,会遇到不知道代码中引用到的依赖从哪里引用到的。 所以利用Idea,从import语句到Maven项目结构树中查找,最终找到pom文件里的…...
Linux操作系统之进程(二):进程状态
目录 前言 一、补充知识点 1、并行与并发 2、时间片 3、 等待的本质 4、挂起 二. 进程的基本状态 三、代码演示 1、R与S 2、T 3、Z 四、孤儿进程 总结: 前言 在操作系统中,进程是程序执行的基本单位。每个进程都有自己的状态,这些…...
web.py使用时报错AttributeError: No template named image_window
在使用python的web.py框架做前后端时遇到问题。 问题代码主要如下,当加上main(iamge_name)这行代码后就会报错。报错信息包含两个:第一是找不到image_window模板;第二是gbk无法解码... class ImageWindow:def GET(self, image_name):main(i…...
2025年度消费新潜力白皮书470+份汇总解读|附PDF下载
原文链接:https://tecdat.cn/?p42178 过去一年,消费市场在政策驱动与技术迭代中呈现结构性变革。社零总额达487,895亿元,实物商品网零额占比27%,线上渠道成为增长引擎。本报告从食品饮料、美妆护肤、家电数码、服饰户外四大核心领…...
全平台开源电子书阅读器推荐,支持多端同步+AI朗读!支持epub/mobi/azw3/pdf常见电子书格式!
Readest是一款好用的免费阅读工具,界面干净不花哨,特别适合喜欢专心读书的朋友。这个软件是经典阅读软件Foliate的全新升级版本,用最新技术开发,能在手机、电脑(包括苹果和Windows系统)以及网页上顺畅使用。…...
创建Workforce
创建你的Workforce 3.3.1 简单实践 1. 创建 Workforce 实例 想要使用 Workforce,首先需要创建一个 Workforce 实例。下面是最简单的示例: from camel.agents import ChatAgent from camel.models import ModelFactory from camel.types import Model…...
关于光谱相机的灵敏度
一、灵敏度的核心定义 光谱灵敏度(单色灵敏度) 描述光谱相机对单色辐射光的响应能力,即探测器对特定波长入射光的输出信号强度与入射光功率的比值。 例如,若在680nm波长下的光谱灵敏度较高,则表示该相机对此…...
【Redis】二、Redis常用数据类型命令学习
目录 一、String 1. SET、GET:设置与读取键值对: 2. DEL:删除键 3. INCR、DECR:自增 / 自减(常用于计数器) 4. APPEND:内容追加 5. EXPIRE:设置过期时间 / 查看剩余时间&#x…...
HarmonyOS基础组件:Button三种类型的使用
简介 HarmonyOS在明年将正式不再兼容Android原生功能,这意味着对于客户端的小伙伴不得不开始学习HarmonyOS开发语言。本篇文章主要介绍鸿蒙中的Button使用。 HarmonyOS中的Button相较于Android原生来说,功能比较丰富,扩展性高,减…...
RT_Thread——快速入门
文章目录 一、RT-Thread 目录结构二、核心文件三、移植时涉及的文件3.1 CPU 部分3.2 BSP 部分 四、内存管理五、启动流程及main函数5.1 启动流程5.2 关键函数速览5.3 main 函数示例 六、数据类型和编程规范6.1 数据类型6.2 函数名6.3 结构体定义6.4 注释规范 七、使用模拟器运行…...
Java 参数值传递机制
一个很经典的问题: java的方法入参 是值传递还是地址传递? 答案是:值传递。 今天排查一个生产问题,数据库链接资源没有关闭。 大致代码逻辑如下: try{Preparestatement ps null;String sql "select * from tableA wher…...
Redis 的 key 的过期策略是怎么实现的
在 Redis 中,有一个 expire 命令,用来设置某个 key 的过期时间,当超过这个时间后,这个 key 就被删除了,我们也就获取不到了,但是 Redis 是如何做到对于每一个设置了过期时间的 key 都能按时删除的呢&#x…...
ROG NUC 2025 :狂暴而冷静的小猛兽
在今年1 月的 CES 展会上,华硕首次披露了ROG NUC 2025,就以突破性紧凑设计桌面级超强性能配置,引发全球科技媒体和游戏爱好者的热议。蛰伏数月,蓄力进化! 华硕自承接英特尔NUC产品线以来,就一直致力于重塑迷…...
origin绘图之【如何将多条重叠、高度重叠的点线图、折线图分开】
在使用 Origin 进行数据可视化时,尤其是在绘制多组数据的折线图或点线图时,我们经常会遇到这样的问题:多条曲线重叠严重,难以区分,导致图形信息密集、可读性差,影响图表的传达效果。 那么,我们该…...
2025第一届轩辕杯--Crypto--WriteUp
2025第一届轩辕杯–Crypto–WriteUp Crypto easyrsa task e 65537 n 1000000000000000000000000000156000000000000000000000000005643 c 418535905348643941073541505434424306523376401168593325605206exp from Crypto.Util.number import inverse, long_to_bytese …...
人工智能范式:技术革命下的认知重构
当生成式AI能够自主创作内容、设计解决方案甚至编写程序时,我们正在见证的不仅是工具革新,更是一场认知范式的根本转变。人工智能范式正在重塑人类理解世界、解决问题和创造价值的基本方式——这种转变将重新定义未来十年的职业逻辑与知识体系。 一、范…...
python训练营打卡第30天
模块和库的导入 知识点回顾: 导入官方库的三种手段导入自定义库/模块的方式导入库/模块的核心逻辑:找到根目录(python解释器的目录和终端的目录不一致) 一、导入官方库 1.标准导入:导入整个库 import mathprint(&quo…...
第29天-python实现mysql数据增删改查
想用Python和Tkinter实现一个MySQL数据库的增删改查应用。首先,我需要确定用户的需求是什么。他们可能想要一个图形界面,方便操作数据库,而不需要直接写SQL语句。用户可能对Python和Tkinter有一定了解,但对如何整合数据库操作可能不太熟悉。 首先,我应该考虑如何设计界面。…...
2025.05.21华为暑期实习机考真题解析第三题
📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 03. GPU资源租赁优化 问题描述 A先生是一家云计算服务商的资源调度负责人,负责管理公司的GPU资源租赁业务。公司拥有多个高性能GPU核心,并按时间段出租给不同客户使用。每个客户有…...