如何将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”即可。

相关内容

热门资讯

玩家科普开挂!aapoker多... 玩家科普开挂!aapoker多功能真的有透视挂-本来有透视1、aapoker模拟器是什么优化,aap...
我来教教大家辅助器!wpk多功... 我来教教大家辅助器!wpk多功能真的有透视挂-本来存在有透视小薇(辅助器软件下载)致您一封信;亲爱w...
玩家必看科普辅助器!微扑克多功... 玩家必看科普辅助器!微扑克多功能真的有透视挂-好像有透视一、微扑克游戏安装教程牌型概率发牌机制”必胜...
我来教教大家透视器!wepok... 我来教教大家透视器!wepoker多功能真的有透视挂-总是有透视1)wepoker有没有挂:进一步探...
安装程序教程作弊器!红龙pok... 安装程序教程作弊器!红龙poker多功能真的有透视挂-切实真的有透视1、安装程序教程作弊器!红龙po...
推荐一款外挂!德普之星多功能真... 推荐一款外挂!德普之星多功能真的有透视挂-切实真的是有透视1、游戏颠覆性的策略玩法,独创攻略技巧玩法...
科技通报开挂!德扑圈多功能真的... 科技通报开挂!德扑圈多功能真的有透视挂-一贯真的是有透视1、德扑圈模拟器是什么优化,德扑圈俱乐部是真...
重大消息开挂!德扑之星多功能真... 重大消息开挂!德扑之星多功能真的有透视挂-其实是真的有透视1、操作简单,无需德扑之星手机版透视脚本,...
玩家必知教程作弊器!智星菠萝德... 玩家必知教程作弊器!智星菠萝德州多功能真的有透视挂-切实是真的有透视1、每一步都需要思考,不同水平的...
今日百科透视器!aapoker... 今日百科透视器!aapoker多功能真的有透视挂-一直是有透视1、这是跨平台的aapoker轻量版有...