You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OPC UA节点数据读取报错:'str'对象无'time_low'属性求助

OPC UA读取节点时AttributeError: 'str'对象没有'time_low'属性的解决方法

问题描述

尝试通过OPC UA读取节点数据,已确认命名空间(ns)和ID正确,但调用get_data_value()方法时触发错误:在将Python UUID 6字段格式转换为OPC UA 4字段格式过程中,出现AttributeError: 'str' object has no attribute 'time_low'。该节点为变量且包含两个子节点,相关代码及报错堆栈如下:

相关代码

from opcua import Client
...
client.connect()

forceAS = client.get_node("ns=3;g=V:0.3.0.0.1")
meaForceAS = forceAS.get_data_value() # 此处报错

报错堆栈

C:\ProgramData\Anaconda3\lib\site-packages\opcua\ua\ua_binary.py in nodeid_to_binary(nodeid)
    315     elif nodeid.NodeIdType == ua.NodeIdType.Guid:
    316         data = struct.pack("<BH", nodeid.NodeIdType.value, nodeid.NamespaceIndex) + \
--> 317                Primitives.Guid.pack(nodeid.Identifier)
    318     else:
    319         raise UaError("Unknown NodeIdType: {} for NodeId: {}".format(nodeid.NodeIdType, nodeid))

C:\ProgramData\Anaconda3\lib\site-packages\opcua\ua\ua_binary.py in pack(guid)
    100     def pack(guid):
    101         # convert python UUID 6 field format to OPC UA 4 field format
--> 102         f1 = Primitives.UInt32.pack(guid.time_low)
    103         f2 = Primitives.UInt16.pack(guid.time_mid)
    104         f3 = Primitives.UInt16.pack(guid.time_hi_version)

AttributeError: 'str' object has no attribute 'time_low'

解决方案

这个错误的核心原因是:你使用的节点ID格式ns=3;g=V:0.3.0.0.1被库解析为Guid类型的NodeId,但你的标识符是普通字符串而非标准UUID格式,导致库尝试调用字符串对象的UUID专属属性(如time_low)时失败。

方法1:明确指定NodeId类型为字符串

将节点ID中的g=(Guid类型前缀)替换为s=(字符串类型前缀),让库正确识别标识符类型:

forceAS = client.get_node("ns=3;s=V:0.3.0.0.1")

方法2:手动构造NodeId对象

如果需要保留原标识符格式,可以手动创建NodeId实例,直接指定类型为字符串:

from opcua import ua

# 创建字符串类型的NodeId,参数为标识符和命名空间索引
node_id = ua.NodeId("V:0.3.0.0.1", 3)
forceAS = client.get_node(node_id)

额外验证建议

可以通过OPC UA客户端工具(如UaExpert)查看目标节点的实际NodeId类型:

  • 如果节点ID类型为字符串,必须使用s=前缀或手动指定字符串类型NodeId
  • 如果节点ID类型为Guid,需传入标准UUID格式的字符串(如ns=3;g=550e8400-e29b-41d4-a716-446655440000),此时库会自动将其转换为UUID对象处理

内容的提问来源于stack exchange,提问作者chris_2091

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 08:45:39