一、内容简介
本篇内容主要介绍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值,写入数据成功。
文章来源:https://www.toymoban.com/news/detail-840953.html
如果您想获取文章相关的代码、工具等资料,关注公众号"NodeRed物联网",回复“nr”即可。文章来源地址https://www.toymoban.com/news/detail-840953.html
到了这里,关于Node-Red如何与OPC UA服务器通讯的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!