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拖放到工作区,双击节点打开编辑页面

在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”即可。

  • 31
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值