使用 gopcua 从 OPC UA 读取未知扩展对象

问题描述 投票:0回答:1

我是 OPC 新手,尝试使用 gopcua 库从 golang 中的 OPC UA 服务器读取数据,但遇到以下错误: StatusBadDataTypeIdUnknown (0x80110000) 错误。

我正在读取数据如下

nodeID, err := ua.ParseNodeID(nodeIDStr)
    if err != nil {
        return domain.NodeValue{}, err
    }

    var resp *ua.ReadResponse

    resp, err = o.client.Read(ctx, &ua.ReadRequest{
        MaxAge:             2000,
        NodesToRead:        []*ua.ReadValueID{{NodeID: nodeID}},
        TimestampsToReturn: ua.TimestampsToReturnBoth,
    })

WinCC 上的数据类型显示为二进制变量

但是,当我尝试阅读时,它给了我错误

The extension object cannot be (de)serialized because the data type id is not recognized. StatusBadDataTypeIdUnknown (0x80110000)

我想知道OPC UA协议中是否有一种方法可以从服务器发现或获取数据类型?如果没有,如何识别数据类型并注册?

此外,是否有其他库或方法可以帮助读取未知的扩展对象。

go opc-ua opc opcua-client
1个回答
0
投票

我们的 OPC UA Cient SDK 在运行时发现自定义类型,并可以对其进行解码。因此,您可以从代码访问各个字段,或将其转换为 JSON 格式的文本。但它是用 C++ 编写的,而不是 Go 语言。 https://onewayautomation.com/opcua-sdk

© www.soinside.com 2019 - 2024. All rights reserved.