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 nameTypeDescriptionRequired
IdSystem.Object[3]ID of the instance. Three parts: {OwnerComponent, AccessType, TargetReference}read-only
TargetReferenceString

Reference to object this definition is applied to.

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

TargetStringTargetReference resolved to actual object (showed by display name).read-only
OwnerComponentInt32 (Enum: DataAccessOwner)Component for which this definition is done. Two alternatives: 'OPC' (0) or 'Device' (1). String representation defined in enumeration DataAccessOwner.
AccessTypeUInt8 (Enum: DataAccessType)Categorization of Access. Available values: 'Realtime', 'Historical', 'Events'.
AccessPathStringBased 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
INBoolDefines if the property is is used to collect data into database
OUTBoolDefines if the property used to write values to external data source
OptionsStringOwnerComponent 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 nameTypeDescriptionRequired
IdSystem.Object[2]ID of the instance. Three parts: {OwnerComponent, TargetReference}read-only
NameStringName used to give human-understandable identifier for the definition in this node.
TargetReferenceString

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.

TargetStringTargetReference resolved to actual object (showed by display name).read-only
SamplingIntervalSystem.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.
PublishingIntervalSystem.TimeSpan (Int64, tics, 100ns)How frequently data is exchanged between the client and server. Typically the same or longer time period than SamplingInterval.
OwnerComponentInt32 (Enum: DataAccessOwner)Component for which this definition is done. Two alternatives: 'OPC' (0) or 'Device' (1). String representation defined in enumeration DataAccessOwner.
OptionsStringOwnerComponent 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

AttributeRequirements
IdRead-Only field.
UUID type. Used as the primary key to acquire full information of a record
NameName used to give a human-understandable identifier for the definition in this node.
Owner ComponentComponent for which this definition is done.
Options:
  • OPC* - For Classic OPC AE
  • OPC UA Linux* - For OPCUA (Obsolete)
  • OPC UA V3 - For OPCUA
TargetA 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

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:
  • 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