Equipment model and data access classes

Equipment Model is a predefined meta information model in ABB Ability™ History for modelling industrial assets and processes and implement applications against them.

Equipment model supports inheritance to enable model type hierarchies between similar types of equipment. Please see an example figure below.

Further reading

Before moving on, if you need further information on the concept of our Equipment Model, please see Equipment Model article. If you want to see our example Equipment Model case, please find tutorial under Example Equipment Model.

Data collection from 3rd party systems

The picture below shows an example of how to configure data collection from OPC server.

1355

Configuring data collection using property-specific definitions from 3rd party OPC DA server.

DataAccessSource

The class DataAccessSource is used to define from where data is collected.

Property name

Type

Description

Required

Id

System.Object[3]

ID of the instance. Three parts: {OwnerComponent, AccessType, TargetReference}

read-only

TargetReference

String

Reference to object this definition is applied to.

Definition can be attached to:
• Instance property: /<classname>[<propertyname>]/|<instanceprocesspath>

Target

String

TargetReference resolved to actual object (showed by display name).

read-only

OwnerComponent

Int32 (Enum: DataAccessOwner)

Component for which this definition is done. Two alternatives: 'OPC' (0) or 'Device' (1). String representation defined in enumeration DataAccessOwner.

AccessType

UInt8 (Enum: DataAccessType)

Categorization of Access. Available values: 'Realtime', 'Historical', 'Events'.

AccessPath

String

Based on the owner component.
Example:
OPC:
opcda://<ip_or_dns>/<ProgId>/{CLSID}
OPCUA
opc.tcp://nodeIP:port/progid//ItemId;namespace=name
MODBUS
modbus://Node/Port/Unit_Id/A

IN

Bool

Defines if the property is is used to collect data into database

OUT

Bool

Defines if the property used to write values to external data source

Options

String

OwnerComponent specific fine-tunings.

Definitions can be applied to equipment properties, but scripting support needs to be done to allow attaching to property declarations (cDbPropertyInfo) as well.

DataAccessSource configuration using Engineering UI

1911

Data Access Source

DataAccessRealTime

The class DataAccessRealTime is used to define how data is collected.

Property name

Type

Description

Required

Id

System.Object[2]

ID of the instance. Three parts: {OwnerComponent, TargetReference}

read-only

Name

String

Name used to give human-understandable identifier for the definition in this node.

TargetReference

String

Reference to object this definition is applied.

Definition can be attached to:

• Instance property: /<classname>[<propertyname>]/<instanceid>|<instancename>
• Instance: /<classname>/<instanceid>|<instancename>
• Class property info: /<classname>[<propertyname>]
• Class: /Class/<classname>

In instance property and the instance-specific TargetReference definitions, one can refer either using the raw Id property of the referenced object, or by the Name property. If Name references are used, it comes after a pipe symbol |. Syntax is common with VtrinLib object reference syntax.

Target

String

TargetReference resolved to actual object (showed by display name).

read-only

SamplingInterval

System.TimeSpan (Int64, tics, 100ns)

How frequently the device, where data is produced, is sampled. Setting 0 means 'event based' using fastest mechanism supported in the device.

PublishingInterval

System.TimeSpan (Int64, tics, 100ns)

How frequently data is exchanged between the client and server. Typically the same or longer time period than SamplingInterval.

OwnerComponent

Int32 (Enum: DataAccessOwner)

Component for which this definition is done. Two alternatives: 'OPC' (0) or 'Device' (1). String representation defined in enumeration DataAccessOwner.

Options

String

OwnerComponent specific fine-tunings.

Rules to be followed in the OwnerComponent link, when DataAccessRealTime is interpreted:

if InstanceProperty is having definition -> USE IT
else if Instance is having definition -> USE IT
else if Instance’s parent (recursively) is having definition -> USE IT
else if ClassPropertyInfo is having definition -> USE IT
else if Class is having definition -> USE IT
else move up in class_inheritance

DataAccessRealTime configuration using Engineering UI

1918

Data Access Realtime

DataAccessEvents table

The class 'DataAccessEvent' is used to configure the events subscription from OPC Classic and OPC UA.
The appropriate Owner Component has to be selected based on the event source.

Event Configurations

Attribute

Requirements

Id

Read-Only field.
UUID type. Used as the primary key to acquire full information of a record

Name

Name used to give a human-understandable identifier for the definition in this node.

Owner Component

Component for which this definition is done.
Options:

  • OPC* - For Classic OPC AE
  • OPC UA Linux* - For OPCUA

Target

A comma-separated list of target database tables to where to store the events
Supported values:
OpcEventLog
EquipmentEventLog
OpcEventLog,EquipmentEventLog

AccessPath

Example:
OPC:
opcda://<ip_or_dns>/<ProgId>/{CLSID}
For 800xA: opcda://172.16.16.74/ABB.OPCEventServer.1/{D2BA5EF9-84CA-489E-B83B-0CB157FBB0EB}/
For Matrikon: opcda://HOST1/Matrikon.OPC.Simulation.1/{F8582CF2-88FB-11D0-B850-00C0F0104305}/

OPCUA
opc.tcp://nodeIP:port;UaQueueSize=100;UaIdType=i;UaNameSpace=name
opc.tcp://HOST1:48010///2253;UaQueueSize=100;UaIdType=i;UaNamespace=http://www.unifiedautomation.com/DemoServer/

Filter

Defines the UA fields to be excluded. Use keyword ExcludedUaFields. The format is ExcludedUaFields=uafield1,uafield2,uafield3

Options

Optional definitions for the event collection and storing in format Keyword=Value;Keyword=Value.
The following keywords can be used:

  • Buftim* = defines the buffering time in seconds (the default is 10). For OPC UA this defines the publish interval of the subscription.

  • Fields* = defines the source and target fields.
    The default value contains all possible standard event attribute collections currently supported by the OPC client. (See the list of them in the UaFields documentation linked above)\

  • NOTICE*: Currently, OpcUaClient ONLY support UaFields which are defined by the OPC foundation standard. Their namespace index are 0.

DataAccessEvent configuration using Engineering UI

1920

Data Access Realtime