在 OPC Unified Architecture Part 3 (v1.05.06) 标准中,数据类型模型通过 DataTypeRefinement(数据类型细化)对象对结构化数据类型(Structured DataType)的字段使用进行限制并添加元数据。DataTypeRefinement 的核心作用在于允许开发者定义特定于应用的字段约束,例如将某个字段标记为必填、可选或禁用。

对于 Structured DataType 的字段限制机制,标准引入了 SubtypeRestriction(子类型限制)概念。SubtypeRestriction 用于限制对结构化数据类型子类型的访问范围,确保只有符合特定定义的子类型才能被实例化或使用。这通常通过 HasStructuredComponent 引用关联到具体的字段描述。

ModellingRule(建模规则)在此过程中扮演定义实例化行为的关键角色。每个 InstanceDeclaration(实例声明)都关联一个 ModellingRule,该规则定义了如何创建该类型的实例,包括属性的继承、覆盖以及子类型规则。例如,Mandatory 规则要求属性必须存在,而 Optional 则允许缺失。ModellingRule 确保了在复杂类型定义中,字段的组合与使用遵循预定义的逻辑约束,从而保证数据模型的一致性和语义准确性。

综上,通过 DataTypeRefinement 结合 SubtypeRestriction 和 ModellingRule,OPC UA 地址空间模型实现了灵活且严格的数据结构管理,支持从基础内置类型到复杂自定义类型的多层次定义与约束。

信息来源