使用 UA-ModelCompiler 编码和解码自定义 OPC-UA 数据类型

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

我正在开发一个 OPC UA 项目,在其中管理自定义数据类型。我在UaModeler中定义了一个复杂的对象,并使用UA-ModelCompiler工具在C#中生成模型代码。 但是,当我使用 OPC UA 客户端读取它时,我不确定应如何处理此自定义数据类型的编码和解码。看起来数据需要作为序列化的 ExtensionObject 发送,但是我找不到太多关于如何准确地将自定义 DataType 编码为字节数组并将其用 ExtensionObject 包装的文档。

是否有示例或设计模式说明我应该如何实现这一点以最好地满足 OPC UA 标准?

我已经读到从 UA-ModelCompiler 自动生成的代码应该包括编码和解码功能,但我不确定如何使用它来序列化自定义数据类型。

c# opc-ua opc
1个回答
0
投票

具体实现取决于所使用的SDK。如果您提前知道类型,大多数 SDK 都会为此任务提供某种代码生成功能,因此您无需自己实现。

如果客户端事先未知数据类型,可以使用 StructureFields(希望由服务器公开)来解析类型https://reference.opcfoundation.org/Core/Part3/v105/docs /8.51#表35

另请参阅有关扩展对象的一般信息:https://reference.opcfoundation.org/Core/Part6/v105/docs/5.1.8

PS:较旧的服务器将这些数据类型的结构以 XML 形式存储在类型命名空间的变量中。

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