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 35.

Table 35 – ProductionJobType Definition

Attribute

Value

BrowseName

ProductionJobType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the 0:BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node

0:HasProperty

Variable

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

Variable

PartsCompleted

0:UInt32

0:BaseDataVariableType

O, RO

0:HasComponent

Object

PartSets

0:BaseObjectType

O

0:HasComponent

Variable

PartsGood

0:UInt32

0:BaseDataVariableType

O, RO

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

Conformance Units

MachineTool Production Job

MachineTool Production Dynamic Job List

MachineTool Production Job Available

MachineTool Production Simple Parts Monitoring

The components of the ProductionJobType have additional references which are defined in Table 36.

Table 36 – ProductionJobType Additional Subcomponents

BrowsePath

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).

PartsCompleted indicates how many parts have been completed in the current job including all runs. This counter does not give any indication about the part quality. If PartSets are used, this counter shall be in sync with the respective PartsCompletedPerRun counter.

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.

PartsGood indicates how many good parts have been completed in the current job including all runs. A part is counted as long as there is no contradicting evidence. Note that such evidence may arise in subsequent processing steps (on different machines), even if a part was counted as good. In this case, the data on the OPC UA Server are not changed retrospectively. If individual Parts are modelled, this counter shall be identical to the number of PartType instances with PartQuality set to Good, CapabilityUnavailable or WillNotBeMeasured.

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 (True) or not (False). The number of planned job runs not being known occurs in continuous production, that is if the machine is started with the respective job and job runs are repeated endlessly. The production process only ends when the machine 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.