This building block provides the information about the past and estimated remaining lifetime of a MachineryItem or other aspects of a MachineryItem like a software license. It uses the 2:LifetimeVariableType defined in OPC 10000-100 as base.
In Figure 21, an example of a machine providing such information is given. The MachineryLifetimeCounterType, defined in 15.2, contains one or many Variables of 2:LifetimeVariableType. The X:SpecificMachineType provides the building block in its MachineryBuildingBlocks folder using the default name LifetimeCounters. In the example, there is only one lifetime counter for the validity of a software license, which is also represented as Object in the AddressSpace.
Figure 21 – Example of Building Block for Lifetime Counter
In Figure 22, an example of a machine and a component of the machine, both providing lifetime counters, is given. This example leaves out any other building blocks like identification. Like the Figure 21, the machine provides a lifetime counter for its software. In addition, the component provides a lifetime counter on how many parts it has and can produce. In this case, machine and component provide the LifetimeCounters building block and both reference the PartsProduced lifetime counter, as it is important for both. This is not required, and it is also allowed that the LifetimeCounters of the machine does not reference the PartsProduced or the component does not provide the LifetimeCounters building block.
Figure 22 – Example of Building Block for Lifetime Counter including a component
In Table 37, some values are shown that could be the current state of values of the example. The software license has a validity of 365 days, where 200 days are remaining. The parts that can be produced by the component are 1000, where 553 have already been produced.
Node |
LicenseValidity |
PartsProduced |
LifetimeVariable |
200 |
553 |
EngineeringUnits (Mandatory) |
day |
number of parts |
StartValue (Mandatory) |
365 |
0 |
WarningValues (Optional) |
10 |
950 |
LimitValue (Mandatory) |
0 |
1000 |
Indication (Optional) |
TimeIndicationType |
NumberOfPartsIndicationType |
As shown in the examples, it is expected that the lifetime counters can also be accessed by different paths than the building block. The building block allows an optimized access to all relevant counters and thus clients can supervise all those counters and indicate when a warning level or the limit value is reached.
The MachineryLifetimeCounterType serves as AddIn and provides an entry point to various lifetime variables. It is formally defined in Table 38.
Table 38 – MachineryLifetimeCounterType Definition
Attribute |
Value |
||||
BrowseName |
MachineryLifetimeCounterType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the 0:FolderType defined in OPC 10000-5 |
|||||
0:HasComponent |
Variable |
<LifetimeVariable> |
0:Number |
2:LifetimeVariableType |
MP |
0:HasProperty |
Variable |
0:DefaultInstanceBrowseName |
0:QualifiedName |
0:PropertyType |
|
Conformance Units |
|||||
Machinery Lifetime Counter |
The <LifetimeVariable > can be used for any kind of lifetime variables. There shall be at least one lifetime variable. In situations, where there may be no lifetime variable available, the AddIn should be defined as optional on the TypeDefinition and should not be provided on the instance if there is no lifetime variable.
The child Nodes of the MachineryLifetimeCounterType have additional Attribute values defined in Table 39.
Table 39 – MachineryLifetimeCounterType Attribute values for child Nodes
BrowsePath |
Value Attribute |
Description Attribute |
0:DefaultInstanceBrowseName |
LifetimeCounters |
The default BrowseName for instances of the type |