使用Springboot集成Milo实现OPCUA客户端,利用KEPServerEX6.4模拟OPCUA服务端,实现OPCUA客户端读写服务端数据

KEPServerEX6.4模拟OPCUA服务端数据请参考: https://blog.csdn.net/m0_48172732/article/details/126519555?spm=1001.2014.3001.5502
GitHub拉去OPCUA客户端代码: https://github.com/jellyleo/opcua

修改OPCUA配置文件

url是KEPServerEX6.4模拟OPCUA服务端的连接路径
userName是自己新添加的用户名
password是自己新设置的密码
在这里插入图片描述

启动类-OpcUaApplication

在这里插入图片描述

接口在CommonController,里面有连接客户端接口,关闭客户端接口,订阅接口,读取、写入接口

在这里插入图片描述

连接客户端接口

启动OpcUaApplication类,浏览器中输入接口地址http://localhost:9099/connect
在这里插入图片描述
在这里插入图片描述
**注意:**在创建连接过程中,会创建OPCUA的客户端,我们需要注意在创建客户端时会进行安全策略认证,我这里将KEPServerEX6.4中OPCUA配置的安全策略设置成无(None),如果想实现安全策略自行修改。客户端的配置信息,LocalizedText.english(“my”),my是OPCUA服务端中创建的通道名,可以选择用户名密码登录,也可以选择匿名登录。
报红处对程序运行没影响
在这里插入图片描述

关闭客户端接口

在这里插入图片描述

订阅接口

1、模拟一个数据,RANDOM(1000,200,240),1000表示一秒更新一次数据,(200,240)是数据的取值区间。

在这里插入图片描述

2、运行订阅接口,my.device.x2指的是通道名.设备名.标记名

在这里插入图片描述

3、订阅的值一直在运行中

在这里插入图片描述

读取接口

在这里插入图片描述
验证:OPCUA服务端里面该节点的值确实是0
在这里插入图片描述

写入接口(这里只能修改服务端门已有的节点数据)

写入时要注意写入数据的节点是否存在,否则会报(Bad_NodeIdUnknown,0x80340000,节点ID指向服务器地址空间中不存在的节点),也要注意写入值得类型一定要和OPCUA服务端值得数据类型一致,否则会报(Bad_TypeMismatch,0x80740000,为属性提供的值与属性值的类型不匹配)

在这里插入图片描述
id=my.device.x1&value=100&type=Short,my.device.x1表示已有的节点,100表示将节点的值修改成100,Short节点的数据类型是短整型
在这里插入图片描述
验证节点数据成功被修改
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐