The MachineToolType represents the entire machine tool interface of the information model. It is the entry point to the OPC UA interface of a machine tool. It gives a basic structure to the interface. An instance of this type aggregates all information related to one machine tool.
All instances of MachineToolType have to be referenced from the 3:Machines node defined in OPC 40001-1. At least one MachineToolType instance shall be present to qualify for any profile of OPC UA for Machine Tools.
The MachineToolType is formally defined in Table 9.
Table 9 – MachineToolType Definition
Attribute |
Value |
||||
BrowseName |
MachineToolType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Object |
Equipment |
|
EquipmentType |
M |
0:HasAddIn |
Object |
2:Identification |
|
MachineToolIdentificationType |
M |
0:HasComponent |
Object |
Monitoring |
|
MonitoringType |
M |
0:HasComponent |
Object |
Notification |
|
NotificationType |
M |
0:HasComponent |
Object |
Production |
|
ProductionType |
M |
Equipment (see 8.5), Identification (see 8.2), Monitoring (see 8.3), Notification (see 8.6) and Production (see 8.4) are instances of the respective types. They are used to structure the information in the MachineToolType topically.
The MachineToolIdentificationType of the Machine Tools information model holds static data which shall uniquely identify a machine tool among a pool of the machine tool operating entity. It is a subtype of the MachineIdentificationType defined in OPC 40001-1, so it inherits all InstanceDeclarations specified there.
The MachineToolIdentificationType is formally defined in Table 10.
Table 10 – MachineToolIdentificationType Definition
Attribute |
Value |
||||
BrowseName |
MachineToolIdentificationType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the MachineIdentificationType defined in OPC 40001-1 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Object |
SoftwareIdentification |
|
BaseObjectType |
O |
SoftwareIdentification contains a list of instances of the SoftwareIdentificationType (see Table 12). This list contains the machine tool’s software identification information. It allows to add multiple software items, e.g. one for each of PLC, NC and HMI.
SoftwareRevision inherited from the MachineIdentificationType shall contain an overall software patch level of the machine tool. Individual software revision numbers may be given using SoftwareIdentification.
For the DeviceClass inherited from the MachineIdentificationType, the values in Table 11 shall be used. The most appropriate value, based on the main machine tool technology shall be chosen. Detailed definitions can be found at http://www.rotebuch.de.
Additive manufacturing machines are not defined in the source mentioned. They include every additive technology currently available.
Table 11 – DeviceClasses for Machine Tools
Additive manufacturing machine |
Forming machine |
Nibbling machine |
Shearing machine |
Additive manufacturing hybrid machine |
Gear cutting machine |
Other |
Slotting machine |
Beading machine |
Grinding machine |
Planer |
Straightening machine |
Bending machine |
Hammer machine |
Planing machine |
Testing machine |
Broaching machine |
Hardening machine |
Plasma cutting machine |
Thermal deburring machine (TEM) |
Copy milling machine |
Honing machine |
Polishing machine |
Transfer machine |
Curling machine |
Lapping machine |
Press |
Trimming machine |
Deburring machine |
Laser ablation machine |
Profiling machine |
Turn-mill machining centre |
Drawing machine |
Laser cutting machine |
Punch laser machine |
Turning machine |
Drilling / Boring machine |
Laser drilling machine |
Punching machine |
Water jet cutting machine |
Electrical discharge machine (EDM) |
Laser welding machine |
Riveting machine |
|
Electro chemical machine (ECM) |
Machining centre |
Rolling machine |
|
Finishing machine |
Machining centre (other) |
Rotary transfer machine |
|
Flanging machine |
Measuring machine |
Sawing machine |
|
Folding machine |
Milling machine |
Seaming machine |
|
Forging machine |
Mill-turn machining centre |
Shaping machine |
|
All other properties of the MachineToolIdentificationType are defined in OPC 40001-1 and are intended to be used as indicated there.
Table 12 – MachineToolIdentificationType Additional Subcomponents
Source Path |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
SoftwareIdentification |
0:HasComponent |
Object |
<SoftwareItem> |
|
SoftwareIdentificationType |
MP |
Figure 13 – Example Instance of SoftwareIdentification in a Machine Tools Server
The SoftwareIdentificationType holds information about the specific software in operation in the machine tool. Almost all modern machine tools operate on several software system components, this shall enable presentation of software components (NC Kernel, HMI base system, etc.). Figure 13 shows an example instance of the application of this type within the Identification component of the MachineToolType.
The SoftwareIdentificationType is formally defined in Table 13.
Table 13 – SoftwareIdentificationType Definition
Attribute |
Value |
||||
BrowseName |
SoftwareIdentificationType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasProperty |
Variable |
2:SoftwareRevision |
0:String |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
Identifier |
0:String |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
2:Manufacturer |
0:LocalizedText |
0:PropertyType |
O, RO |
In most cases, machine tools consist of several software components. SoftwareComponent can be an individual application, or plugin of an application involved in controlling the machine tool.
SoftwareRevision provides a string representation of the version or revision level of the software component, the software/firmware of a hardware component. Examples are: “PLL01 1.10.0.3” V05.01.01.15”, “3.1 R1293”, “70.0.1”.
The Identifier Property provides an identifier to distinguish the software component.
Manufacturer refers to the manufacturer/producer of the software.
The MonitoringType is used to structure information given in the MachineToolType. It contains the monitoring information of the machine tool and its subsystems.
The MonitoringType is formally defined in Table 14.
Table 14 – MonitoringType Definition
Attribute |
Value |
||||
BrowseName |
MonitoringType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Object |
<MonitoredElement> |
|
ElementMonitoringType |
OP |
0:HasComponent |
Object |
MachineTool |
|
MachineOperationMonitoringType |
M |
0:HasComponent |
Object |
Stacklight |
|
4:BasicStacklightType |
O |
<MonitoredElement > is an optional Placeholder for ElementMonitoringType instances. This allows for any number of such instances as a component of the MonitoringType. For the DisplayName, it is recommended to use the value of the Name Property of the respective ElementMonitoringType instance.
MachineTool provides overall monitoring information of the machine tool.
Stacklight contains the information about a stacklight’s composition and status. It is an object of BasicStacklightType, defined in OPC 10000-200. If the machine tool has a stacklight available, the Stacklight shall be present.
The optional 4:StackLevelType and 4:StackRunningType of the 4:BasicStacklightType shall not be used, only a segmented light shall be shown. Thus, the 4:StacklightMode of each stacklight has to be “Segmented” (0).
As 4:<StackElement>, only elements of 4:StackElementLightType shall be used. For these, the 4:SignalOn, 4:SignalColor and 4:SignalMode shall be used, not the 4:ControlChannelType (see Table 15).
Table 15 – MonitoringType Additional Subcomponents
Source Path |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
||
Stacklight |
0:HasOrderedComponent |
Object |
0:<OrderedObject> |
|
4:StackElementLightType |
MP |
||
|
0:HasProperty |
Variable |
4:SignalOn |
0:Boolean |
0:PropertyType |
M, RO |
||
|
0:HasComponent |
Variable |
4:SignalColor |
4:SignalColor |
0:BaseDataVariableType |
M, RO |
||
|
0:HasComponent |
Variable |
4:SignalMode |
4:SignalModeLight |
0:BaseDataVariableType |
M, RO |
The ElementMonitoringType is intended to be a supertype for all monitoring information that is specific to a particular element within the machine tool. An element doesn’t have to be a physical component. Examples for such elements are NC channels or spindles. It is an abstract type, meaning it is not instantiated, only the subtypes are.
The ElementMonitoringType is formally defined in Table 16.
Table 16 – ElementMonitoringType Definition
Attribute |
Value |
||||
BrowseName |
ElementMonitoringType |
||||
IsAbstract |
True |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasSubtype |
ObjectType |
ChannelMonitoringType |
Defined in 8.3.7 |
||
0:HasSubtype |
ObjectType |
WorkingUnitMonitoringType |
Defined in 8.3.3 |
||
0:HasProperty |
Variable |
Name |
0:String |
0:PropertyType |
M, RO |
The Name property refers to a name of the element.
The WorkingUnitMonitoringType is a supertype used to group monitoring information of machine tool elements that are a direct and active part of the machining process. It is an abstract type, meaning it is not instantiated, only the subtypes are.
The WorkingUnitMonitoringType is formally defined in Table 17.
Table 17 – WorkingUnitMonitoringType Definition
Attribute |
Value |
||||
BrowseName |
WorkingUnitMonitoringType |
||||
IsAbstract |
True |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the ElementMonitoringType defined in 8.3.2 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasSubtype |
ObjectType |
SpindleMonitoringType |
Defined in 8.3.6 |
||
0:HasSubtype |
ObjectType |
LaserMonitoringType |
Defined in 8.3.4 |
||
0:HasSubtype |
ObjectType |
EDMGeneratorMonitoringType |
Defined in 8.3.5 |
The WorkingUnitMonitoringType has no other explicitly defined References than HasSubtype References.
The LaserMonitoringType provides basic monitoring information of a laser device used in the machining process, i.e. a beam source for a laser beam used as a tool.
The LaserMonitoringType is formally defined in Table 18.
Table 18 – LaserMonitoringType Definition
Attribute |
Value |
||||
BrowseName |
LaserMonitoringType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the WorkingUnitMonitoringType defined in 8.3.3 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Variable |
ControllerIsOn |
0:Boolean |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
LaserState |
LaserState |
0:BaseDataVariableType |
M, RO |
ControllerIsOn being True indicates that the controller of the laser device is running. This gives no indication whether laser light is currently emitted.
LaserState indicates the current state of a laser device. It is defined in 12.4.
The EDMGeneratorMonitoringType is a collection of information about the EDM spark generator
The EDMGeneratorMonitoringType is formally defined in Table 19
Table 19 – EDMGeneratorMonitoringType Definition
Attribute |
Value |
||||
BrowseName |
EDMGeneratorMonitoringType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the WorkingUnitMonitoringType defined in 8.3.3 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Variable |
IsOn |
0:Boolean |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
EDMGeneratorState |
EDMGeneratorState |
0:BaseDataVariableType |
M, RO |
IsOn being True indicates that the EDM spark generator has a valid set of technology parameters, meets all safety conditions required and is switched on.
EDMGeneratorState indicates the current state of the EDM spark generator. It is defined in 12.3.
The SpindleMonitoringType is a collection of information about the rotary process axis.
Depending on the actual context of the machine tool, this may for example be a tool-holding milling spindle or a workpiece-holding turning spindle.
The SpindleMonitoringType is formally defined in Table 20.
Table 20 – SpindleMonitoringType Definition
Attribute |
Value |
||||
BrowseName |
SpindleMonitoringType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the WorkingUnitMonitoringType defined in 8.3.3 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Variable |
IsRotating |
0:Boolean |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
Override |
0:Double |
0:AnalogUnitRangeType |
O, RO |
0:HasComponent |
Variable |
IsUsedAsAxis |
0:Boolean |
0:BaseDataVariableType |
O, RO |
IsRotating being True indicates if the spindle is rotating and has a valid commanded rotation speed.
Override is representing the current value of the spindle override.
IsUsedAsAxis being True indicates if the monitored element is used as an axis or, if False, as a spindle. If IsUsedAsAxis is True, the values of IsRotating and Override shall not be used by a client.
The ChannelMonitoringType provides the monitoring information about one NC channel.
The ChannelMonitoringType is formally defined in Table 21.
Table 21 – ChannelMonitoringType Definition
Attribute |
Value |
||||
BrowseName |
ChannelMonitoringType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the ElementMonitoringType defined in 8.3.2 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasSubtype |
ObjectType |
CombinedChannelMonitoringType |
Defined in 8.3.8 |
||
0:HasComponent |
Variable |
ChannelState |
ChannelState |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
ChannelMode |
ChannelMode |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
FeedOverride |
0:Double |
0:AnalogUnitRangeType |
M, RO |
0:HasComponent |
Variable |
RapidOverride |
0:Double |
0:AnalogUnitRangeType |
O, RO |
0:HasComponent |
Object |
ChannelModifiers |
|
ChannelModifierType |
O |
ChannelState is representing the current status of the NC channel and is defined in 12.1.
ChannelMode is representing the current mode the NC channel operates in. It is defined in 12.2.
FeedOverride is representing the current value of the feed override of the NC channel.
RapidOverride is representing the current value of the rapid override of the NC channel.
ChannelModifiers is representing additional program modifiers usually used during special operations of the machine tool, e.g. preparation of production (see 8.3.10 ).
The CombinedChannelMonitoringType is a subtype of the ChannelMonitoringType and inherits all its InstanceDeclarations. Using this type instead of a ChannelMonitoringType provides an aggregated representation of the channels in a machine tool. The rules for aggregation are given in Table 22. Sometimes it is not necessary to provide one representation per individual channel, e.g. if one channel is of primary interest, the status of the remaining channels is irrelevant for the machine tool status. It could be used together with the separate channels. Typical applications are multi-spindle machines in which a large number of channels are used for interlinked work steps.
Table 22 – Rules for Aggregation of the CombinedChannelMonitoringType
Component of the CombinedChannelMonitoringType |
Rule for Aggregation |
ChannelState |
Mode of the channel not in “active”, otherwise “active” - if all channels active --> active - if >0 channel reset --> reset - else interrupted |
ChannelMode |
Mode of the channel not in “automatic”, otherwise “automatic” If one or more channel of the combined channels is not in "automatic" the machine tool is not producing (except if the channel is not currently in use). If for example the operator is in JogManual and moving one axis, the whole machine tool is not producing in automatic and the combined channel can be viewed as in JogManual |
FeedOverride |
selection from HMI mirrored On most multi spindle machines there is one HMI which controls the whole machine tool, so most of the input is applied to all combined channels |
RapidOverride |
selection from HMI mirrored On most multi spindle machines there is one HMI which controls the whole machine tool, so most of the input is applied to all combined channels |
ChannelModifiers |
If an element of ChannelModifiers is True in any channel, it has to be True in the combined channel. |
The CombinedChannelMonitoringType is formally defined in Table 23.
Table 23 – CombinedChannelMonitoringType Definition
Attribute |
Value |
||||
BrowseName |
CombinedChannelMonitoringType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the ChannelMonitoringType defined in 8.3.7 i.e. inheriting the InstanceDeclarations of that Node. |
The CombinedChannelMonitoringType contains no further References than the ones inherited.
The MachineOperationMonitoringType provides overall monitoring information of the machine tool.
The MachineOperationMonitoringType is formally defined in Table 24.
Table 24 – MachineOperationMonitoringType Definition
Attribute |
Value |
||||
BrowseName |
MachineOperationMonitoringType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Variable |
FeedOverride |
0:Double |
0:AnalogUnitRangeType |
O, RO |
0:HasComponent |
Variable |
PowerOnDuration |
0:UInt32 |
0:BaseDataVariableType |
O, RO |
0:HasComponent |
Variable |
OperationMode |
MachineOperationMode |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
IsWarmUp |
0:Boolean |
0:BaseDataVariableType |
O, RO |
FeedOverride is the combined actual feed override value that is effective for the manufacturing program of the machine tool.
PowerOnDuration is the duration the machine tool has been powered, meaning all systems have line voltage. It is counted in full hours. This value only increases during the lifetime of the machine tool and is not reset when the machine tool is power cycled.
OperationMode contains a MachineOperationMode value as defined in 12.5. The values of the MachineOperationMode enum are derived from the MO modes of machinery functional safety standards. For a machine tool adhering to such a standard, the OperationMode shall show the respective mode. For a machine tool not adhering to such a standard, the OperationMode shall be filled with the appropriate mode available from the MachineOperationMode Enum. The OperationMode is only a representation of the machine tool mode, it shall not be used in a safety relevant manner.
IsWarmUp being True indicates if the machine tool is performing a warmup task. A warmup is not used for production, it is the mode used to reach a stable operating point for the machine tool. An example is reaching the optimal operating temperature. This might be indicated by a hardware switch on the machine tool, a special control command, a special production program (referenced by program name) or otherwise.
The ChannelModifierType allows to show which modifiers are used while the machine tool is performing pre-production tests and similar tasks.
The ChannelModifierType is formally defined in Table 25.
Table 25 – ChannelModifierType Definition
Attribute |
Value |
||||
BrowseName |
ChannelModifierType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Variable |
BlockSkip |
0:Boolean |
0:BaseDataVariableType |
O, RO |
0:HasComponent |
Variable |
DryRun |
0:Boolean |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
OptionalStop |
0:Boolean |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
TestMode |
0:Boolean |
0:BaseDataVariableType |
O, RO |
0:HasComponent |
Variable |
SingleStep |
0:Boolean |
0:BaseDataVariableType |
M, RO |
BlockSkip being True indicates that specially marked NC program blocks are skipped.
DryRun being True indicates that a test run using with a dedicated axis feed is being performed.
OptionalStop being True indicates that the execution will stop at special machine commands.
TestMode being True indicates a test mode which enables execution of a program without physical axis movement. The machining process may be simulated during program execution.
SingleStep being True indicates if the NC channel operates in single block/single step mode.
The ProductionType is used to structure information given in the MachineToolType. It groups the information about the production plan and the production statistics.
The ProductionType is formally defined in Table 26.
Table 26 – ProductionType Definition
Attribute |
Value |
||||
BrowseName |
ProductionType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Object |
ProductionPlan |
|
ProductionJobListType |
O |
0:HasComponent |
Object |
ActiveProgram |
|
ProductionActiveProgramType |
M |
0:HasComponent |
Object |
Statistics |
|
ProductionStatisticsType |
O |
ProductionPlan is a list of all job elements currently running and planned for execution.
If there is no job on the machine tool, there may be no ProductionJob object in the list.
In case the ProductionPlan is used as a dynamic list (i.e. ProductionJobType nodes are being added and deleted), the precondition for deleting any node is that all values of variables represent the final state of the job and are sent to all clients in active subscriptions.
ActiveProgram contains the program that is currently running on the machine tool. If the machine tool control discriminates between main and subprograms, this program shall be the main program. It is used in parallel to the ProductionPlan, so it allows for an access of the running program without browsing the jobs in the ProductionPlan.
Statistics is the object that contains statistics information related to production.
The ProductionJobListType is a type used for structuring objects of ProductionJobType in an ordered list structure.
The ProductionJobListType is formally defined in Table 27.
Table 27 – ProductionJobListType Definition
Attribute |
Value |
||||
BrowseName |
ProductionJobListType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the OrderedListType defined in OPC 10001-13 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasOrderedComponent |
Object |
0:<OrderedObject> |
|
ProductionJobType |
OP |
0:<OrderedObject > is a placeholder for any number of ProductionJobType instances. To indicate the order of jobs on the machine tool, the NumberInList parameter of the ProductionJobType is used. This index shall be 0 for the first list element and increase by one for each subsequent list element. If jobs are deleted from the list or inserted into the list, the NumberInList has to be adjusted for all following ProductionJobType instances in the list, such that the NumberInList elements always form a sequential series of numbers. For the DisplayName of the <OrderedObject >, it is recommended to use the value of the Identifier Property of the respective ProductionJobType instance.
The NodeVersion and the GeneralModelChangeEventType inherited from the OrderedListType are intended to be used in the way defined in OPC 10000-3 and 7.3.
The ProductionJobType provides aggregated production data for running a sequence to produce several parts after one preparation mounting.
Examples for such a mounting are putting four raw parts on a pallet for a machining centre, setting up the fitting diameter bars in a turning centre bar feeder or loading a metal sheet from which hundreds of parts can be cut or punched. This sequence shall represent several parts which will usually (but not always) be several identical products. A job may be executed several times.
The ProductionJobType is formally defined in Table 28.
Table 28 – ProductionJobType Definition
Attribute |
Value |
||||
BrowseName |
ProductionJobType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node |
|||||
0:HasProperty |
Variable |
CustomerOrderIdentifier |
0:String |
0:PropertyType |
O, RO |
0:HasProperty |
Variable |
Identifier |
0:String |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
OrderIdentifier |
0:String |
0:PropertyType |
O, RO |
0:HasComponent |
Object |
PartSets |
|
0:BaseObjectType |
O |
0:HasComponent |
Object |
ProductionPrograms |
|
0:OrderedListType |
M |
0:HasComponent |
Variable |
RunsCompleted |
0:UInt32 |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
RunsPlanned |
0:UInt32 |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Object |
State |
|
ProductionJobStateMachineType |
M |
0:HasInterface |
ObjectType |
0:IOrderedObjectType |
|
|
|
|
|
|
|
|
|
Applied from 0:IOrderedObjectType |
|||||
0:HasProperty |
Variable |
0:NumberInList |
0:UInt16 |
0:PropertyType |
M, RO |
The components of the ProductionJobType have additional references which are defined in Table 29.
Table 29 – ProductionJobType Additional Subcomponents
Source Path |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
PartSets |
0:HasComponent |
Object |
<PartSet> |
|
ProductionPartSetType |
MP |
ProductionPrograms |
0:HasOrderedComponent |
Object |
0:<OrderedObject> |
|
ProductionProgramType |
MP |
RunsPlanned |
0:HasProperty |
Variable |
IsValid |
Boolean |
PropertyType |
M, RO |
The Identifier is the identifier of the job. This Identifier is used to reference the job in other places of the AddressSpace, e.g. in the ProductionPartTransitionEventType. For this reason, the Identifier shall be unique.
The CustomerOrderIdentifier is used to reference the customer order this job belongs to. This information often originates from an external system handling production organisation (e.g. MES).
The OrderIdentifier is used to reference a company internal order the job belongs to. This information often originates from an external system handling production organisation (e.g. MES).
PartSets contains a list of ProductionPartSetType nodes related to the job. It is a list of the part sets, which contain the parts produced in the current run of the job. For the DisplayName of the <PartSet >, it is recommended to use the value of the Name Property of the respective ProductionPartSetType instance.
ProductionPrograms contains a list of ProductionProgramType nodes representing the programs used in the job. This list is made out of at least one instance of ProductionProgramType. The ordering of the programs is displayed using the HasOrderedComponent Reference and the NumberInList component of the ProductionProgramType instance applied from the IOrderedObjectType. The underlying ordering is the call sequence of the programs. The program called first shall have the number 0 and appear first along the OrderedComponents. For the DisplayName of the <OrderedObject >, it is recommended to use the value of the Name Property of the respective ProductionProgramType instance.
The ProductionPrograms may include one single ProductionProgramType instance. If it contains more than one ProductionProgramType instance, the call hierarchy of the programs is not shown in this list. Neither is the relation of programs and channels modelled in the ProductionProgramType. Which programs to include in the list can be chosen by the integrator of the information model (e.g. main program only, subprograms included, …). The list shall include programs relevant to the job and manufacturing of the job, macros and cycles for general purpose tasks are usually not included.
RunsCompleted is a counter that increases after each completed run of the job. This means, the run was not aborted and finished regularly. This counter does not give any indication about the part quality.
RunsPlanned indicates how many times a job should be executed. RunsPlanned has a Property called IsValid, which indicates if the planned number of job runs is known to the machine tool (True) or not (False). The number of planned job runs not being known occurs in continuous production, that is if the machine tool is started with the respective job and job runs are repeated endlessly. The production process only ends when the machine tool is stopped by an external measure (operator or system).
State is an instance representation of the ProductionJobStateMachineType. It indicates the current state the job is in and the transition used to get into this state.
NumberInList is used to enumerate ProductionJobType instances used as list elements. This index shall be 0 for the first list element and increase by one for each subsequent list element. If nodes are deleted from the list or inserted into the list, the NumberInList has to be adjusted for all following nodes in the list, such that the NumberInList elements always form a sequential series of numbers.
The ProductionProgramType is the representation of a program. A program is a list of operations that the controller performs in sequence. It's usually a machine-readable file which is needed for the controller to fulfil the job.
The ProductionProgramType is formally defined in Table 30.
Table 30 – ProductionProgramType Definition
Attribute |
Value |
||||
BrowseName |
ProductionProgramType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node |
|||||
0:HasSubtype |
ObjectType |
ProductionActiveProgramType |
Defined in 8.4.5 |
||
0:HasProperty |
Variable |
Name |
0:String |
0:PropertyType |
M, RO |
0:HasComponent |
Object |
State |
|
ProductionProgramStateMachineType |
O |
0:HasInterface |
ObjectType |
0:IOrderedObjectType |
|
|
|
|
|
|
|
|
|
Applied from 0:IOrderedObjectType |
|||||
0:HasProperty |
Variable |
0:NumberInList |
0:UInt16 |
0:PropertyType |
M, RO |
The Name is used to distinguish and identify programs on a machine tool.
State is an instance representation of the ProductionProgramStateMachineType. It indicates the current state the part is in and the transition used to get into this state.
NumberInList is used to enumerate ProductionProgramType instances used as list elements. This index shall be 0 for the first list element and increase by one for each subsequent list element. If nodes are deleted from the list or inserted into the list, the NumberInList has to be adjusted for all following nodes in the list, such that the NumberInList elements always form a sequential series of numbers.
The ProductionActiveProgramType is used to represent programs that are currently running within the machine tool.
The ProductionActiveProgramType is formally defined in Table 31.
Table 31 – ProductionActiveProgramType Definition
Attribute |
Value |
||||
BrowseName |
ProductionActiveProgramType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the ProductionProgramType defined in 8.4.4 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Variable |
JobNodeId |
0:NodeId |
0:BaseDataVariableType |
O, RO |
0:HasComponent |
Variable |
JobIdentifier |
0:String |
0:BaseDataVariableType |
O, RO |
0:HasComponent |
Object |
State |
|
ProductionProgramStateMachineType |
M |
JobNodeId contains the NodeId of the ProductionJobType instance this program is used in.
JobIdentifier holds the same content as the Identifier Property of the ProductionJobType instance this program is used in.
State is inherited from the ProductionProgramType and overridden to be mandatory.
The ProductionPartSetType is used to group parts within a production job. It also contains information about the parts in the group.
It is formally defined in Table 32. Its additional subcomponents are defined in Table 33.
Table 32 – ProductionPartSetType Definition
Attribute |
Value |
||||
BrowseName |
ProductionPartSetType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node |
|||||
0:HasProperty |
Variable |
Name |
0:String |
0:PropertyType |
O, RO |
0:HasComponent |
Variable |
PartsPlannedPerRun |
0:UInt32 |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
PartsCompletedPerRun |
0:UInt32 |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Object |
PartsPerRun |
|
0:BaseObjectType |
O |
0:HasProperty |
Variable |
ContainsMixedParts |
0:Boolean |
0:PropertyType |
M, RO |
Table 33 – ProductionPartSetType Additional Subcomponents
Source Path |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
PartsPerRun |
0:HasComponent |
Object |
<Part> |
|
ProductionPartType |
MP |
Name is used to specify the type of parts in a group.
PartsPlannedPerRun indicates how many of the parts in this group are intended to be produced in one run of a job.
PartsCompletedPerRun indicates how many parts of this group have been completed in the current run of the job. This counter does not give any indication about the part quality.
PartsPerRun contains a list of the parts in the current run of the job. This list is made out of at least one <Part > instance of ProductionPartType. In each new run of the job, all variables in the part nodes are reset to their initial values. For the DisplayName of the <Part >, it is recommended to use the value of the Name Property of the respective ProductionPartType instance.
ContainsMixedParts indicates if the parts in a ProductionPartSetType may be different from each other (True) or if they are parts of the same type (False).
The ProductionPartType represents a part. A part is the workpiece of the machine tool which is treated in the purpose of the machine tool.
This may be for the purpose of machining, measuring or others, depending on the type of machine tool.
The ProductionPartType is formally defined in Table 34.
Table 34 – ProductionPartType Definition
Attribute |
Value |
||||
BrowseName |
ProductionPartType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node |
|||||
0:HasProperty |
Variable |
CustomerOrderIdentifier |
0:String |
0:PropertyType |
O, RO |
0:HasProperty |
Variable |
Name |
0:String |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
Identifier |
0:String |
0:PropertyType |
O, RO |
0:HasComponent |
Variable |
PartQuality |
PartQuality |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
ProcessIrregularity |
ProcessIrregularity |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Object |
State |
|
ProductionPartStateMachineType |
O |
The Name is used to name a part in production in a machine tool. This name can be specific to the part (e.g. “MBL30/PartNo32001”) or to the type of part (e.g. “M8x10 Bolt Type 15”).
The CustomerOrderIdentifier is used to reference the customer order this job belongs to. This information often originates from an external system handling production organisation (e.g. MES).
The Identifier is used to distinguish and identify an individual part in production in a machine tool. It shall be unique.
PartQuality indicates the part quality. The PartQuality DataType is defined in 12.6.
ProcessIrregularity is used to tell if a process irregularity has been detected. A process irregularity might for example be the breakage of a tool, or exceeding a temperature limit on coolant. The ProcessIrregularity DataType is defined in 12.7.
State is an instance representation of the ProductionPartStateMachineType. It indicates the current state in manufacturing the part is in and the transition used to get into this state.
The ProductionStateMachineType shows the states an element in production can be in and the possible transitions between those states. The states and transitions are depicted in Figure 14. Their representation in the OPC UA address space is given in Table 35. The name of each transition consists of the names of the states it connects: [FromState]To[ToState]. Their References are specified in Table 38.
Figure 14 – The States and Transitions of the ProductionStateMachineType
The ProductionStateMachineType is formally defined in Table 35.
Table 35 – ProductionStateMachineType Definition
Attribute |
Value |
||||
BrowseName |
ProductionStateMachineType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the FiniteStateMachineType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Object |
Aborted |
|
0:StateType |
No ModellingRule |
0:HasComponent |
Object |
AbortedToInitializing |
|
0:TransitionType |
No ModellingRule |
0:HasComponent |
Variable |
0:CurrentState |
0:LocalizedText |
0:FiniteStateVariableType |
M, RO |
0:HasComponent |
Object |
Ended |
|
0:StateType |
No ModellingRule |
0:HasComponent |
Object |
EndedToInitializing |
|
0:TransitionType |
No ModellingRule |
0:HasComponent |
Object |
Initializing |
|
0:InitialStateType |
No ModellingRule |
0:HasComponent |
Object |
InitializingToAborted |
|
0:TransitionType |
No ModellingRule |
0:HasComponent |
Object |
InitializingToRunning |
|
0:TransitionType |
No ModellingRule |
0:HasComponent |
Object |
Interrupted |
|
0:StateType |
No ModellingRule |
0:HasComponent |
Object |
InterruptedToAborted |
|
0:TransitionType |
No ModellingRule |
0:HasComponent |
Object |
InterruptedToRunning |
|
0:TransitionType |
No ModellingRule |
0:HasComponent |
Variable |
0:LastTransition |
0:LocalizedText |
0:FiniteTransitionVariableType |
O, RO |
0:HasComponent |
Object |
Running |
|
0:StateType |
No ModellingRule |
0:HasComponent |
Object |
RunningToAborted |
|
0:TransitionType |
No ModellingRule |
0:HasComponent |
Object |
RunningToEnded |
|
0:TransitionType |
No ModellingRule |
0:HasComponent |
Object |
RunningToInterrupted |
|
0:TransitionType |
No ModellingRule |
0:HasComponent |
Object |
RunningToRunning |
|
0:TransitionType |
No ModellingRule |
0: Has Subtype |
Object Type |
ProductionJobStateMachineType |
Defined in 8.4.9 |
||
0: Has Subtype |
Object Type |
ProductionPartStateMachineType |
Defined in 8.4.10 |
||
0: Has Subtype |
Object Type |
ProductionProgramStateMachineType |
Defined in 8.4.11 |
The states shall have the numbers indicated in Table 37; the transitions shall have the numbers indicated in Table 37. The Number property of CurrentState and LastTransition shall use those same numbers for the respective state/transition.
The components CurrentState and LastTransition of the ProductionStateMachineType have their optional property Number changed to be mandatory, as defined in Table 36.
Table 36 – ProductionStateMachineType Additional Subcomponents
Source Path |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
0:CurrentState |
0:HasProperty |
Variable |
0:Number |
0:UInt32 |
0:PropertyType |
M, RO |
0:LastTransition |
0:HasProperty |
Variable |
0:Number |
0:UInt32 |
0:PropertyType |
M, RO |
The state Aborted indicates that the operation of or on an element in production has been irreversibly stopped before finishing.
Ended is reached when the operation of or on an element in production has finished.
Initializing is the state in which the element in production is being prepared. During this state, the machine tool doesn’t have to be ready for production, although it has to be as soon as the transition InitializingToRunning is used. The production is not yet started.
Interrupted indicates that the execution of or on the element in production has been reversibly halted. This is usually due to an error or an intervention by the operating personnel. It is possible to restart operation of or on the element in production after it was in the interrupted state.
Running indicates that the operation of or on an element in production has been started or re-started and is currently running.
Table 37 – ProductionStateMachineType Attribute values for child Nodes
Source Path |
Value Attribute |
Description Attribute |
||
State Numbers |
||||
|
0 |
|
||
|
1 |
|
||
|
2 |
|
||
|
3 |
|
||
|
4 |
|
||
Transition Numbers |
||||
|
0 |
|
||
|
1 |
|
||
|
2 |
|
||
|
3 |
|
||
|
4 |
|
||
|
5 |
|
||
|
6 |
|
||
|
7 |
|
||
|
8 |
|
||
|
9 |
|
Fields may be empty which means this Attribute is not defined.
InitializingToRunning is triggered when the operation of or on an element in production starts.
RunningToEnded is triggered when the operation of or on an element in production finishes.
EndedToInitializing is triggered when re-initialization of the operation of or on an element in production starts.
RunningToRunning is triggered when another consecutive run of the operation of or on an element in production in direct succession starts.
RunningToInterrupted is triggered when the operation of or on an element in production is interrupted.
InterruptedToRunning is triggered when an interruption ends and the operation of or on an element in production continues running.
RunningToAborted is triggered when the operation of or on an element in production is aborted while in the Running state.
InterruptedToAborted is triggered when the operation of or on an element in production is aborted while in the Interrupted state.
AbortedToInitializing is triggered if the operation of or on an element in production is being re-initialized after an abort.
InitializingToAborted is triggered when the operation of or on an element in production is aborted while in the Initializing state.
Table 38 – ProductionStateMachineType Additional References
Source Path |
ReferenceType |
Is Forward |
Target Path |
AbortedToInitializing |
0:FromState |
True |
Aborted |
|
0:ToState |
True |
Initializing |
EndedToInitializing |
0:FromState |
True |
Ended |
|
0:ToState |
True |
Initializing |
InitializingToAborted |
0:FromState |
True |
Initializing |
|
0:ToState |
True |
Aborted |
InitializingToRunning |
0:FromState |
True |
Initializing |
|
0:ToState |
True |
Running |
InterruptedToAborted |
0:FromState |
True |
Interrupted |
|
0:ToState |
True |
Aborted |
InterruptedToRunning |
0:FromState |
True |
Interrupted |
|
0:ToState |
True |
Running |
RunningToAborted |
0:FromState |
True |
Running |
|
0:ToState |
True |
Aborted |
RunningToEnded |
0:FromState |
True |
Running |
|
0:ToState |
True |
Ended |
RunningToInterrupted |
0:FromState |
True |
Running |
|
0:ToState |
True |
Interrupted |
RunningToRunning |
0:FromState |
True |
Running |
|
0:ToState |
True |
Running |
The ProductionJobStateMachineType shows the states a production job can be in and the possible transitions between those states.
The ProductionJobStateMachineType is formally defined in Table 39.
Table 39 – ProductionJobStateMachineType Definition
Attribute |
Value |
||||
BrowseName |
ProductionJobStateMachineType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the ProductionStateMachineType defined in 8.4.8 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:GeneratesEvent |
ObjectType |
InterruptionConditionType |
|
|
|
0:HasComponent |
Object |
AbortedToInitializing |
|
0:TransitionType |
No ModellingRule |
0:HasComponent |
Object |
EndedToInitializing |
|
0:TransitionType |
No ModellingRule |
0:HasComponent |
Object |
InitializingToAborted |
|
0:TransitionType |
No ModellingRule |
0:HasComponent |
Object |
InitializingToRunning |
|
0:TransitionType |
No ModellingRule |
0:HasComponent |
Object |
InterruptedToAborted |
|
0:TransitionType |
No ModellingRule |
0:HasComponent |
Object |
InterruptedToRunning |
|
0:TransitionType |
No ModellingRule |
0:HasComponent |
Object |
RunningToAborted |
|
0:TransitionType |
No ModellingRule |
0:HasComponent |
Object |
RunningToEnded |
|
0:TransitionType |
No ModellingRule |
0:HasComponent |
Object |
RunningToInterrupted |
|
0:TransitionType |
No ModellingRule |
0:HasComponent |
Object |
RunningToRunning |
|
0:TransitionType |
No ModellingRule |
When a new interruption occurs in the production job, an event of InterruptionConditionType can be sent to clarify the reason for the interruption. This is an option in addition to the Interrupted state of the ProductionStateMachineType. It is possible that other interruptions occur while the state machine is in the Interrupted state, e.g. the first interruption being due to a missing part and while the part is still missing, a utility change becomes necessary. In such a case, Events of InterruptionConditionType may be sent for each subsequent interruption. The transition InterruptedToRunning may only be used if no interruption is active. If the interrupted job is aborted (via InterruptedToAborted), the interruption may persist. If a job is then re-initialized via AbortedToInitializing, there are multiple possible cases. In one case the interruption is solved before the job enters the Initializing state. In this case, the same job can transition to Initializing. Another option, when the ProductionPlan is used statically, the job node can be overwritten with the new job being in the Initializing state. Depending on the production context, the interruption of the old job might persist. When the ProductionPlan is used dynamically, a new job node can be created. Whether the interruption can persist is again depending on the production context.
The ProductionJobStateMachineType allows to send Events of ProductionJobTransitionEventType with every transition, as indicated in Table 40. This makes it possible to send all relevant information of the ProductionJobType the state machine instance belongs to with the TransitionEvent.
The state Aborted indicates that the job has been irreversibly stopped before finishing. If the job enters this state, the state machines of any ProductionProgramType and ProductionPartType instances associated with it shall not remain in the state Running.
Ended is reached when the job has finished all its runs, so the value of RunsCompleted is the same as the one for RunsPlanned.
Initializing is the state in which the job is being prepared. That implies the job being scheduled for production in the near future. In this state, actions like e.g. loading and configuring programs, inserting tools and utilities and mounting workpieces may be conducted.
InitializingToRunning is triggered when the job starts. This can only be triggered if all preconditions to start the job are met. A job is usually started by starting a related control routine. This does not result in changes to the components and properties (other than State) of the ProductionJobType instance being started.
RunningToEnded is triggered when the last run of a job finishes. The value of RunsCompleted in the affected ProductionJobType instance is increased by one (and equal to the value of RunsPlanned) due to this transition. In the ProductionJobTransitionEventType, this increased value is sent. This transition also implies that all parts and programs related to the job will no longer change, so e.g. the quality information for each part is finally set.
EndedToInitializing is triggered when initialization of a new job starts. This transition is only used if the nodes in the ProductionPlan are never added or deleted, but remain static in the address space. In this case, all values of the ProductionJobType instance the state machine belongs to are changed to represent a different job. The values of this new job are sent with the ProductionJobTransitionEventType.
RunningToRunning is triggered when a new run of the job starts. The RunsCompleted of the affected ProductionJobType instance increases by one. The ProductionJobTransitionEventType shall send this increased value.
RunningToInterrupted is triggered when the job is interrupted. The point in time the interruption starts shall be when the machine tool gets the command to interrupt the job process. To indicate the reason for the interruption, an InterruptionConditionEventType with the appropriate ConditionClass may be sent. The components and properties (other than State) of the affected ProductionJobType instance stay unchanged.
InterruptedToRunning is triggered when an interruption ends and production continues running. This transition requires that no interruption is active, regardless of what interruption initially led to the RunningToInterrupted transition. The components and properties (other than State) of the affected ProductionJobType instance stay unchanged.
InterruptedToAborted is triggered when the job is aborted while in the Interrupted state. This transition does not require the reason for the interruption to be solved. The components and properties (other than State) of the affected ProductionJobType instance stay unchanged.
AbortedToInitializing is triggered if production is being re-initialized after an abort. This transition is only used if the nodes in the ProductionPlan are never added or deleted, but remain static in the address space. In this case, all values of the ProductionJobType instance the state machine belongs to are changed to represent a different job. The values of this new job are sent with the ProductionJobTransitionEventType.
Table 40 – ProductionJobStateMachineType Additional References
Source Path |
ReferenceType |
Is Forward |
Target Path |
||
AbortedToInitializing |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionJobTransitionEventType |
||
EndedToInitializing |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionJobTransitionEventType |
||
InitializingToAborted |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionJobTransitionEventType |
||
InitializingToRunning |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionJobTransitionEventType |
||
InterruptedToAborted |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionJobTransitionEventType |
||
InterruptedToRunning |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionJobTransitionEventType |
||
RunningToAborted |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionJobTransitionEventType |
||
RunningToEnded |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionJobTransitionEventType |
||
RunningToInterrupted |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionJobTransitionEventType |
||
RunningToRunning |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionJobTransitionEventType |
The ProductionProgramStateMachineType shows the states a program can be in and the possible transitions between those states. Their representation in the OPC UA address space is given in Table 42. The name of each transition consists of the names of the states it connects: [FromState]To[ToState].
The ProductionProgramStateMachineType is formally defined in. Table 41.
Table 41 – ProductionProgramStateMachineType Definition
Attribute |
Value |
|||||
BrowseName |
ProductionProgramStateMachineType |
|||||
IsAbstract |
False |
|||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the ProductionStateMachineType defined in 8.4.8 i.e. inheriting the InstanceDeclarations of that Node. |
||||||
0:HasComponent |
Object |
AbortedToInitializing |
|
0:TransitionType |
No ModellingRule |
|
0:HasComponent |
Object |
EndedToInitializing |
|
0:TransitionType |
No ModellingRule |
|
0:HasComponent |
Object |
InitializingToAborted |
|
0:TransitionType |
No ModellingRule |
|
0:HasComponent |
Object |
InitializingToRunning |
|
0:TransitionType |
No ModellingRule |
|
0:HasComponent |
Object |
InterruptedToAborted |
|
0:TransitionType |
No ModellingRule |
|
0:HasComponent |
Object |
InterruptedToRunning |
|
0:TransitionType |
No ModellingRule |
|
0:HasComponent |
Object |
RunningToAborted |
|
0:TransitionType |
No ModellingRule |
|
0:HasComponent |
Object |
RunningToEnded |
|
0:TransitionType |
No ModellingRule |
|
0:HasComponent |
Object |
RunningToInterrupted |
|
0:TransitionType |
No ModellingRule |
|
0:HasComponent |
Object |
RunningToRunning |
|
0:TransitionType |
No ModellingRule |
The ProductionProgramStateMachineType allows to send Events of ProductionProgramTransitionEventType with every transition, as indicated in Table 42. This makes it possible to send all relevant information of the ProductionProgramType the state machine instance belongs to with the TransitionEvent.
Initializing is the state in which the program is not yet started.
Interrupted indicates that the execution of the program has been paused and can be continued. This might be due to waiting for the execution of a subprogram or until a certain condition is met, e.g. the doors of the machine tool are closed.
EndedToInitializing is only used if the nodes in the ProductionPlan are never added or deleted, but remain static in the address space. The Transition is triggered when a new program is loaded. In this case, all values of the ProductionProgramType instance the state machine belongs to are changed to represent a different program. The values of this new job are sent with the ProductionProgramTransitionEventType.
Table 42 – ProductionProgramStateMachineType Additional References
Source Path |
ReferenceType |
Is Forward |
Target Path |
||
AbortedToInitializing |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionProgramTransitionEventType |
||
EndedToInitializing |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionProgramTransitionEventType |
||
InitializingToAborted |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionProgramTransitionEventType |
||
InitializingToRunning |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionProgramTransitionEventType |
||
InterruptedToAborted |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionProgramTransitionEventType |
||
InterruptedToRunning |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionProgramTransitionEventType |
||
RunningToAborted |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionProgramTransitionEventType |
||
RunningToEnded |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionProgramTransitionEventType |
||
RunningToInterrupted |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionProgramTransitionEventType |
||
RunningToRunning |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionProgramTransitionEventType |
The ProductionPartStateMachineType shows the states a part can be in and the possible transitions between those states. Their representation in the OPC UA address space is given in Table 44. The name of each transition consists of the names of the states it connects: [FromState]To[ToState].
The ProductionPartStateMachineType is formally defined in Table 43.
Table 43 – ProductionPartStateMachineType Definition
Attribute |
Value |
|||||
BrowseName |
ProductionPartStateMachineType |
|||||
IsAbstract |
False |
|||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the ProductionStateMachineType defined in 8.4.8 i.e. inheriting the InstanceDeclarations of that Node. |
||||||
0:HasComponent |
Object |
AbortedToInitializing |
|
0:TransitionType |
No ModellingRule |
|
0:HasComponent |
Object |
EndedToInitializing |
|
0:TransitionType |
No ModellingRule |
|
0:HasComponent |
Object |
InitializingToAborted |
|
0:TransitionType |
No ModellingRule |
|
0:HasComponent |
Object |
InitializingToRunning |
|
0:TransitionType |
No ModellingRule |
|
0:HasComponent |
Object |
InterruptedToAborted |
|
0:TransitionType |
No ModellingRule |
|
0:HasComponent |
Object |
InterruptedToRunning |
|
0:TransitionType |
No ModellingRule |
|
0:HasComponent |
Object |
RunningToAborted |
|
0:TransitionType |
No ModellingRule |
|
0:HasComponent |
Object |
RunningToEnded |
|
0:TransitionType |
No ModellingRule |
|
0:HasComponent |
Object |
RunningToInterrupted |
|
0:TransitionType |
No ModellingRule |
|
0:HasComponent |
Object |
RunningToRunning |
|
0:TransitionType |
No ModellingRule |
The ProductionPartStateMachineType allows to send Events of ProductionPartTransitionEventType with every transition, as indicated in Table 44. This makes it possible to send all relevant information of the ProductionPartType the state machine instance belongs to with the TransitionEvent.
Ended is reached when the production on the part has finished. The PartQuality may be changed while in this state, implying that the part is measured after the production process. The part does not have to be mounted inside the machine tool while in this state.
Initializing implies the part is scheduled for production, but the machining process on the part has not yet started. The part does not have to be mounted inside the machine tool while in this state.
Running indicates that the processing of the part within the machine tool has been started or re-started and is currently running.
InitializingToRunning is triggered when the processing of the part starts. This Transition requires the part to be mounted within the machine tool.
RunningToEnded is triggered when the processing of the part finishes. This Transition does not require an update of the PartQuality.
Table 44 – ProductionPartStateMachineType Additional References
Source Path |
ReferenceType |
Is Forward |
Target Path |
||
AbortedToInitializing |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionPartTransitionEventType |
||
EndedToInitializing |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionPartTransitionEventType |
||
InitializingToAborted |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionPartTransitionEventType |
||
InitializingToRunning |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionPartTransitionEventType |
||
InterruptedToAborted |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionPartTransitionEventType |
||
InterruptedToRunning |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionPartTransitionEventType |
||
RunningToAborted |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionPartTransitionEventType |
||
RunningToEnded |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionPartTransitionEventType |
||
RunningToInterrupted |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionPartTransitionEventType |
||
RunningToRunning |
0:FromState |
True |
|
||
|
0:ToState |
True |
|
||
|
0:HasEffect |
True |
ProductionPartTransitionEventType |
The ProductionStatisticsType aggregates statistics information related to production on the machine tool.
The ProductionStatisticsType is formally defined in Table 45.
Table 45 – ProductionStatisticsType Definition
Attribute |
Value |
||||
BrowseName |
ProductionStatisticsType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Variable |
PartsProducedInLifetime |
0:UInt32 |
BaseDataVariableType |
O, RO |
PartsProducedInLifetime is the counter for the total number of produced parts during the machine tool’s lifetime. The exact way this number is acquired may differ between different machine tools. No quality information of PartsProducedInLifetime can be given.
The EquipmentType is used to structure elements for machine tool equipment.
The EquipmentType is formally defined in Table 46.
Table 46 – EquipmentType Definition
Attribute |
Value |
||||
BrowseName |
EquipmentType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Object |
Tools |
|
ToolListType |
O |
Tools is the entry point to the list of BaseToolType subtype instances in the machine tool. The list of tools provided here shall contain the tools that are present in the machine tool and the magazines the machine tool has automated access to.
The ToolListType is a list of tools, where a tool may be a single tool or a multitool.
The ToolListType is formally defined in Table 47.
Table 47 – ToolListType Definition
Attribute |
Value |
||||
BrowseName |
ToolListType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Object |
<Tool> |
|
BaseToolType |
OP |
0:HasProperty |
Variable |
NodeVersion |
0:String |
0:PropertyType |
O, RO |
0:GeneratesEvent |
ObjectType |
0:GeneralModelChangeEventType |
|
|
|
<Tool > is an OptionalPlaceholder for nodes of BaseToolType. The tool list can thus contain any number of tools, including none. For the DisplayName of the <Tool >, it is recommended to use the value of the Name Property of the respective BaseToolType instance.
The contents of the ToolListType instance can change during the Server runtime (e.g. if tools are inserted into the machine tool or removed from it). A change in the list can be indicated using the NodeVersion Property and the GeneralModelChangeEventType. The NodeVersion and the GeneralModelChangeEventType are intended to be used in the way defined in OPC 10000-3 and 7.3.
The BaseToolType serves as a supertype to the ToolType and the MultiToolType. It is an abstract type, meaning it is not instantiated, only the subtypes are.
The BaseToolType is formally defined in Table 48.
Table 48 – BaseToolType Definition
Attribute |
Value |
|||||
BrowseName |
BaseToolType |
|||||
IsAbstract |
True |
|||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node. |
||||||
0:HasSubtype |
ObjectType |
MultiToolType |
Defined in 8.5.5 |
|||
0:HasSubtype |
ObjectType |
ToolType |
Defined in 8.5.4 |
|||
0:HasProperty |
Variable |
Identifier |
0:String |
0:PropertyType |
O, RO |
|
0:HasComponent |
Object |
Location |
|
0:BaseObjectType |
O |
|
0:HasProperty |
Variable |
Name |
0:String |
0:PropertyType |
O, RO |
Table 49 – BaseToolType Additional Subcomponents
Source Path |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
Location |
0:HasProperty |
Variable |
Name |
0:String |
0:PropertyType |
M, RO |
Location |
0:HasProperty |
Variable |
PlaceNumber |
0:UInt16 |
0:PropertyType |
M, RO |
Identifier is a unique identifier for a tool. The Identifier can be used to provide a unique ID given by a superordinated management system. This ID can’t be generated on the machine, it has to be transferred to the machine by a global tool management system.
The Location indicates where the tool is located, represented by Name, a name for the tool’s location (e.g. the tool magazine) and PlaceNumber, the place number at this location (refer to Table 49). If there is a shared magazine for multiple machines, a tool will be shown in the tool list (see 8.5.1 and 8.5.2) of all machines for which the tool is available.
The Name is used to name a tool to ease recognition. This name can be specific to the tool (e.g. “special_formpress_part294”), to the type of tool (e.g. “8mm drill”) or to the program (e.g. “T3”).
The ToolType is the representation of a tool. Tools are exchangeable components used in a machine tool to execute the production process and may for example be drills, ball milling heads, cutting inserts, pinching tools and so forth. It may also be a non-contact tool, for example a processing laser.
The ToolType is formally defined in Table 50.
Table 50 – ToolType Definition
Attribute |
Value |
||||
BrowseName |
ToolType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseToolType defined in 8.5.3 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Variable |
ControlIdentifier1 |
0:UInt32 |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
ControlIdentifier2 |
0:UInt32 |
0:BaseDataVariableType |
O, RO |
0:HasComponent |
Variable |
ControlIdentifierInterpretation |
ToolManagement |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
LastUsage |
0:UtcTime |
0:BaseDataVariableType |
O, RO |
0:HasComponent |
Variable |
Locked |
0:Boolean |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
PlannedForOperating |
0:Boolean |
0:BaseDataVariableType |
O, RO |
0:HasComponent |
Object |
ToolLife |
|
0:BaseObjectType |
O |
The components of the ToolType have additional references which are defined in Table 51.
Table 51 – ToolType Additional Subcomponents
Source Path |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
Locked |
0:HasProperty |
Variable |
ReasonForLocking |
ToolLocked |
0:PropertyType |
M, RO |
ToolLife |
0:HasComponent |
Variable |
<ToolLifeEntry> |
0:Number |
ToolLifeType |
MP, RO |
The two components ControlIdentifier1, ControlIdentifier2 are to be interpreted depending on ControlIdentifierInterpretation (refer to 12.10). This reflects the main methods which CNC-based tool management approaches use. In a ToolNumberBased approach, only ControlIdentifier1 is provided and sufficient to identify the tool. In a system with a ToolGroupBasedManagemet, tools are identified by a group and an indexing number inside this group, which are provided as ControlIdentifier1 and ControlIdentifier2 respectively. Should yet another approach be present in a given system, this is indicated by the ControlIdentifierInterpretation being reported as custom. It shall be noted that this identification data is used to identify the tool in the reference frame of the tool management system inside the machine. In many applications the machine control system uses these identifiers to handle multiple tools which are equivalent and present in the machine as spares. For an identification of the tool inside the NC program or globally, independent of the machine management view, the properties Name and Identifier are provided by the BaseToolType.
LastUsage is the time, were the specific tool was the active tool on a tool carrier for the last time, while the machine was operating in an automatic mode (e.g. for CNC controllers: in Mdi- or Automatic-mode).
The property Locked represents whether the tool was locked from use in processing. If True, the tool was locked. It has an additional property as seen in Table 51, ReasonForLocking. ReasonForLocking is defined in 12.8.
The component PlannedForOperating marks tools which the machine tool control can already mark as being needed for the running NC program or process when being True.
The ToolLife reports on how the tool use and tool life is being currently managed and how far the use of the tool has progressed. If more than one measurement is provided as <ToolLifeEntry >, they shall show the same value as if only one entry was provided, so they shall not be accumulated by a Client.
Figure 15 – Instance Example of a MultiToolType Object
The MultiToolType represents a unit of different tools, usually used in order to have several tools available in-process without requiring explicit tool-changes. Multitools carry several tools on one tool magazine socket or one revolver index position and will be mounted into the machine tool as one prepared unit.
Typical applications are in turning, when one indexed position of the tool revolver holds several outer-diameter cutting inserts and boring tools, such that a tool change process can quickly complete by merely readjusting the CNC setpoint position tool compensation.
An instance example on how to instantiate the MultiToolType is shown in Figure 15.
The MultiToolType is formally defined in Table 52.
Table 52 – MultiToolType Definition
Attribute |
Value |
||||
BrowseName |
MultiToolType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseToolType defined in 8.5.3 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Object |
<Tool> |
|
ToolType |
OP |
<Tool > is a placeholder for instances of ToolType. Using this placeholder, the individual ToolType instances making up the MultiTool can be represented in the information model. For individual tools within the MultiTool, use of the Location object is not recommended.
The NotificationType is used to structure information given in the MachineToolType. It groups the messages and alerts of the machine tool and contains the prognoses for the machining operation.
The NotificationType is formally defined in Table 53.
Table 53 – NotificationType Definition
Attribute |
Value |
||||
BrowseName |
NotificationType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Object |
Messages |
|
MessagesType |
O |
0:HasComponent |
Object |
Prognoses |
|
PrognosisListType |
O |
Messages is the node sending events, which are used for errors, warnings and messages. The respective references are formally defined in Table 54.
Prognoses contains a list of the current prognoses for machine tool operation. Reliability for any prognosis in the list will rely on the specific case and cannot be guaranteed to be precise.
The MessagesType is used to define the object sending events. These events are used for errors, warnings and messages.
The MessagesType is formally defined in Table 54.
Table 54 – MessagesType Definition
Attribute |
Value |
||||
BrowseName |
MessagesType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:GeneratesEvent |
ObjectType |
AlertType |
|
|
|
0:GeneratesEvent |
ObjectType |
NotificationEventType |
|
|
|
To differentiate between errors, warnings and messages on the interface, the following convention shall be used, with regard to the recommendations in OPC 10000-5:
Errors have a high Severity between 667 and 1000 and are using an AlertType.
Warnings have a medium Severity between 334 and 666 and are using an AlertType.
Messages have a low Severity lower or equal to 333 and are using a NotificationEventType.
The PrognosisListType is a structuring node to collect predictions about future times when certain interaction with the machine tool may be necessary.
The PrognosisListType is formally defined in Table 55.
Table 55 – PrognosisListType Definition
Attribute |
Value |
||||
BrowseName |
PrognosisListType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Object |
<Prognosis> |
|
PrognosisType |
OP |
0:HasProperty |
Variable |
NodeVersion |
String |
0:PropertyType |
O, RO |
0:GeneratesEvent |
ObjectType |
0:GeneralModelChangeEventType |
|
|
|
<Prognosis > is an optional placeholder for PrognosisType nodes. Thus, the PrognosisListType can have any number of prognoses as components, including none. If the number of prognoses in this list changes during the runtime of the OPC UA server, the NodeVersion and GeneralModelChangeEventType can be used to indicate those changes. The NodeVersion and the GeneralModelChangeEventType are intended to be used in the way defined in OPC 10000-3 and 7.3.
The PrognosisType is the most basic prognosis type and the supertype to more specific prognosis types. It is an abstract type, meaning it is not instantiated, only the subtypes are.
The PrognosisType is formally defined in Table 56.
Table 56 – PrognosisType Definition
Attribute |
Value |
||||
BrowseName |
PrognosisType |
||||
IsAbstract |
True |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasSubtype |
ObjectType |
MaintenancePrognosisType |
Defined in 8.6.5 |
||
0:HasSubtype |
ObjectType |
ManualActivityPrognosisType |
Defined in 8.6.6 |
||
0:HasSubtype |
ObjectType |
PartUnloadPrognosisType |
Defined in 8.6.8 |
||
0:HasSubtype |
ObjectType |
ProcessChangeoverPrognosisType |
Defined in 8.6.9 |
||
0:HasSubtype |
ObjectType |
ProductionJobEndPrognosisType |
Defined in 8.6.10 |
||
0:HasSubtype |
ObjectType |
PartLoadPrognosisType |
Defined in 8.6.7 |
||
0:HasSubtype |
ObjectType |
ToolLoadPrognosisType |
Defined in 8.6.12 |
||
0:HasSubtype |
ObjectType |
ToolUnloadPrognosisType |
Defined in 8.6.13 |
||
0:HasSubtype |
ObjectType |
ToolChangePrognosisType |
Defined in 8.6.11 |
||
0:HasSubtype |
ObjectType |
UtilityChangePrognosisType |
Defined in 8.6.14 |
||
0:HasProperty |
Variable |
PredictedTime |
0:UtcTime |
0:PropertyType |
M, RO |
PredictedTime is used to indicate the point in time the predicted user interaction will become necessary.
The MaintenancePrognosisType is a prognosis indicating at which time in the future a specific maintenance action may become necessary.
Examples may be oil changes, filter mat replacements or regular checks.
The MaintenancePrognosisType is formally defined in Table 57.
Table 57 – MaintenancePrognosisType Definition
Attribute |
Value |
||||
BrowseName |
MaintenancePrognosisType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the PrognosisType defined in 8.6.4 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Variable |
Activity |
0:LocalizedText |
0:BaseDataVariableType |
M, RO |
Activity indicates the specific maintenance task to perform.
The ManualActivityPrognosisType is a prognosis indicating at which time in the future a manual intervention may become necessary.
An example for a manual intervention is a measurement or control activity, which needs to be carried out during the run of the program.
The ManualActivityPrognosisType is formally defined in Table 58.
Table 58 – ManualActivityPrognosisType Definition
Attribute |
Value |
||||
BrowseName |
ManualActivityPrognosisType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the PrognosisType defined in 8.6.4 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Variable |
Activity |
0:LocalizedText |
0:BaseDataVariableType |
M, RO |
Activity indicates the specific maintenance task to perform.
The PartLoadPrognosisType is a prognosis indicating at which time in the future a part needs to be loaded into the machine tool in order to be processed further.
The PartLoadPrognosisType is formally defined in Table 59.
Table 59 – PartLoadPrognosisType Definition
Attribute |
Value |
||||
BrowseName |
PartLoadPrognosisType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the PrognosisType defined in 8.6.4 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Variable |
Location |
0:LocalizedText |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
PartIdentifier |
0:String |
0:BaseDataVariableType |
O, RO |
0:HasComponent |
Variable |
PartName |
0:String |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
PartNodeId |
0:NodeId |
0:BaseDataVariableType |
O, RO |
Location is the place where the part to load will be located within the machine tool. This may for example be the indication and number of the working area.
PartIdentifier shall be identical to the Identifier property of the ProductionPartType instance the prognosis relates to.
PartName shall be identical to the Name property of the ProductionPartType instance the prognosis relates to if the part is modelled in the AddressSpace. Otherwise it is filled with the most appropriate value as a name of the part.
PartNodeId shall reference the ProductionPartType instance the prognosis relates to.
The PartUnloadPrognosisType is a prognosis indicating at which time in the future a part unload may become necessary.
The PartUnloadPrognosisType is formally defined in Table 60.
Table 60 – PartUnloadPrognosisType Definition
Attribute |
Value |
||||
BrowseName |
PartUnloadPrognosisType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the PrognosisType defined in 8.6.4 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Variable |
Location |
0:LocalizedText |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
PartIdentifier |
0:String |
0:BaseDataVariableType |
O, RO |
0:HasComponent |
Variable |
PartName |
0:String |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
PartNodeId |
0:NodeId |
0:BaseDataVariableType |
O, RO |
Location is the place where the part to unload is located within the machine tool. This may for example be the indication and number of the working area.
PartIdentifier shall be identical to the Identifier property of the ProductionPartType instance the prognosis relates to.
PartName shall be identical to the Name property of the ProductionPartType instance the prognosis relates to if the part is modelled in the AddressSpace. Otherwise it is filled with the most appropriate value as a name of the part.
PartNodeId shall reference the ProductionPartType instance the prognosis relates to.
The ProcessChangeoverPrognosisType is a prognosis indicating at which time in the future the machine tool has to be prepared for its next manufacturing process. This might e.g. be the change of a fixture within the machine tool. It can also be used to group different manual steps like tool changes and loading new parts when done between processes, usually given as setup instruction.
The ProcessChangeoverPrognosisType is formally defined in Table 61.
Table 61 – ProcessChangeoverPrognosisType Definition
Attribute |
Value |
||||
BrowseName |
ProcessChangeoverPrognosisType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the PrognosisType defined in 8.6.4 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Variable |
Activity |
0:LocalizedText |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
Location |
0:LocalizedText |
0:BaseDataVariableType |
M, RO |
Activity indicates the specific task(s) to perform or the indication of the setup instruction.
Location is the place where the activity for the process changeover is located within the machine tool. This may for example be the indication and number of the working area.
The ProductionJobEndPrognosisType is the estimated point in time of the end of the current Job.
The ProductionJobEndPrognosisType is formally defined in Table 62.
Table 62 – ProductionJobEndPrognosisType Definition
Attribute |
Value |
||||
BrowseName |
ProductionJobEndPrognosisType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the PrognosisType defined in 8.6.4 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Variable |
SourceIdentifier |
0:String |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
JobNodeId |
0:NodeId |
0:BaseDataVariableType |
O, RO |
The SourceIdentifier Variable shall be identical to the Identifier property belonging to the ProductionJobType the prognosis refers to if modelled in the AddressSpace. Otherwise it shall contain the identifier of the job.
The JobNodeId shall reference the NodeId of the ProductionJobType instance the prognosis refers to.
The ToolChangePrognosisType is a prognosis indicating at which time in the future a tool within the machine tool or a magazine shall be exchanged with a similar tool (usually due to wear).
The ToolChangePrognosisType is formally defined in Table 63.
Table 63 – ToolChangePrognosisType Definition
Attribute |
Value |
||||
BrowseName |
ToolChangePrognosisType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the PrognosisType defined in 8.6.4 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Variable |
Location |
0:LocalizedText |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
ToolIdentifier |
0:String |
0:BaseDataVariableType |
O, RO |
0:HasComponent |
Variable |
ToolName |
0:String |
0:BaseDataVariableType |
O, RO |
0:HasComponent |
Variable |
ToolNodeId |
0:NodeId |
0:BaseDataVariableType |
O, RO |
Location refers to the place the tool shall be removed from within the machine tool’s system boundary, e.g. a tool magazine or the workspace of the machine tool.
ToolIdentifier is identical to the Identifier property of the tool to change, if applicable. If the tool is not modelled in the AddressSpace of the OPC UA Server, this component shall be filled accordingly.
ToolName contains the name of the tool to change, as described for the BaseToolType in 8.5.3. If the tool is not available in the AddressSpace, the ToolName shall be given in a similar manner.
ToolNodeId is the NodeId of the BaseToolType subtype instance this prognosis refers to.
The ToolLoadPrognosisType is a prognosis indicating at which time in the future a tool will be loaded into the machine tool. This prognosis indicates loading a tool within the machine tool’s workspace or a tool magazine the machine tool has access to. The ToolLoadPrognosisType shall also be used for prognoses to load tools larger than standard tools (which might imply different work routines).
If a tool that already is in the machine is intended to be exchanged with a similar tool, the ToolChangePrognosisType shall be used.
The ToolLoadPrognosisType is formally defined in Table 64.
Table 64 – ToolLoadPrognosisType Definition
Attribute |
Value |
||||
BrowseName |
ToolLoadPrognosisType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the PrognosisType defined in 8.6.4 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Variable |
Location |
0:LocalizedText |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
ToolIdentifier |
0:String |
0:BaseDataVariableType |
O, RO |
0:HasComponent |
Variable |
ToolName |
0:String |
0:BaseDataVariableType |
O, RO |
Location refers to the place the tool shall be put within the machine tool’s system boundary, e.g. a tool magazine or the workspace of the machine tool.
ToolIdentifier contains the unique identifier of the tool. This value shall be the same as for the Identifier Property of the BaseToolType. If the tool is not available in the AddressSpace, the ToolIdentifier shall be given in a similar manner. The ToolIdentifier of ToolLoadPrognosisType and ToolUnloadPrognosisType shall match exactly for the same tool.
ToolName contains the name of the tool, as described for the BaseToolType in 8.5.3. If the tool is not available in the AddressSpace, the ToolName shall be given in a similar manner.
The ToolUnloadPrognosisType is a prognosis indicating at which time in the future a tool will be loaded out of the machine tool or a tool magazine.
The ToolUnloadPrognosisType is formally defined in Table 65.
Table 65 – ToolUnloadPrognosisType Definition
Attribute |
Value |
||||
BrowseName |
ToolUnloadPrognosisType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the PrognosisType defined in 8.6.4 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Variable |
Location |
0:LocalizedText |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
ToolIdentifier |
0:String |
0:BaseDataVariableType |
O, RO |
0:HasComponent |
Variable |
ToolName |
0:String |
0:BaseDataVariableType |
O, RO |
0:HasComponent |
Variable |
ToolNodeId |
0:NodeId |
0:BaseDataVariableType |
O, RO |
Location refers to the place the tool shall be removed from within the machine tool’s system boundary, e.g. a tool magazine or the workspace of the machine tool.
ToolIdentifier contains the unique identifier of the tool. This value shall be the same as for the Identifier Property of the BaseToolType. If the tool is not available in the AddressSpace, the ToolIdentifier shall be given in a similar manner. The ToolIdentifier of ToolLoadPrognosisType and ToolUnloadPrognosisType shall match exactly for the same tool.
ToolName contains the name of the tool, as described for the BaseToolType in 8.5.3. If the tool is not available in the AddressSpace, the ToolName shall be given in a similar manner.
ToolNodeId contains the NodeId of the appropriate BaseToolType subtype instance.
The UtilityChangePrognosisType is the estimated point in time at which a utility needs to be refilled or changed. Utilities are for example coolants, filters or scrap material storages.
The UtilityChangePrognosisType is formally defined in Table 66.
Table 66 – UtilityChangePrognosisType Definition
Attribute |
Value |
||||
BrowseName |
UtilityChangePrognosisType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the PrognosisType defined in 8.6.4 i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Variable |
UtilityName |
0:String |
0:BaseDataVariableType |
M, RO |
UtilityName provides an identifier of the utility to be changed inside the machine tool. This variable can for example be used by human personnel to prepare the right material for the utility change.