OPC UA地址空间的建模

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

我的情况如下:

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

到现在为止还挺好。正如我现在阅读了许多教程,对地址空间建模就像开发一个带继承的类图一样。这就是为什么我定义了EngineType(< - ObjectType)并从中实例化了一个对象(称为“引擎”)。 EngineType当前为每个传感器值定义变量(如OOP中的成员变量)。

但这是我的问题:

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

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

这是OPC UA中的最佳实践还是过于复杂?有更优雅的方法来解决这个问题吗?我希望我能够清楚地解释我的情况。

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

opc opc-ua
1个回答
1
投票

这个设计听起来很合理。

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

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

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