Node-Red如何与OPC UA服务器通讯

一、内容简介

本篇内容主要介绍Node-Red如何通过插件node-red-contrib-opcua来从OPC UA服务器读写数据,仍然用KEPServer来模拟OPC UA服务器,UaExpert用来测试连接和获取变量NodeId。

  • 二、环境搭建

KEPServer的安装参考文章Node-Red如何与OPC DA服务器通讯。

安装UaExpert没有太多要注意的地方,依次下一步就行了

接下来安装插件node-red-contrib-opcua,点击Node-Red工作区右上角的主菜单->节点管理菜单项,在打开的窗口中定位到“控制板”标签,再点击“安装”选项卡,在搜索框中输入“opcua”搜索插件。

再点击插件node-red-contrib-opcua右下角的“安装”按钮安装插件,如果插件已安装,则该按钮不可用,可以跳过以上安装步骤,安装完成之后工作区左侧面板显示如下:

  • 三、连接OPC UA服务器

1.Node-Red匿名登陆

打开KEPServerEX 6 Configuration,如下图

在左侧树型列表中的“项目”上右击鼠标,再点击弹出的“属性”菜单,打开属性编辑器

在左侧列表中选择“OPC UA”选项,在右侧表格中将“启用”设置为“是”,将“允许匿名登录”也设置为“是”,其余保持不变,如下所示

打开KEPServerEX 6 Administration,在任务栏托盘上会显示KEPServerEX的图标,右击托盘上的图标,选择“OPC UA 配置”选项打开OPC UA配置管理器,选择“服务器端点”选项卡,如图

双击第一条,打开编辑页面

安全策略只勾选“无”,其它都不选,复制端点“opc.tcp://127.0.0.1:49320”,后面要用到,注意,如果“服务器端点”选项卡中没有端点,则需要点击“添加”按钮添加端点。

从Node-Red左侧面板中将节点OpcUa-Client拖放到工作区,双击节点打开编辑页面

Node-Red如何与OPC UA服务器通讯

在Endpoint下拉列表中选择“添加新的 OpcUa-Endpoint 节点”选项,再点击右侧“笔型”按钮,打开Endpoint节点配置页面,在Endpoint 输入框中输入上面复制的端点“opc.tcp://127.0.0.1:49320”,勾选“Anonymous”,点击“添加”按钮完成设置,如图

回到OpcUa-Client配置页面,点击“完成”按钮完成设置,并部署流程,可以看到节点已经成功连接到了OpcUa服务器。

2.Node-Red账号登陆

打开KEPServerEX 6 Administration,右击系统托盘上的图标,选择“设置”选项打开设置对话框,选择“用户管理器”选项卡,如图

选中树形列表中的“Administrators”,点击“新建用户”按钮,也就是第二个按钮,打开用户属性对话框

输入用户名“test”,密码“1234567890abcd”,点击“确定”按钮完成设置。

打开KEPServerEX 6 Configuration,在左侧树型列表中的“项目”上右击鼠标,再点击弹出的“属性”菜单,打开属性编辑器,在左侧列表中选择“OPC UA”选项,在右侧表格中将“允许匿名登录”也设置为“否”,点击“确定”按钮完成修改,如下所示

右击KEPServer系统托盘图标,选择“重新初始化”菜单,重新初始化服务使设置生效。

回到Node-Red,双击之前添加的OpcUa-Client节点,打开编辑页面,再点击Endpoint 后面的“笔型”按钮,打开Endpoint节点编辑页面,勾选“use credentials”复选框,在显示出来的“User”和“Password”输入框中输入上面设置的用户名和密码,点击“更新”按钮更新设置,并部署流程。

OpcUa-Client节点成功连接到OpcUa服务器。

3.UaExpert账号登陆

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

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

可以看到在Custom Discovery下多了一个服务器,先选中服务器名“KEPServerEX/UA@WKS042 ”下的“None”条目,再在下面的Authentication Settings组合框中选择第二项,输入用户名“test”和密码“01234567890abcd”,并勾选“Store”,点击“OK”按钮确定。

服务器连接成功。

在左侧Address Space面板中找到并选中Objects->数据类型示例->16 位设备->K 寄存器->DWord1变量,可以在右侧Attributes选项卡中看到其详细的属性,把该变量拖入中间的Data Access View选项卡页面,以监视其值的变化,在Attributes选项卡中找到该变量的Value属性,将其修改为888,则可以在Data Access View选项卡页面同步看到修改后的Value值

在Attributes选项卡中复制该变量的NodeId“ns=2;s=数据类型示例.16 位设备.K 寄存器.DWord1”备用。

  • 四、从OPC UA服务器读数据

从Node-Red左侧边栏拖动一个inject节点、一个OpcUa-Item节点和一个debug节点到工作区,依次连接之后使之与OpcUa-Client节点连接,如图

双击OpcUa-Client节点,打开编辑页面,在Action下拉框中选择“READ”,其它保持不变,点击“完成”按钮确认修改。

双击OpcUa-Item节点,打开属性编辑页面,在Item输入框输入上面复制的变量NodeId,Type选择“UInt32”,点击“完成”按钮确定,并部署流程。

点击inject节点,可以在调试窗口看到读到的数据

  • 五、向OPC UA服务器写数据

复制流程,如下所示

双击OpcUa-Client节点,打开编辑页面,在Action下拉框中选择“WRITE”,其它保持不变,点击“完成”按钮确认修改。

双击inject节点,打开属性编辑页面,将msg.payload的值设置为数字“666”,点击“完成”按钮确定,并部署流程。

点击inject节点触发流,可以在调试窗口看到写数据成功的信息

在UaExpert的Data Access View选项卡页也可以看到修改后的Value值,写入数据成功。

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

版权声明:本文为博主作者:cylangren原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/cylangren/article/details/136455669

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2024年4月16日
下一篇 2024年4月16日

相关推荐