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)

image016.png

Figure 13 - Meta-model mapping

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

UMLClass

ObjectType

Structure of the Class is defined by ObjectType.

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

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

UMLClass

ObjectType

Structure 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

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

Table of ISA95 Attribute

Attribute

ISA95ID, 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

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.

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

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

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

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

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

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

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

EBNF: omitted for simplicity

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

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

EBNF: {0..100}

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

  1. A non-continuous range of values

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

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

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.

EBNF: <Red, Green, Yellow, Blue>

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

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

Struct Simple {

Integer Position;

Float LastValue;

Boolean Exists;

String Comment;}

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.

Struct Simple {

public int Position;

public double LastValue;

public bool Exists;

public string Comment;}

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

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

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

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

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)

  1. 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]

image017.png

Figure 14 - Complex Data Mapping

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

UMLClass

VariableType

Structure of the ISA95Property is defined by a VariableType, and an instance of the ISA95Property is represented by a DataVariable of the VariableType.

DataVariable

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

UMLAssociation

ReferenceType

ISA95Reference 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.

ISA-95

OPC UA

Description

UMLRole

SourceNode, TargetNode

UMLRole may be transformed into the restrictions of ReferenceType.

UMLCardinality

N/A

Standard ModellingRules only affect instance declaration specified by subtypes of Hierarchical References.

UMLAssociation Name

BrowseName

A 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.

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.

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.

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

UMLRole

SourceNode, TargetNode

UMLRole may be transformed into the restrictions of ReferenceType.

UMLCardinality

N/A

Standard ModellingRules only affect instance declaration specified by sub-types of Hierarchical References.

UMLAssociation Name

BrowseName

A name defined in ISA-95 may be changed. InverseName will be defined.

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

UMLRole

SourceNode, TargetNode

UMLRole may be transformed into the restrictions of ReferenceType.

UMLCardinality

ModellingRule

1

Mandatory

0..1

Optional

0..N

OptionalPlaceholder

1..N

MandatoryPlaceholder

UMLAssociation Name

BrowseName

A name defined in ISA-95 may be changed. InverseName will be defined.