opcua 写入服务器节点的值

测试的节点为长度20的BOOL数组, 如下:
opcua 写入服务器节点的值_第1张图片
将改数组的值改为[True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False]

代码:

import opcua
from opcua import ua
from opcua.ua import uatypes

url = 'opc.tcp://192.168.1.39:4840'
client = opcua.Client(url)
client.connect()


# test_node节点是PLC里的一个bool数组,长度为20
test_node = client.get_node('ns=4;s=CIP数据BOOL')

# 设置节点的Value, 首先要创建uatypes.Variant()和uatypes.DataValue()类
# 1. 创建uatypes.Variant(),并设置相关参数
var = uatypes.Variant()
var.Value = [True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False]
var.VariantType = uatypes.VariantType.Boolean
var.is_array = True
# 2. 创建uatypes.DataValue()类,并将uatypes.DataValue().Value设置为uatypes.Variant()
dv = uatypes.DataValue()
dv.Value = var
# 3. 设置节点的Value
# test_node.set_value(dv)
test_node.set_data_value(value=dv)

# 读取写入的值
print(test_node.get_value())

client.disconnect()

写入结果:

[True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False]

opcua 写入服务器节点的值_第2张图片

你可能感兴趣的:(opc,ua,服务器,运维)