新闻中心
PRESS CENTERClient节点用于和OPC UA服务端通信。支持匿名登录和用户名密码登录。暂不支持加密链接。
辅助软件1:此软件可模拟OPC UA Server:https://www.prosysopc.cn/products/opc-ua-simulation-server/
辅助软件2:使用此软件可以扫描服务端的变量:UaExpert.zip:https://iotrouter.yuque.com/attachments/yuque/0/2023/zip/39049526/1702546306847-c143eec8-81b8-4cab-8901-504d68cac286.zip
源码可看:https://iotrouter.yuque.com/zn3vdn/eg8000/lo057k24u57ybw9e#TjcKs
端点获取:不加路径也可访问。
节点配置:这里演示使用用户名密码登录。节点首次登录时,根据服务端的配置可能需要服务端选择信任。
连接成功后,节点显示:
模拟服务端默认提供一些变量,可以用Uaexpert扫描出来后,根据需求读取。
Client节点的执行选择【READ】。
确定好变量的地址和类型,下图示例变量地址为:ns=3;i=1005,数据类型为Double。
加入Client Item节点,将上述变量参数填入。
增加注入节点和调试节点,调试节点以msg.payload输出。注入节点输出任意对象即可。
输出结果:
Client节点的执行选择【READ MULTIPLE】。
增加注入节点和调试节点,调试节点以msg.payload输出。
注入节点如下配置:
/*msg.payload以数据表示,每个元素表示一个数据点*/
msg.payload=["ns=3;s=134","ns=3;i=1003","ns=3;i=1006"]
/*msg.topic表示功能*/
msg.topic='readmultiple'
输出结果:
使用Client Item节点写
1.Client节点的执行选择【Write】。
2.加入Client Item节点,填入变量地址、类型、要写入的值(当输入Client Item节点的msg含有payload且payload不为空时,这个值会被替换。msg必须含有payload)。
3.增加注入节点和调试节点,调试节点以msg.payload输出。
4.当注入节点的payload设置为空时,使用Client Item节点的【值】写入:
5.当注入节点的payload设置不为空时,使用注入节点输出的msg.payload写入:
使用函数计算节点写
1.Client节点的执行选择【Write】。
2.添加函数计算节点,并添加内容如下:
3.使用注入节点触发写入:
使用Client Item节点写
1.Client节点的执行选择【Write】。
2.加入Client Item节点,填入变量地址、类型、要写入的值(当输入Client Item节点的msg含有payload且payload不为空时,这个值会被替换。msg必须含有payload)。
3.增加注入节点和调试节点,调试节点以msg.payload输出。
4.当注入节点的payload设置为空时,使用Client Item节点的【值】写入:
5.当注入节点的payload设置不为空时,使用注入节点输出的msg.payload写入:
a):可以以数组的形式msg.payload=[1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2]
b):可以以字符的形式msg.payload="1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2"
使用函数计算节点写
1.Client节点的执行选择【Write】。
2.添加函数计算节点,并添加内容如下:
3.使用注入节点触发写入:
Client节点会"存储"要写入的值 ,直到注入的msg.topic=="writemultiple",期间可以使用msg.topic="clearitems"来清除当前储存的值。触发写入操作并不会清空存储的数据。
1.Client节点的执行选择【Write】。
2.添加注入节点,实现变量数据的存储。
3.添加注入节点,实现触发写入当前值、清除储存的数据。
4.触发写入,写入的状态以数组形式输出msg.payload=[0,0,0,0]。0为操作成功。具体写入的结果以读取到的值为准。
1.添Client节点的执行选择【SUBSCRIBE】。
订阅一个或多个变量,以【500ms】间隔判断变量的值是否改变,改变后输出msg.payload。
2.添Client Item节点,输入变量地址。
3.添加注入节点。
4.执行注入。
1.添Client节点的执行选择【MONITOR】。
【监控】是订阅的升级版,在订阅的基础上增加了一个死区判断。当变量值变化没有超过【20】,不会输出msg.payload,但是仍然会有msg输出。