Machines may organize their components in many different ways. Therefore, it might be challenging to find all components that are part of a Machine.
This building block provides the capability to easily find all identifiable components (providing the Identification Object) of a Machine. Figure 10 gives an overview. Each Machine providing this building block provides the Components Object, which directly references all identifiable components of a Machine.
Note: That does not preclude that a Machine is organizing its components in various other hierarchies as well.
Figure 10 – Building Block for Finding all Identifiable Components of a Machine
As a special case, a Machine might contain other Machines as components. In that case, the contained Machine is referenced from the Components Object like any other component, as shown in Figure 11. In addition, the contained Machine is also referenced from the Machines Object directly, as also shown in the Figure.
Note: Consider the example of a Machine MachineA containing a Machine MachineB. Components of the contained MachineB are typically only considered to be components of MachineB, that is, they are typically not directly referenced from the Components Object of the containing MachineA.
Note: It is expected that domain-specific companion specifications using this specification will define what assets of the domain in what usage are considered to be Machines or components of Machines.
Figure 11 – Example of a Machine containing a Machine
The MachineComponentsType provides HasComponent References to all identifiable components of a Machine and is formally defined in Table 25.
Table 25 – MachineComponentsType Definition
Attribute |
Value |
||||
BrowseName |
MachineComponentsType |
||||
IsAbstract |
False |
||||
Description |
Contains all identifiable components of a machine |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the 0:BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasProperty |
Variable |
0:DefaultInstanceBrowseName |
0:QualifiedName |
0:PropertyType |
- |
0:HasComponent |
Object |
<Component> |
|
0:BaseObjectType |
OP |
The <Component > Object has the ModellingRule OptionalPlaceholder and represents the identifiable components of a Machine. As any ObjectType can be used for components, it is of BaseObjectType. As all identifiable components shall contain the Identification Object, <Component> references to that AddIn as defined in Table 26. As a Machine can contain other Machines, it does not reference to the MachineryComponentIdentificationType, but the MachineryItemIdentificationType, which is the abstract supertype of MachineryComponentIdentificationType and MachineIdentificationType.
Table 26 – MachineComponentsType Additional Subcomponents
SourceBrowsePath |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
<Component> |
0:HasAddIn |
Object |
2:Identification |
|
MachineryItemIdentificationType |
M |
The InstanceDeclarations of the MachineComponentsType have additional Attribute values defined in Table 27.
Table 27 – MachineComponentsType Attribute Values for Child Nodes
SourceBrowsePath |
Value |
Description |
0:DefaultInstanceBrowseName |
Components |
The default BrowseName for instances of the type. |
<Component> |
- |
Represents the identifiable components of a machine. |