【问题标题】:Modeling of the OPC UA Address SpaceOPC UA 地址空间的建模
【发布时间】:2019-02-04 01:12:52
【问题描述】:

我的情况如下:

我的树莓派连接了多个传感器(3 个温度传感器、1 个湿度传感器、2 个电流传感器和 1 个压力传感器)。传感器正在测量来自引擎的值,我目前正在尝试为我的 OPC UA 服务器开发一个地址空间模型,该服务器将在树莓派上运行。

到目前为止,一切都很好。到目前为止,我已经阅读了许多教程,对地址空间进行建模就像开发具有继承的类图。这就是为什么我定义了一个 EngineType (

但这是我的问题:

由于每个传感器都有自己的类型(温度、压力、湿度……)、名称和值类型(摄氏度、mbar、湿度……)和值范围,我认为如果我定义一个 SensorType 也不错(ObjectType 节点),因此,每种传感器的 ObjectTypes:TempSensorType、HumiditySensorType 等等……。

所以根据我的建议,引擎对象最终会得到一堆成员,这些成员都是从对象类型实例化的。

这是 OPC UA 中的最佳实践还是太复杂了?有没有更优雅的方法来解决这个问题?我希望我已经足够清楚地解释了我的情况。

感谢您能给我的任何帮助或建议!非常感谢您,如果您对我上面描述的情况有任何疑问,请随时提问!

【问题讨论】:

    标签: opc opc-ua


    【解决方案1】:

    我觉得这个设计很合理。

    即使客户事先不了解模型,他们仍然应该能够理解和使用数据,我认为这是您在设计时要牢记的重要品质。

    我要避免的是为您的值使用自定义 DataType,因为这需要足够高级的客户端来从服务器读取 DataTypeDictionary 并能够根据字典动态解码和编码自定义结构内容。

    【讨论】:

    • 嘿,凯文,非常感谢您的反馈。那么将 SensorType 和继承的“humiditySensorType”、“TempSensorType”.. 类集成是个好主意吗?还是应该将所有传感器值都定义为变量的 EngineType 类?
    • 对于客户来说,无论哪种方式,实例看起来都是一样的。它只会给你的服务器和任何可能使用类型或从这些类型生成的代码的客户端增加一些复杂性。
    猜你喜欢
    • 1970-01-01
    • 2021-07-18
    • 2020-01-14
    • 1970-01-01
    • 2018-12-04
    • 2017-08-23
    • 2021-03-26
    • 2023-02-09
    • 2021-01-04
    相关资源
    最近更新 更多