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

image018.png

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

Stacklight

0:<OrderedObject>

0:HasProperty

Variable

4:SignalOn

0:Boolean

0:PropertyType

M, RO

Stacklight

0:<OrderedObject>

0:HasComponent

Variable

4:SignalColor

4:SignalColor

0:BaseDataVariableType

M, RO

Stacklight

0:<OrderedObject>

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.

image019.png

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

Initializing

0:StateNumber

0

Running

0:StateNumber

1

Ended

0:StateNumber

2

Interrupted

0:StateNumber

3

Aborted

0:StateNumber

4

Transition Numbers

InitializingToRunning

0:TransitionNumber

0

RunningToEnded

0:TransitionNumber

1

EndedToInitializing

0:TransitionNumber

2

RunningToRunning

0:TransitionNumber

3

RunningToInterrupted

0:TransitionNumber

4

InterruptedToRunning

0:TransitionNumber

5

RunningToAborted

0:TransitionNumber

6

InterruptedToAborted

0:TransitionNumber

7

AbortedToInitializing

0:TransitionNumber

8

InitializingToAborted

0:TransitionNumber

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

ProductionStateMachineType

Aborted

0:ToState

True

ProductionStateMachineType

Initializing

0:HasEffect

True

ProductionJobTransitionEventType

EndedToInitializing

0:FromState

True

ProductionStateMachineType

Ended

0:ToState

True

ProductionStateMachineType

Initializing

0:HasEffect

True

ProductionJobTransitionEventType

InitializingToAborted

0:FromState

True

ProductionStateMachineType

Initializing

0:ToState

True

ProductionStateMachineType

Aborted

0:HasEffect

True

ProductionJobTransitionEventType

InitializingToRunning

0:FromState

True

ProductionStateMachineType

Initializing

0:ToState

True

ProductionStateMachineType

Running

0:HasEffect

True

ProductionJobTransitionEventType

InterruptedToAborted

0:FromState

True

ProductionStateMachineType

Interrupted

0:ToState

True

ProductionStateMachineType

Aborted

0:HasEffect

True

ProductionJobTransitionEventType

InterruptedToRunning

0:FromState

True

ProductionStateMachineType

Interrupted

0:ToState

True

ProductionStateMachineType

Running

0:HasEffect

True

ProductionJobTransitionEventType

RunningToAborted

0:FromState

True

ProductionStateMachineType

Running

0:ToState

True

ProductionStateMachineType

Aborted

0:HasEffect

True

ProductionJobTransitionEventType

RunningToEnded

0:FromState

True

ProductionStateMachineType

Running

0:ToState

True

ProductionStateMachineType

Ended

0:HasEffect

True

ProductionJobTransitionEventType

RunningToInterrupted

0:FromState

True

ProductionStateMachineType

Running

0:ToState

True

ProductionStateMachineType

Interrupted

0:HasEffect

True

ProductionJobTransitionEventType

RunningToRunning

0:FromState

True

ProductionStateMachineType

Running

0:ToState

True

ProductionStateMachineType

Running

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

ProductionStateMachineType

Aborted

0:ToState

True

ProductionStateMachineType

Initializing

0:HasEffect

True

ProductionProgramTransitionEventType

EndedToInitializing

0:FromState

True

ProductionStateMachineType

Ended

0:ToState

True

ProductionStateMachineType

Initializing

0:HasEffect

True

ProductionProgramTransitionEventType

InitializingToAborted

0:FromState

True

ProductionStateMachineType

Initializing

0:ToState

True

ProductionStateMachineType

Aborted

0:HasEffect

True

ProductionProgramTransitionEventType

InitializingToRunning

0:FromState

True

ProductionStateMachineType

Initializing

0:ToState

True

ProductionStateMachineType

Running

0:HasEffect

True

ProductionProgramTransitionEventType

InterruptedToAborted

0:FromState

True

ProductionStateMachineType

Interrupted

0:ToState

True

ProductionStateMachineType

Aborted

0:HasEffect

True

ProductionProgramTransitionEventType

InterruptedToRunning

0:FromState

True

ProductionStateMachineType

Interrupted

0:ToState

True

ProductionStateMachineType

Running

0:HasEffect

True

ProductionProgramTransitionEventType

RunningToAborted

0:FromState

True

ProductionStateMachineType

Running

0:ToState

True

ProductionStateMachineType

Aborted

0:HasEffect

True

ProductionProgramTransitionEventType

RunningToEnded

0:FromState

True

ProductionStateMachineType

Running

0:ToState

True

ProductionStateMachineType

Ended

0:HasEffect

True

ProductionProgramTransitionEventType

RunningToInterrupted

0:FromState

True

ProductionStateMachineType

Running

0:ToState

True

ProductionStateMachineType

Interrupted

0:HasEffect

True

ProductionProgramTransitionEventType

RunningToRunning

0:FromState

True

ProductionStateMachineType

Running

0:ToState

True

ProductionStateMachineType

Running

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

ProductionStateMachineType

Aborted

0:ToState

True

ProductionStateMachineType

Initializing

0:HasEffect

True

ProductionPartTransitionEventType

EndedToInitializing

0:FromState

True

ProductionStateMachineType

Ended

0:ToState

True

ProductionStateMachineType

Initializing

0:HasEffect

True

ProductionPartTransitionEventType

InitializingToAborted

0:FromState

True

ProductionStateMachineType

Initializing

0:ToState

True

ProductionStateMachineType

Aborted

0:HasEffect

True

ProductionPartTransitionEventType

InitializingToRunning

0:FromState

True

ProductionStateMachineType

Initializing

0:ToState

True

ProductionStateMachineType

Running

0:HasEffect

True

ProductionPartTransitionEventType

InterruptedToAborted

0:FromState

True

ProductionStateMachineType

Interrupted

0:ToState

True

ProductionStateMachineType

Aborted

0:HasEffect

True

ProductionPartTransitionEventType

InterruptedToRunning

0:FromState

True

ProductionStateMachineType

Interrupted

0:ToState

True

ProductionStateMachineType

Running

0:HasEffect

True

ProductionPartTransitionEventType

RunningToAborted

0:FromState

True

ProductionStateMachineType

Running

0:ToState

True

ProductionStateMachineType

Aborted

0:HasEffect

True

ProductionPartTransitionEventType

RunningToEnded

0:FromState

True

ProductionStateMachineType

Running

0:ToState

True

ProductionStateMachineType

Ended

0:HasEffect

True

ProductionPartTransitionEventType

RunningToInterrupted

0:FromState

True

ProductionStateMachineType

Running

0:ToState

True

ProductionStateMachineType

Interrupted

0:HasEffect

True

ProductionPartTransitionEventType

RunningToRunning

0:FromState

True

ProductionStateMachineType

Running

0:ToState

True

ProductionStateMachineType

Running

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.

image020.png

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.