5.1 Meta-model Mapping Approach

5.1.1 General

ISA-95 defines the meta-models to describe object models using UML notation (See Annex E). This standard defines mapping between the UML notation and the OPC UA meta-model to transform the object model defined in ISA-95 into an OPC UA Address Space Model. (See OPC 10000-3, 0, OPC UA Meta Model)

Figure 13 - Meta-model mapping

5.1.2 ISA95Class

ISA95Class is a concept to represent a classification of ISA95 Resource and is represented by a UML Class and an OPC UA ObjectType (see Table 2).

Table 2 – Transformation rule of an ISA95Class
ISA-95 OPC UA Description
UMLClassObjectTypeStructure of the Class is defined by ObjectType.

5.1.3 ISA95Object

ISA95Object is a concept to represent resources like a Role Base Equipment and is represented by a UML Class and an OPC UA ObjectType and OPC UA Objects (see Table 3).

Table 3 – Transformation rule of an ISA95Object
ISA-95 OPC UA Description
UMLClassObjectTypeStructure of the ISA95Object is defined by associated Classes and in some case by a defined ObjectTypes, and an instance of the ISA95Object is represented by an Object of the ObjectType or base ObjectType.
Object

5.1.4 ISA95Attribute

ISA95Attribute is a minimum set of industry-independent information and is described in the attribute table defined in ISA-95. ISA-95 doesn’t describe an attribute in UML. In OPC UA it can be represented by Attributes, VariableTypes, Variables, and Properties (see Table 4),

Table 4 – Transformation rule of an ISA95Attribute
ISA-95 OPC UA Description
Table of ISA95 AttributeAttributeISA95ID, ISA95Description, and ISA95ValueAttribute are transformed into attributes of Object or DataVariable. Other Attributes are transformed into Properties of the Object or DataVariable.
Variable
VariableType
Property

5.1.5 ISA95Property

ISA95Property is a concept to represent characteristics for domain specific information. Accordingly ISA-95 defines that attributes that are application or industry specific are to be modelled in terms of properties and represented in property classes in the model. ISA-95 doesn’t describe a property as an attribute in UML, but describes a property as a Class. In OPC UA it can be represented by VariableTypes and Variables (see Table 5)

Table 5 – Transformation rule of an ISA95Property
ISA-95 OPC UA Description
UMLClassVariableTypeStructure of the ISA95Property is defined by a VariableType, and an instance of the ISA95Property is represented by a DataVariable of the VariableType.
DataVariable

5.1.6 Complex Value

5.1.6.1 General

OPC UA allows information to be represented as complex Variables (Variable with nested sub-variable) and/or as complex DataTypes, where a DataType has a structure or other special meaning associated with it. Each of the nested Variables can have a value that represents a simple base DataType such as an Integer or can represent a custom DataType such as a Currency or a structure.

The format of a value is represented by Attributes of Variables. This standard maps all value formats defined in ISA-95 into those attributes.

5.1.6.2 Array value

Arrays of values are represented by DataType, ValueRank, ArrayDimensions, and MaxArrayLength attribute of a VariableType. (See OPC 10000-3). The following examples illustrate the usage of these Attributes:

  1. A set of values for a single dimension array of integers with 6 values

  2. EBNF: [ 1 , 2 , 3 , 4 , 5 , 6]

  3. OPC UA: DataType=Int32(any), ValueRank=OneDimension(1), ArrayDimensions=6, MaxArrayLength=6.

  4. A set of values for a two dimension array of size 2x3

  5. EBNF: [ [1 , 2] , [3 , 4] ,[5 , 6]]

  6. OPC UA: DataType=Int32(any), ValueRank= 2, ArrayDimensions=[2,3], MaxArrayLength=6

  7. A set of values for a four dimension array of size 2x3x4x5

  8. EBNF: omitted for simplicity

  9. OPC UA: DataType=Int32(any), ValueRank= 4, ArrayDimensions=[2,3,4,5], MaxArrayLength=120

5.1.6.3 Range value

Ranges of values are represented by Range DataType defined in OPC 10000-8. If the Range is an array, then ValueRank, ArrayDimensions, and MaxArrayLength attributes are utilized to indicate an array.

  1. A simple range of values

  2. EBNF: {0..100}

  3. OPC UA : DataType=Range, ValueRank= Scalar (−1)

  4. A non-continuous range of values

  5. EBNF: {0 .. 100 , 200 .. 300 , 500 , 600 .. 650}

  6. OPC UA : DataType=Range, ValueRank= OneDimension (1), ArrayDimensions=4

5.1.6.4 Series value

A set of allowed values is defined in EnumStrings and the EnumValues Standard Property of Enumeration DataType.

  1. A series of values that defines colours.

  2. EBNF: <Red, Green, Yellow, Blue>

  3. OPC UA : Array of LocalizedText that is a list of the enumeration strings is set to EnumStrings

5.1.6.5 Structured value

Structured data element is defined in custom DataType derived from Structure DataType or is represented by nested VariableType that has Variables as children.

  1. A structured data element represented as flattened Property Name

  2. Struct Simple {

  3. Integer Position;

  4. Float LastValue;

  5. Boolean Exists;

  6. String Comment;}

  7. ISA-95: Simple.Position, Simple.LastValue, Simple.Exists, Simple.Comment

OPC UA: ABC DataType (custom DataType) derived from Structure DataType is defined, with the given structure.
  1. A structured data element represented by creating an ISA95Property with no data value with nested child ISA95Properties and identification of element.

  2. Struct Simple {

  3. public int Position;

  4. public double LastValue;

  5. public bool Exists;

  6. public string Comment;}

  7. ISA-95: Property [ID=”Simple”]

  8. Property [ID=”Simple”]\ Property [ID=”Position”]

  9. Property [ID=”Simple”]\ Property [ID=”LastValue”]

  10. Property [ID=”Simple”]\ Property [ID=”Exists”]

  11. Property [ID=”Simple”]\ Property [ID=”Comment”]

OPC UA:All ISA95Properties are represented as Variables and Simple property points to Position, LastValue, Exists, and Comment properties by HasComponent or subtypes of HasComponent ReferenceType. (See clause 4.3.8.6)

A combination of a) and b) where a structured data element represented by creating a ISA95 Property with a data value that is a structured data element and with nested child properties and identification of element (see Figure 14). This is the preferred method for modelling complex information. [Note: the figure flow the template defined in OPC 10000-3 with some extensions defined in Annex F]

Figure 14 - Complex Data Mapping

5.1.7 ISA95Reference

5.1.7.1 General

ISA95Reference is a concept that represents a relationship between modelling targets and is represented by UML Association and by OPC UA ReferenceType (see Table 6).

Table 6 – Transformation rule of a ISA95Reference
ISA-95 OPC UA Description
UMLAssociationReferenceTypeISA95Reference is defined by ReferenceType. Name of the association may be a name of ReferenceType, and cardinality of the association may be mapped into a Modelling Rule of target Node of the Reference.
5.1.7.2 UMLAssociation

UMLAssociation represents an association between elements of a class and elements of another or the same class. The UMLAssociation is transformed to subtypes of OPC UA NonHierarchicalReferences (see Table 7).

Table 7 – Transformation rule of the elements of UMLAssociation
ISA-95 OPC UA Description
UMLRoleSourceNode, TargetNodeUMLRole may be transformed into the restrictions of ReferenceType.
UMLCardinalityN/AStandard ModellingRules only affect instance declaration specified by subtypes of Hierarchical References.
UMLAssociation NameBrowseNameA name defined in ISA-95 may be changed. InverseName will be defined.

Instance Nodes that are referenced by NonHierarchicalReferences are not instantiated when an instance of an ObjectType or VariableType is created.

5.1.7.3 UMLGeneralization

UMLGeneralization is used to describe that an element of UMLClass is a specialized type of the super UML Class, it mapped to the OPC UA HasSubtype ReferenceType.

5.1.7.4 UMLDependence

UMLDependence is a weak association that is used to describe a modelling element that depends on another modelling element. This standard doesn’t support this concept in general terms. Depending on the nature of the dependence it may be modelled as a custom reference.

5.1.7.5 UMLAggregation

UMLAggregation is used to describe that an element of the class is made up of elements of other classes; it is mapped to subtypes of the OPC UA Aggregates ReferenceType (see Table 8).

Table 8 – Transformation rule of the elements of UMLAggregation
ISA-95 OPC UA Description
UMLRoleSourceNode, TargetNodeUMLRole may be transformed into the restrictions of ReferenceType.
UMLCardinalityN/AStandard ModellingRules only affect instance declaration specified by sub-types of Hierarchical References.
UMLAssociation NameBrowseNameA name defined in ISA-95 may be changed. InverseName will be defined.
5.1.7.6 UMLComposite

UMLComposite is used to describe a strong form of aggregation, it is mapped to OPC UA HasComponent or subtypes of OPC UA HasComponent ReferenceType (see Table 9).

Table 9 – Transformation rule of the elements of UMLComposite
ISA-95 OPC UA Description
UMLRoleSourceNode, TargetNodeUMLRole may be transformed into the restrictions of ReferenceType.
UMLCardinalityModellingRule1 Mandatory
0..1 Optional
0..N OptionalPlaceholder
1..N MandatoryPlaceholder
UMLAssociation NameBrowseNameA name defined in ISA-95 may be changed. InverseName will be defined.