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.
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: | ✓ |
| 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

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: In instance property and the instance-specific | ✓ |
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_inheritanceDataAccessRealTime configuration using Engineering UI

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:
|
| Target | A comma-separated list of target database tables to where to store the events Supported values: OpcEventLog EquipmentEventLog OpcEventLog,EquipmentEventLog |
| AccessPath | Example: OPCUA |
| Filter | New OPC client See here: https://docs.abilityhistory.abb.com/docs/opc-ua-client-1#dataaccessevent-table Classic OPC client Defines the UA fields to be excluded. Use keyword ExcludedUaFields. The format is ExcludedUaFields=uafield1,uafield2,uafield3 |
| Options | New OPC client See here: https://docs.abilityhistory.abb.com/docs/opc-ua-client-1#dataaccessevent-table Classic OPC client Optional definitions for the event collection and storing in format Keyword=Value;Keyword=Value.The following keywords can be used:
|
DataAccessEvent configuration using Engineering UI

Data Access Realtime
