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))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

M_qsqsqsq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值