如何将Node-Red作为OPC UA服务器
创始人
2025-01-21 03:33:59
0

一、内容简介

本篇内容主要介绍Node-Red如何用插件node-red-contrib-opcua来作为OPC UA服务器使用,用UaExpert用来进行连接测试。

插件node-red-contrib-opcua及UaExpert的安装请参考Node-Red如何与OPC UA服务器通讯。

二、OPC UA服务器的创建和连接

1.创建OPC UA服务器

在Node-Red左侧面板中将Opcua-Server节点拖放到工作区

双击该节点,打开属性编辑页面,记录下Port的值“53880”备用。

部署流程后可以看到OPC UA服务器正常运行。

2.UaExpert登陆

点击工具栏的“加号”按钮,打开Add Server窗口,选择Discovery选项卡

在树形列表中双击Custom Discovery下的“加号”按钮,打开URL输入对话框,输入服务器端点“opc.tcp://localhost:53880”,点击“OK”按钮确定。

可以看到在Custom Discovery下多了一个服务器,先选中服务器名“Node-RED OPCUA”下的“None”条目,Authentication Settings组合框默认选择第一项“Anonymous”,保持不变,点击“OK”按钮确定。

服务器连接成功,同时也说明Node-Red OPC UA服务器创建成功。

3.Node-Red登陆

这里我们介绍一另一种Node-Red登陆的方法,从Node-Red左侧面板中分别拖放一个inject节点、一个function节点、一个OpcUa-Client节点和一个debug节点到工作区,依次将其连接,如图

双击OpcUa-Client节点,打开属性编辑页面

点击Endpoint后的“笔型”按钮,打开Endpoint编辑页面

在Endpoint输入框输入“0”,点击“添加”按钮,完成修改,回到上级页面点击“完成”按钮,结束对OpcUa-Client节点的编辑。

双击function节点,输入如下代码:

msg.topic = "Reconnect"; msg.action = "reconnect"; msg.OpcUaEndpoint = {     credentials: {},     endpoint: 'opc.tcp://localhost:53880',     securityPolicy: 'None',     securityMode: 'None',     login: false,     user: undefined,     password: undefined } return msg;

点击“完成”按钮,确定修改,并部署流程,点击inject节点触发流,可以看到OpcUa-Client节点与服务器建立了连接。

调试窗口显示如图

三、添加元素

1.添加文件夹

从Node-Red左侧面板中施放一个inject节点和一个debug节点到工作区,使之与上面的Opcua-Server节点连接,如图

双击inject节点,打开属性编辑页面

将名称改为“添加文件夹”,在下面的列表中将msg.payload的类型改为“{} JSON”,在输入框中输入如下代码:

{"opcuaCommand":"addFolder"}

msg.topic的类型不变,在后面的输入框中输入如下代码:

ns=1;s=TestFolder

点击“完成”按钮确定修改,并部署流程。

点击inject节点触发流,在UaExpert的Address Space面板可以看到TestFolder已经添加成功。

2.选择文件夹

打开UaExpert,从Address Space面板找到文件夹“DeviceSet”

再在右侧Attributes选项卡中找到其NodeId“ns=2;i=5001”

复制“添加文件夹”节点,将其连接到Opcua-Server节点,双击打开属性编辑页面,将名称改为“选择文件夹”,msg.payload改为:

{"opcuaCommand":"setFolder"}

msg.topic改为:

ns=2;i=5001

点击“完成”之后部署流程,单独使用看不出效果,等添加变量时一起使用。

3.添加变量

复制“选择文件夹”节点,将其连接到Opcua-Server节点,双击打开属性编辑页面,将名称改为“添加变量”,msg.payload改为:

{"opcuaCommand":"addVariable"}

Msg.topic改为:

ns=1;s=TestAddVariable;datatype=Float;value=88.8

点击“完成”按钮确定修改,并部署流程。

点击“添加变量”节点触发流,在UaExpert的Address Space面板可以看到已经添加了一个名为TestAddVariable的变量。

拖动该变量到Data Access View选项卡,其值显示为88.8,添加变量的同时进行了初始化。

接下来我们再配合选择文件夹一起测试一下,重新部署Node-Red,以重新初始化OpcUa Server节点,点击“选择文件夹”节点,选择文件夹DeviceSet,再点击“添加变量”节点,调试窗口显示如下

打开UaExpert,在Address Space面板可以看到变量TestAddVariable在文件夹DeviceSet下

四、订阅

复制“添加变量”节点,将其与OpcUa Client节点连接,双击该节点,打开属性编辑页面

将名称改为“订阅”,msg.payload改为:

{ "action": "subscribe"}

msg.topic改为:

ns=1;s=TestAddVariable

订阅上面添加的变量。

点击“完成”按钮之后部署流程

部署流程之后,OpcUa Server会重新初始化,所以需要点击“添加变量”节点,重新添加变量“TestAddVariable”,再点击function节点前面的inject节点,连接服务器,再点击“订阅”节点,调试窗口显示如下

说明订阅成功,打开UaExpert,在Address Space面板找到TestAddVariable变量,在Attributes选项卡中将Value的值修改为“666”

回到Node-Red,可以在调试窗口看到其值的变化

如果您想获取文章相关的代码、工具等资料,关注公众号“NodeRed物联网”,回复“nr”即可。

相关内容

热门资讯

黑科技辅助(wepokeai代... 黑科技辅助(wepokeai代打)外挂透明挂辅助教程(透视)一贯有挂(黑科技脚本)-哔哩哔哩wepo...
透视实锤!(aaPoker)透... 透视实锤!(aaPoker)透视辅助,(AAPOKer)素来存在有挂,必胜教程,(有挂透明挂)-哔哩...
黑科技讲解!聚星扑克进去后怎么... 黑科技讲解!聚星扑克进去后怎么操作(ai辅助)太坑了是有挂(黑科技教程黑科技解说)-哔哩哔哩1、聚星...
黑科技最新(wepoke是机器... 黑科技最新(wepoke是机器发牌吗)外挂黑科技辅助插件(透视)竟然存在有挂(黑科技方法)-哔哩哔哩...
透视美元局!(AAPoker)... 透视美元局!(AAPoker)ai辅助,(aapoker)从前真的有挂,可靠教程,(有挂详细)-哔哩...
黑科技ai!wpk积分后台管理... 黑科技ai!wpk积分后台管理系统(黑科技)太坑了是有挂(wpk教程黑科技工具)-哔哩哔哩1、wpk...
黑科技智能ai(aapoker... 黑科技智能ai(aapoker俱乐部)外挂透明挂辅助app(透视)原来有挂(黑科技解密)-哔哩哔哩1...
7分钟黑科技!德扑之星ai代打... 7分钟黑科技!德扑之星ai代打怎么弄,(德扑之星)切实存在有挂,介绍教程(有挂详细)-哔哩哔哩1、全...
黑科技好牌!wepoke用模拟... 黑科技好牌!wepoke用模拟器(黑科技)太坑了存在有挂(透牌教程黑科技教程)-哔哩哔哩wepoke...
黑科技有挂(德州之星app有外... 黑科技有挂(德州之星app有外挂吗)外挂透视辅助神器(透视)都是真的是有挂(黑科技解说)-哔哩哔哩1...