The AutomationComponentType is the base ObjectType for an OPC UA FX device, controller, PLC, instrument, etc. It includes information related to the current Asset, the available functionality, its capabilities (including communication-related capabilities) and any related offline information. The AutomationComponentType is formally defined in Table 4 and Table 5.
Table 4 – AutomationComponentType definition
Attribute |
Value |
||||
BrowseName |
3:AutomationComponentType |
||||
IsAbstract |
False |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the 0:BaseObjectType defined in OPC 10000-5 |
|||||
0:HasComponent |
Object |
3:FunctionalEntities |
|
0:FolderType |
M |
0:HasComponent |
Object |
3:Assets |
|
0:FolderType |
M |
0:HasComponent |
Object |
3:PublisherCapabilities |
|
3:PublisherCapabilitiesType |
O |
0:HasComponent |
Object |
3:SubscriberCapabilities |
|
3:SubscriberCapabilitiesType |
O |
0:HasComponent |
Object |
3:ComponentCapabilities |
|
3:AutomationComponentCapabilitiesType |
M |
0:HasProperty |
Variable |
3:ConformanceName |
0:UriString |
0:PropertyType |
O |
0:HasComponent |
Method |
3:EstablishConnections |
Defined in 6.2.4 |
M |
|
0:HasComponent |
Method |
3:CloseConnections |
Defined in 6.2.5 |
M |
|
0:HasComponent |
Object |
3:Descriptors |
|
0:FolderType |
M |
0:HasComponent |
Variable |
3:AggregatedHealth |
3:AggregatedHealthDataType |
3:AggregatedHealthType |
M |
0:HasComponent |
Object |
5:Diagnostics |
|
5:FunctionalGroupType |
O |
0:HasComponent |
Object |
3:AutomationComponentLog |
|
0:LogObjectType |
O |
0:GeneratesEvent |
ObjectType |
0:SystemStatusChangeEventType |
Defined in OPC 10000-3 |
|
|
ConformanceUnits |
|||||
UAFX AutomationComponent Base |
Table 5 – AutomationComponentType additional References
SourceBrowsePath |
Reference Type |
IsForward |
TargetBrowsePath |
||||
|
0:IsHostedBy |
True |
|
The components of the AutomationComponentType have additional subcomponents, which are defined in Table 6.
Table 6 – AutomationComponentType additional subcomponents
BrowsePath |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
3:FunctionalEntities |
0:Organizes |
Object |
3:<FunctionalEntity> |
|
3:FunctionalEntityType |
OP |
3:Assets |
0:Organizes |
Object |
3:<Asset> |
|
3:FxAssetType |
OP |
5:Diagnostics |
0:HasComponent |
Variable |
3:EstablishCallCount |
0:UInt32 |
0:BaseDataVariableType |
O |
5:Diagnostics |
0:HasComponent |
Variable |
3:EstablishCallFailedCount |
0:UInt32 |
0:BaseDataVariableType |
O |
5:Diagnostics |
0:HasComponent |
Variable |
3:CloseCallCount |
0:UInt32 |
0:BaseDataVariableType |
O |
5:Diagnostics |
0:HasComponent |
Variable |
3:CloseCallFailedCount |
0:UInt32 |
0:BaseDataVariableType |
O |
FunctionalEntities provides a Folder for the FunctionalEntities that this AutomationComponent exposes. The Folder shall be restricted to hold only instances of a type derived from FunctionalEntityType or instances that implement the IFunctionalEntityType Interface. The Folder may be empty. FunctionalEntities can reference other FunctionalEntities, but FunctionalEntities that are directly referenced from this Folder are considered top-level FunctionalEntities.
Assets provides a Folder for assets. It shall include all assets that are referenced from the FunctionalEntities of this AutomationComponent. An Asset might be a complex type that includes other Assets. Assets directly referenced from this Folder are considered top-level Assets. For more details on the asset model, see 6.3. The Folder shall be restricted to hold only instances of FxAssetType or a subtype of it, or instances that implement the IVendorNameplateType, ITagNameplateType, and IAssetRevisionType Interfaces. The Folder may be empty; however, typically, there is at least one entry in this Folder. For examples of Assets, see Annex D.
Objects may be added/removed to/from the FunctionalEntities or Assets Folders during operation, in which case the Server shall generate GeneralModelChangeEvent to reflect these changes.
The optional PublisherCapabilities provide the Publisher capabilities associated with this AutomationComponent. They apply to all instances in the FunctionalEntities Folder. An individual FunctionalEntity can further restrict these capabilities. If an AutomationComponent supports being a Publisher as defined in OPC 10000-14, then an instance of this Object shall be provided.
The optional SubscriberCapabilities provides the general Subscriber capabilities associated with this AutomationComponent. They apply to all instances in the FunctionalEntities Folder. An individual FunctionalEntity can further limit these capabilities. If an AutomationComponent supports being a Subscriber as defined in OPC 10000-14, then an instance of this Object shall be provided.
ComponentCapabilities is an AutomationComponentCapabilitiesType Folder that describes the functionality provided by an AutomationComponent (e.g., number of supported Connections, etc.).
The optional ConformanceName provides the URL to the product’s listing on the OPC Foundation website, under which the result of the conformance testing for this product can be found. The product's name may be different from the name of the AutomationComponent since conformance testing may be done for a product family, but this shall be described on the OPC Foundation product page. The DisplayName of the instance of the AutomationComponent shall be able to be resolved on the Website to the specifics of the product that was tested. Furthermore, at least one Asset listed in this AutomationComponent shall include IVendorNameplateType information on the related OPC Foundation product page.
Descriptors is a Folder that can contain AcDescriptors. Typically, at least one AcDescriptor is included, but depending on the system's architecture, additional AcDescriptors might be added. These added AcDescriptors describe added FunctionalEntities or added Assets or added combinations of Assets and FunctionalEntities. The additions can result from application developers adding functionality, integration of this AutomationComponent into a larger piece of Equipment, or the addition of modular Assets to the system. This Folder may also contain other Folders that can be used to organise the AcDescriptors.
AggregatedHealth provides the aggregated health of the AutomationComponent; this includes an aggregation of the health of all included Assets and FunctionalEntities. For the definition of the AggregatedHealthType and the aggregation rules, see 9.1.
AutomationComponentLog exposes a LogObject for the AutomationComponent. The LogObject (see OPC 10000-26) can be accessed to obtain the log of activity related to this AutomationComponent. Events can be mapped to LogRecords ( see OPC 10000-26) for the LogObject. LogObject records can also be generated without the generation of an Event. If the LogObject is supported, the AutomationComponent shall produce LogRecords for all calls of the EstablishConnections and CloseConnections Methods. The LogObject configuration would determine if the LogRecords are stored. The LogRecords shall include the optional TraceContext information if it is provided by the client invoking the EstablishConnection or CloseConnection calls. In addition, it is recommended that for errors, the AdditionalData field includes the error information as described in the OPC 10000-26 Log Event EventType clause.
Diagnostics is a FunctionalGroup (Folder) that contains Variables that report diagnostic statistics and counters (see OPC 10000-100 Recommended FunctionalGroup BrowseNames).
EstablishCallCount diagnostics counter Variable provides a count of the number of EstablishConnections calls received.
EstablishCallFailedCount diagnostics counter Variable provides a count of the number of EstablishConnections calls that failed (any command).
CloseCallCount diagnostics counter Variable provides a count of the number of CloseConnections calls received.
CloseCallFailedCount diagnostics counter Variable provides a count of the number of CloseConnections calls that failed.
The IsHostedBy ReferenceType (see OPC 10000-23) indicates the Assets used to execute the functionality provided by a FunctionalEntity. There may be multiple IsHostedBy References from one FunctionalEntity to multiple Assets. An example is a drive axis FunctionalEntity, which has IsHostedBy References to a drive inverter Asset and a motor Asset. Another example is an input FunctionalEntity having IsHostedBy References to the input module, the head, and the firmware Assets of a modular device.
Figure 19 illustrates an example of the usage of IsHostedBy.
Figure 19 – IsHostedBy Reference example
If Eventing is supported, the AutomationComponent shall generate Events of SystemStatusChangeEventType (see OPC 10000-3) if the ServerState changes (e.g., following a power cycle).