OPC UA地址空间的建模

时间:2018-08-29 09:35:33

标签: opc opc-ua

我的情况如下:

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

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

但这是我的问题:

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

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

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

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

1 个答案:

答案 0 :(得分:1)

设计听起来对我来说合理。

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

我要避免的是使用自定义 DataType 作为您的值,因为这要求客户端具有足够的高级才能从服务器读取DataTypeDictionary,并能够基于字典动态地解码和编码自定义结构内容。