python pcua.ua.attribute_ids 枚举

Attribute

属性是描述节点的数据元素。客户端可以使用 Read、Write、Query 和 Subscription/MonitoredItem 服务访问属性值。

属性是节点类的基本组成部分。属性定义是节点类定义的一部分,因此为客户端所知,在地址空间中不直接可见。

每个属性定义都包含属性 ID、名称、描述、数据类型和强制/可选指示符。为每个节点类定义的属性集不能由客户端或服务器扩展。在地址空间中实例化节点时,必须提供强制节点类属性的值。

pcua.ua.attribute_ids模块

该模块是个枚举体, 包含了节点属性对应的属性ID, 可以通过opcua.common.node.Node.get_attribute(AttributeId)方法获取属性值

class opcua.ua.attribute_ids.AttributeId(enum.IntEnum)
	AccessLevel= 17
	AccessLevelEx= 27
	AccessRestrictions= 26
	ArrayDimensions= 16
	BrowseName= 3
	ContainsNoLoops= 11
	DataType= 14
	DataTypeDefinition= 23
	Description= 5
	DisplayName= 4
	EventNotifier= 12
	Executable= 21
	Historizing= 20
	InverseName= 10
	IsAbstract= 8
	MinimumSamplingInterval= 19
	NodeClass= 2
	NodeId= 1
	RolePermissions= 24
	Symmetric= 9
	UserAccessLevel= 18
	UserExecutable= 22
	UserRolePermissions= 25
	UserWriteMask= 7
	Value= 13
	ValueRank= 15
	WriteMask= 6

示例

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')

test_node_attr = test_node.get_attribute(1)
print(1, test_node_attr)

test_node_attr = test_node.get_attribute(13)
print(2, test_node_attr)

test_node_attr = test_node.get_attribute(4)
print(3, test_node_attr)

test_node_attr = test_node.get_attribute(14)
print(4, test_node_attr)

test_node_attr = test_node.get_attribute(16)
print(5, test_node_attr)

# 通过opcua.common.node.Node.sset_attribute(attributeId, DataValue)设置节点的value
# 1. 创建uatypes.Variant(),并设置相关参数
var = uatypes.Variant()
var.Value = [True, True, True, True, False, False, 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
test_node.set_attribute(13, dv)

client.disconnect()

输出:

1 DataValue(Value:Variant(val:StringNodeId(ns=4;s=CIP数据BOOL),type:VariantType.NodeId), StatusCode:StatusCode(Good))
2 DataValue(Value:Variant(val:[True, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False],type:VariantType.Boolean), StatusCode:StatusCode(Good), SourceTimestamp:2023-03-21 03:11:49.095000)
3 DataValue(Value:Variant(val:LocalizedText(Encoding:3, Locale:, Text:CIP数据BOOL),type:VariantType.LocalizedText), StatusCode:StatusCode(Good))
4 DataValue(Value:Variant(val:TwoByteNodeId(i=1),type:VariantType.NodeId), StatusCode:StatusCode(Good))
5 DataValue(Value:Variant(val:[20],type:VariantType.UInt32), StatusCode:StatusCode(Good))

你可能感兴趣的:(opc,ua,python)