Target Model Identification Form ISA95
This version of the TMI Form supports Asset Registry in the ISA95 UA companion specification.
Apis Management Studio (AMS) is used when exporting/importing TMI forms. The TMI form itself is an Excel spreadsheet (xlsx), which can be manipulated by humans.
When building models in a TMI form, the recommended workflow is to first build a small part of the model in the model builder in AMS using the Asset Registry perspective. This small part should span as much of the model as possible, i.e. contain the types used and one or more paths down to the leafs of the model. When exporting this model to a TMI form, the layout of the TMI will be correct and make a good starting point for manually adding entities to the model. After the entities are added/updated in the TMI form, the form can be imported to the UA server to update the semantic model.
Read this page for an overview of the TMI Form, then further documentation can be found here:
To export to TMI form, see Target Model Identification Export.
To import from TMI form, see Target Model Identification Import.
To import in bulk, see Import in Bulk.
TMI form explained
In the following a simple model of a room with a pump is used to explain the workings of the TMI Form. The pump has variables; pressure, rpm. The pump has a ClassType associated with it.
Exporting the model to a TMI Form will result in an Excel file with a number of sheets. The sheets contains all the information needed to create or update this model. Objects with the same UA Type and ClassType(s) are defined in the same sheet.
Objects may have EquipmentProperties (variables of type EquipmentProperty) and/or Properties (Attributes, of type PropertyType) associated with them. The EquipmentProperties of the objects have their own sheet with the same name as the associated object sheet, postfixed with '_EP'. The Properties of objects and their EquipmentProperties also have their own sheet with the same name as the associated object sheet, postfixed with '_PT'.
The content of the sheets will now be explained:
The Master sheet
The Master sheet contains information about UA Types and ClassTypes of the objects in the model, and in which sheet to find them. All objects of the same type and same combination of ClassTypes are listed in the same sheet.
Column Name | Explanation |
---|---|
SequenceNo | The order of which sheets to create instances for. It is a good practice to order the creation sequence so that the base instances are defined in the earliest sheets (although, this is not a requirement, but he import will be faster) |
EquipmentType | The UA type, with namespace index, of the objects in this sheet. Since the TMI is following the ISA95 UA companion specification, all object types inherit from EquipmentType. The number before the type name is the namespace index. The index is defined in the Namespaces sheet. |
Sheet | Name of the sheet where the objects are defined. This name must be unique and correspond exactly with the name of the sheet. The name is limited to 29 characters (by Excel). The names are auto generated on export. |
ClassType1 | If the objects have a ClassType associated with them, the names of the ClassTypes are defined in columns named ClassType1 ... ClassTypeN. |
The Namespaces sheet
The Namespaces sheet contains the namespaces used in the model. It also contains the namespace index for each namespace. The index is used elsewhere in the TMI as part of the UA types. Namespace indexes may vary from server to server and after restart of servers. This table is used as a map when importing to a server, and it is never necessary to change the index in the file.
Column Name | Explanation |
---|---|
Namespace | The namespace URI. |
Index | The namespace index associated with a namespace. The index may vary between servers and server restarts. Never change the Index in a TMI |
The Object sheet
There may be many object sheets, with different names. This example shows the sheet called Equipment from our pump room example. All instances of type EquipmentType will be in this sheet, as defined in the Master sheet. To add more objects of EquipmentType, simply add rows in this sheet and type inthe data for the objects.
Column Name | Explanation |
---|---|
RelativePath | The relative path from the top node (the node that was selected for export). The RelativePath is a series of DisplayNames separated by '/'. See later examples of this. You may reference instances outside of your model. The RelativePath will then start from the Objects node, Object/SomeOject... An instance may have multiple parents, in this case, the relative paths are all entered, separated by ';'. In this case The Reference column must also contain all references, separated by ';', in the same order as in RelativePath. |
Reference | The reference to this instance from its parent. Note that no namespace index is needed, it is assumed that references are not extended and therefore are unique by name. |
BrowseName | The BrowseName of the object. |
DisplayName | The DisplayName of the object. If left blank, the object will not be created unless the ModellingRule is Mandatory. |
NodeId | The NodeId of the object. If left blank, it will be generated on import. |
Description | The Description attribute of the object. |
EquipmentLevel | The EquipmentLevel (ISA95) of the object. This property could have been defined in the _PT sheet, but is included here for convenience, since it is an integral part of ISA95 |
EquipmentLevelId | The NodeId of the EquipmentLevel property. If left blank, it will be generated on import. |
ModellingRule | The ModellingRule of the object. This column is for information only, and will not be set on import. The ModellingRule is defined in the type this object is a part of. |
The instance sheet called SimplePump_Compressor contains a pump:
We see from the RelativePath column that this pump is a child of PumpRoom. The ClassType column is just for information and will be ignored in an import operation. To add more pumps, simply add more rows, and import.
The EquipmentProperty sheet
The EquipmentProperty sheet defines EquipmentProperties (variables) for objects in the Object sheet. Each Object sheet has an associated EquipmentProperty sheet. The EquipmentProperty sheet has the same name as the object sheet, postfixed with '_EP'.
All types in this sheet is, or inherits, EquipmentPropertyType (ISA95). In addition to standard properties (of type PropertyType) of EquipmentPropertyType, properties from the UA DataAccess definition are added in this sheet, for convenience.
The UA DataAccess properties are:
- InstrumentRange
- EURange
- EngineeringUnits
- Definition
- ValuePrecision
- TrueState
- FalseState
Any properties outside this scope are located in the _PT sheet.
The EquipmentProperty sheet for instances in SimplePump_Compressor, is:
Column Name | Explanation |
---|---|
RelativePath | The relative path from the top node (the node that was selected for export). The RelativePath is a series of DisplayNames separated by '/'. |
Reference | The reference to this instance from its parent. Note that no namespace index is needed, it is assumed that references are not extended and therefore are unique by name. |
EquipmentPropertyType | UA type of this EquipmentProperty. A type that inherits from EquipmentPropertyType (an ISA95 type). |
BrowseName | The BrowseName of the instance. |
DisplayName | The DisplayName of the instance. If left blank, the instance will not be created unless the ModellingRule is Mandatory. In our example, AssetAssignment and Running will not be created in an import operation. |
NodeId | The NodeId of the instance. If left blank, it will be generated on import. |
Description | The Description attribute of the instance. |
ModellingRule | The ModellingRule of the instance. |
InitialValue | The initial value of the variable. The value the variable will have after an Apis restart. This can be useful for variables that are not mapped. |
DataType | The data type of the variable value. |
EngineeringUnits | Unit of the variable. See the Unit sheet for all available units. |
EngineeringUnitsId | The NodeId of the EngineeringUnits property. If left blank, it will be generated on import. |
EURange | Normal operating range for this value. |
EURangeId | The NodeId of the EURange property. If left blank, it will be generated on import. |
InstrumentRange | The value range that can be returned by the instrument. |
InstrumentRangeId | The NodeId of the InstrumentRange property. If left blank, it will be generated on import. |
ValuePrecision | The maximum precision that the server can maintain for the value. |
ValuePrecisionId | The NodeId of the ValuePrecision property. If left blank, it will be generated on import. |
Definition | A vendor-specific, human readable string that specifies how the value is calculated. |
DefinitionId | The NodeId of the Definition property. If left blank, it will be generated on import. |
StoreToIMS | Store the value to a historian. |
StoreToIMSId | The NodeId of the StoreToIMS property. If left blank, it will be generated on import. |
FalseState | String to be associated with this value when it is FALSE |
FalseStateId | The NodeId of the FalseState property. If left blank, it will be generated on import. |
TrueState | String to be associated with this value when it is TRUE |
TrueStateId | The NodeId of the TrueState property. If left blank, it will be generated on import. |
Expression | An expression used to calculate the value |
ExternalItem1 | An external item that the value depends on. There may be more than one ExternalItem. Make a new column for each and name them ExternalItem2 ... ExternalItemN |
The Property sheet
The Property sheet defines properties of the UA type PropertyType. Each Instance sheet has an associated Property sheet. The Property sheet has the same name as the object sheet, postfixed with '_PT'. Some properties are, for convenience, in the Object and EquipmentProperty sheets, the rest of the properties are in this sheet. Properties of objects and properties their EquipmentProperties are listed in this sheet. We can see from RelativePath in the sheet below that the property 'MyProperty' is a property of object 'Pump_01', and the property 'SomeProperty' is a property belonging to the EquipmentProperty 'OutPressure'.
Column Name | Explanation |
---|---|
RelativePath | The relative path from the top node (the node that was selected for export). The RelativePath is a series of DisplayNames separated by '/'. |
Reference | The reference to this property from its parent. |
PropertyType | The UA type of the property. |
BrowseName | The BrowseName of the property. |
DisplayName | The DisplayName of the property. If left blank, the property will not be created unless the ModellingRule is Mandatory. |
NodeId | The NodeId of the property. If left blank, it will be generated on import. |
Description | The Description attribute of the property. |
ModellingRule | The ModellingRule of the property. |
Value | The value attribute of the property |
DataType | The data type of the value |
The Unit sheet
The Unit sheet contains all available units on the UA server when the model was exported. Values defined for the EngineeringUnits property are units from this list. In the TMI form, a drop-down that contains all units is available for all EngineeringUnits. You can type only the DisplayName of the unit if you want, the first unit that matches the DisplayName will then be selected (the same DisplayName may appear in several namespaces). The format of the unit code is [eu namespace index]:[displayname][[id]].
Column Name | Explanation |
---|---|
DisplayName | The DisplayName of the unit |
Description | The Description of the unit |
Id | A unique unit id |
EU Namespace | The namespace of the unit |
Code | A code used to define a unit uniquely in the spreadsheet |