我是 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协议中是否有一种方法可以从服务器发现或获取数据类型?如果没有,如何识别数据类型并注册?
此外,是否有其他库或方法可以帮助读取未知的扩展对象。
我们的 OPC UA Cient SDK 在运行时发现自定义类型,并可以对其进行解码。因此,您可以从代码访问各个字段,或将其转换为 JSON 格式的文本。但它是用 C++ 编写的,而不是 Go 语言。 https://onewayautomation.com/opcua-sdk