18 JobsType
This clause defines ObjectsTypes for managing production jobs on the machine and for information on their status including process parameters (temperatures, pressures…).
18.1 JobsType Definition
This ObjectType represents the jobs (order to produce parts/process material) stored on the machine. It is formally defined in Table 72.

| Attribute | Value | ||||
| BrowseName | JobsType | ||||
| IsAbstract | False | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Other |
|---|---|---|---|---|---|
| Subtype of 0:BaseObjectType defined in OPC UA Part 5 | |||||
| 0:HasComponent | Object | ActiveJob | JobInformationType | M | |
| 0:HasComponent | Object | JobInPreparation | JobInformationType | O | |
| 0:HasComponent | Method | SendJobList | O | ||
| 0:HasComponent | Method | SendCyclicJobList | O | ||
| 0:HasComponent | Object | ActiveJobValues | ActiveJobValuesType | M | |
| GeneratesEvent | ObjectType | RequestJobListEventType | Defined in 18.3.2 | ||
| GeneratesEvent | ObjectType | RequestCyclicJobListEventType | Defined in 18.3.4 | ||
ActiveJob represents the job that is currently active on the machine.
JobInPreparation represents a job that is in preparation. Background: Some manufacturers use two "layers" for job information in their control systems: one active information layer and one for preparation. So, during a running job, inputs for the following job are possible. By pressing a button on the control panel, data from the prepared job information can be set active.
ActiveJobValues represents the status of the current job. See 18.4.
SendJobList sends a list of jobs available on the client to the server. Can be triggered by the machine by the event RequestJobList (see 18.3.2). For cyclic processes SendCyclicJobList and RequestCyclicJobListEventType are used.
NOTE: A method SendContinuousJobList for continuous processes will be added in the future.
18.2 JobInformationType
18.2.1 JobInformationType Definition
This ObjectType represents the data of the job. It is formally defined in Table 73.
| Attribute | Value | ||||
| BrowseName | JobInformationType | ||||
| IsAbstract | True | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Other |
|---|---|---|---|---|---|
| Subtype of 0:BaseObjectType defined in OPC UA Part 5 | |||||
| 0:HasProperty | Variable | JobName | 0:String | 0:PropertyType | M, RO |
| 0:HasProperty | Variable | JobDescription | 0:String | 0:PropertyType | M, RO |
| 0:HasProperty | Variable | CustomerName | 0:String | 0:PropertyType | M, RO |
| 0:HasProperty | Variable | ProductionDatasetName | 0:String | 0:PropertyType | M, RO |
| 0:HasProperty | Variable | ProductionDatasetDescription | 0:String | 0:PropertyType | M, RO |
| 0:HasProperty | Variable | Material | 0:String[] | 0:PropertyType | M, RO |
| 0:HasProperty | Variable | ProductName | 0:String[] | 0:PropertyType | M, RO |
| 0:HasProperty | Variable | ProductDescription | 0:String[] | 0:PropertyType | M, RO |
| 0:HasProperty | Variable | ContinueAtJobEnd | 0:Boolean | 0:PropertyType | M, RW |
| 0:HasSubtype | ObjectType | CyclicJobInformationType | |||
The JobInformationType is abstract. A derived concrete type, which includes a method for writing the Properties, must be used (e.g. CyclicJobInformationType).
NOTE: A second subtype ContinuousJobInformationType will be added in the future.
18.2.2 JobName
The JobName Property represents the name of the job.
18.2.3 JobDescription
The JobDescription Property represents the description of the job.
18.2.4 CustomerName
The CustomerName Property represents the name of the customer for that the job is produced.
18.2.5 ProductionDatasetName
The ProductionDatasetName Property represents the name of the production dataset which is needed for the job.
18.2.6 ProductionDatasetDescription
The ProductionDatasetDescription Property includes an additional description of the production dataset which is needed for the job.
18.2.7 Material
The Material Property is an Array of material names used for the job.
18.2.8 ProductName
The ProductName Property is an Array of product names produced by the job. (More than one possible with multiple cavities)
18.2.9 ProductDescription
The ProductDescription Property is an Array of descriptions of the products produced by the job.
18.2.10 ContinueAtJobEnd
The ContinueAtJobEnd Property indicates if the machine continues the production even if the nominal output has been reached.
18.2.11 CyclicJobInformationType
Additional information on a job for cyclic production (e.g. injection moulding) are stored in the CyclicJobInformationType. It extends the JobInformationType. It is formally defined in Table 74.
| Attribute | Value | ||||
| BrowseName | CyclicJobInformationType | ||||
| IsAbstract | False | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Other |
|---|---|---|---|---|---|
| Subtype of JobInformationType | |||||
| 0:HasProperty | Variable | NominalParts | 0:UInt64 | 0:PropertyType | M, RW |
| 0:HasProperty | Variable | NominalBoxParts | 0:UInt64 | 0:PropertyType | O, RW |
| 0:HasProperty | Variable | ExpectedCycleTime | 0:Duration | 0:PropertyType | O, RW |
| 0:HasProperty | Variable | MouldId | 0:String | 0:PropertyType | O, RO |
| 0:HasProperty | Variable | NumCavities | 0:UInt32 | 0:PropertyType | O, RO |
| 0:HasComponent | Method | SetCyclicJobData | M | ||
| GeneratesEvent | ObjectType | RequestCyclicJobWriteEventType | Defined in 18.2.11.7 | ||
18.2.11.1 NominalParts
The NominalParts Property indicates the total number (sum of all cavities) of parts that shall be produced by the job.
18.2.11.2 NominalBoxParts
In some productions, the parts are placed in several boxes. The NominalBoxParts Property indicates the number of parts that shall be put into one box.
NOTE: A "box" can be any kind of container like stacking box, lattice box, bag… .
18.2.11.3 ExpectedCycleTime
The ExpectedCycleTime Property indicates which cycle time is calculated for the job.
18.2.11.4 MouldId
The MouldId Property represents the Id of the Mould used for the job.
NOTE: Although a machine can be equipped with several moulds, one job is always related to a single mould. This is why MouldId is not an array here.
18.2.11.5 NumCavities
The NumCavities Property indicates the number of cavities in the Mould used for production.
18.2.11.6 SetCyclicJobData
With this Method the MES sets the job data for cyclic jobs.
Input arguments are all Properties of the CyclicJobInformationType.
Signature
SetCyclicJobData (
[in] 0:String JobName
[in] 0:String JobDescription
[in] 0:String CustomerName
[in] 0:String ProductionDatasetName
[in] 0:String ProductionDatasetDescription
[in] 0:String[] Material
[in] 0:String[] ProductName
[in] 0:String[] ProductDescription
[in] 0:Boolean ContinueAtJobEnd
[in] 0:UInt64 NominalParts
[in] 0:UInt64 NominalBoxParts
[in] 0:Duration ExpectedCycleTime
[in] 0:String MouldId
[in] 0:UInt32 NumCavities);When optional Properties in CyclicJobInformationType (e.g. NominalBoxParts) are not used, the arguments have to be empty or equal to zero.
| Attribute | Value | ||||
| BrowseName | SetCyclicJobData | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Modelling Rule |
|---|---|---|---|---|---|
| 0:HasProperty | Variable | InputArguments | Argument[] | 0:PropertyType | Mandatory |
18.2.11.7 RequestCyclicJobWrite
The Event RequestCyclicJobWriteEventType is used to initiate a call of the SetCyclicJobData Method by the client.
| Attribute | Value | ||||
| BrowseName | RequestCyclicJobWriteEventType | ||||
| IsAbstract | True | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Modelling Rule |
|---|---|---|---|---|---|
| Subtype of 0:BaseEventType defined in OPC UA Part 5 | |||||
| 0:HasProperty | Variable | JobName | 0:String | 0:PropertyType | M |
18.3 Job Lists
The jobs for a machine can be planned in an MES. This clause defines methods and events to request and send a list of planned jobs.
18.3.1 SendJobList
This Method is used to send a list of jobs available on the client to the server. The server shall support to receive at least 10 jobs.
Signature
SendJobList (
[in] JobListElementType[] JobList);| Argument | Description |
| JobList | Array of JobInformationType describing the available jobs in the client. |
| Attribute | Value | ||||
| BrowseName | SendJobList | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Modelling Rule |
|---|---|---|---|---|---|
| 0:HasProperty | Variable | InputArguments | Argument[] | 0:PropertyType | Mandatory |
It is possible to call the Method without an InputArgument (length of the array JobList is zero) as an answer to the Event RequestJobList (see below), if no planned job is available.
The JobListElementType is defined in Table 79
| Name | Type | Description |
| JobListElementType | structure | Subtype of 0:Structure as defined in OPC UA 10000-3 |
JobName | 0:String | As defined in JobInformationType |
JobDescription | 0:String | |
JobClassification | 0:String | Classification of the job |
CustomerName | 0:String | As defined in JobInformationType |
ProductionDatasetName | 0:String | |
ProductionDatasetDescription | 0:String | |
Material | 0:String[] | |
ProductName | 0:String[] | |
ProductDescription | 0:String[] | |
JobPriority | 0:String | Priority of the job |
PlannedStart | 0:DateTime | Planned start of the job |
PlannedProductionTime | 0:Duration | Planned production time of the job |
LatestEnd | 0:DateTime | Latest end of the job |
The variables JobClassification, JobPriority, PlannedStart, PlannedProductionTime and LatestEnd are additional information only for the operator to be shown on the machine control. This may help the operator to decide which jobs to download/activate. PlannedStart and LatestEnd shall be given in UTC time.
The JobClassification can e.g. be used to present a maintenance job with planned time. The possible values are user dependent and not standardized by this specification.
18.3.2 RequestJobList
The instance of JobsType can fire an Event of RequestJobListEventType (without parameters) to initiate a call of SendJobList by the client. This can e.g. be triggered by an operator who wants to see the planned jobs for his machine.
| Attribute | Value | ||||
| BrowseName | RequestJobListEventType | ||||
| IsAbstract | True | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Other |
|---|---|---|---|---|---|
| Subtype of 0:BaseEventType defined in OPC UA Part 5 | |||||
18.3.3 SendCyclicJobList
This Method is used instead of SendJobList in the case of cyclic production and includes the input parameters ExpectedCycleTime, NominalParts and NominalBoxParts.
Signature
SendCyclicJobList (
[in] CyclicJobListElementType[] JobList);| Argument | Description |
| JobList | Array of CyclicJobInformationType describing the available cyclic jobs in the client. |
| Attribute | Value | ||||
| BrowseName | SendCyclicJobList | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Modelling Rule |
|---|---|---|---|---|---|
| 0:HasProperty | Variable | InputArguments | Argument[] | 0:PropertyType | Mandatory |
It is possible to call the Method without an InputArgument (length of the array JobList is zero) as an answer to the Event RequestCyclicJobList (see below), if no planned job is available.
The CyclicJobListElementType is a subtype of JobListElementType and adds the elements defined in Table 83.
| Name | Type | Description |
| CyclicJobListElementType | structure | Subtype of JobListElementType |
NominalParts | 0:UInt64 | As defined in CyclicJobInformationType |
NominalBoxParts | 0:UInt64 | |
ExpectedCycleTime | 0:Duration | |
MouldId | 0:String | |
NumCavities | 0:UInt32 |
NominalBoxParts, MouldId and NumCavities may be empty or zero if not used.
18.3.4 RequestCyclicJobList
The instance of JobsType can fire an Event of RequestCyclicJobListEventType (without parameters) to initiate a call of SendCyclicJobList by the client. This can e.g. be triggered by an operator who wants to see the planned jobs for his machine.
| Attribute | Value | ||||
| BrowseName | RequestCyclicJobListEventType | ||||
| IsAbstract | True | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Other |
|---|---|---|---|---|---|
| Subtype of 0:BaseEventType defined in OPC UA Part 5 | |||||
18.4 ActiveJobValuesType
This ObjectType represents values of the active job. It is formally defined in Table 85.
| Attribute | Value | ||||
| BrowseName | ActiveJobValuesType | ||||
| IsAbstract | False | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Other |
|---|---|---|---|---|---|
| Subtype of 0:BaseObjectType defined in OPC UA Part 5 | |||||
| 0:HasProperty | Variable | JobStatus | JobStatusEnumeration | 0:PropertyType | M, RO |
| 0:HasComponent | Method | StartJob | M | ||
| 0:HasComponent | Method | InterruptJob | M | ||
| 0:HasComponent | Method | FinishJob | M | ||
| 0:HasProperty | Variable | CurrentLotName | 0:String | 0:PropertyType | M, RW |
| 0:HasProperty | Variable | BoxId | 0:String | 0:PropertyType | O, RW |
| 0:HasSubtype | ObjectType | ActiveCyclicJobValuesType | |||
18.4.1 JobStatus
The JobStatus Property represents the current status of the job.
| Name | Value | Description |
| OTHER | 0 | This state is used if none of the other states below apply. Set by operator. |
| TRANSFERRED_ASSIGNED | 1 | The job has been transferred to the machine and assigned as current job. |
| SET_UP_ACTIVE | 2 | The operator prepares the machine for the job. |
| SET_UP_INTERRUPTED | 3 | The operator has interrupted but not finished the preparation of the machine for the job. |
| SET_UP_FINISHED | 4 | The operator has finished the preparation of the machine for the job. |
| START_UP_ACTIVE | 5 | The operator is setting the machine in the start-up phase. |
| JOB_IN_PRODUCTION | 6 | The machine is producing parts/products for the job. |
| JOB_INTERRUPTED | 7 | The job is interrupted. The nominal output is not reached. |
| JOB_FINISHED | 8 | Nominal output reached. |
| TEAR_DOWN_ACTIVE | 9 | The operator tears the machine down. |
| TEAR_DOWN_INTERRUPTED | 10 | Tear-down is interrupted but not finished. |
| TEAR_DOWN_FINISHED | 11 | Tear-down is finished. |
The JobStatus is set by the machine/operator. This can be triggered by the methods StartJob, InterruptJob and FinishJob. The selection of the value JOB_IN_PRODUCTION_6 can be prevented by the client by setting ProductionReleased to FALSE (see 14.7.2).
18.4.2 StartJob
With this Method the client (e.g. MES) request the machine to change the JobStatus to JOB_IN_PRODUCTION_6. The following produced parts/products are counted for the job.
NOTE: The method does not change the MachineMode.
Signature
StartJob ();The method has no Input- or OutputArguments.
| Attribute | Value | ||||
| BrowseName | StartJob | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Modelling Rule |
|---|
18.4.3 InterruptJob
With this Method the client (e.g. MES) requests the machine to change the JobStatus to JOB_INTERRUPTED_7. The following produced parts/products are not counted for the job.
NOTE: It is not fixed by this specification if the machine stops or continuous running.
Signature
InterruptJob ();The method has no Input- or OutputArguments.
| Attribute | Value | ||||
| BrowseName | InterruptJob | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Modelling Rule |
|---|
18.4.4 FinishJob
With this Method the client (e.g. MES) requests the machine to change the JobStatus to JOB_FINISHED_8. If ContinueAtJobEnd (see 18.2.10) is FALSE, the machine stops. Otherwise a message to the operator shall be shown on the machine.
Signature
FinishJob ();The method has no Input- or OutputArguments.
| Attribute | Value | ||||
| BrowseName | FinishJob | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Modelling Rule |
|---|
18.4.5 CurrentLotName
The CurrentLotName Property represents the current production lot. Although the modelling rule is mandatory, the 0:String can be empty.
18.4.6 BoxId
The BoxId Property represents the Id of the box in which the current production is put in.
NOTE: A "box" can be any kind of container like stacking box, lattice box, bag… .
18.4.7 ActiveCyclicJobValuesType
Additional information on the running job for cyclic production (e.g. injection moulding) is stored in the ActiveCyclicJobValuesType. It extends the ActiveJobValuesType. It is formally defined in Table 90.
| Attribute | Value | ||||
| BrowseName | ActiveCyclicJobValuesType | ||||
| IsAbstract | False | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Other |
|---|---|---|---|---|---|
| Subtype of ActiveJobValuesType | |||||
| 0:HasComponent | Variable | JobCycleCounter | 0:UInt64 | 0:BaseDataVariableType | M, RO |
| 0:HasComponent | Variable | BoxCycleCounter | 0:UInt64 | 0:BaseDataVariableType | O, RO |
| 0:HasComponent | Variable | MachineCycleCounter | 0:UInt64 | 0:BaseDataVariableType | O, RO |
| 0:HasComponent | Variable | LastCycleTime | 0:Duration | 0:BaseDataVariableType | M, RO |
| 0:HasComponent | Variable | AverageCycleTime | 0:Duration | 0:BaseDataVariableType | O, RO |
| 0:HasComponent | Variable | JobPartsCounter | 0:UInt64 | 0:BaseDataVariableType | M, RO |
| 0:HasComponent | Variable | JobGoodPartsCounter | 0:UInt64 | 0:BaseDataVariableType | M, RO |
| 0:HasComponent | Variable | JobBadPartsCounter | 0:UInt64 | 0:BaseDataVariableType | M, RO |
| 0:HasComponent | Variable | JobTestSamplesCounter | 0:UInt64 | 0:BaseDataVariableType | M, RO |
| 0:HasComponent | Variable | BoxPartsCounter | 0:UInt64 | 0:BaseDataVariableType | O, RO |
| 0:HasComponent | Variable | BoxGoodPartsCounter | 0:UInt64 | 0:BaseDataVariableType | O, RO |
| 0:HasComponent | Variable | BoxBadPartsCounter | 0:UInt64 | 0:BaseDataVariableType | O, RO |
| 0:HasComponent | Variable | BoxTestSamplesCounter | 0:UInt64 | 0:BaseDataVariableType | O, RO |
| 0:HasComponent | Variable | LastPartId | 0:String[] | 0:BaseDataVariableType | O, RO |
| 0:HasComponent | Method | StopAtCycleEnd | M | ||
| 0:HasComponent | Method | ResetJobCounters | M | ||
| 0:HasComponent | Method | ResetBoxCounters | O | ||
| 0:HasComponent | Method | ResetAverageCycleTime | O | ||
18.4.7.1 JobCycleCounter
The JobCycleCounter Variable represents the number of finished cycles in the job.
18.4.7.2 BoxCycleCounter
The BoxCycleCounter Variable represents the number of finished cycles for the current box.
18.4.7.3 MachineCycleCounter
The MachineCycleCounter Variable represents the number of finished cycles in the machine life time.
18.4.7.4 LastCycleTime
The LastCycleTime Variable represents the cycle time (duration in milliseconds) of the recently finished cycle.
18.4.7.5 AverageCycleTime
The AverageCycleTime Variable represents the average cycle time. The calculation starts from the last calling of ResetActiveJobAverageCycleTime.
18.4.7.6 JobPartsCounter, JobGoodPartsCounter, JobBadPartsCounter, JobTestSamplesCounter
These Variables represent the total number of produced parts and the numbers of good, bad and test sample parts in the current job.
18.4.7.7 BoxPartsCounter, BoxGoodPartsCounter, BoxBadPartsCounter, BoxTestSamplesCounter
These Variables represent the total number of produced parts and the numbers of good, bad and test sample parts in the current box.
18.4.7.8 LastPartId
The LastPartId Variable is an array and represents the Ids of the parts produced in the recently finished cycle.
18.4.7.9 StopAtCycleEnd
With this Method, the MES directs the machine to stop at the end of the current cycle.
Signature
StopAtCycleEnd ();The method has no Input- or OutputArguments.
| Attribute | Value | ||||
| BrowseName | StopAtCycleEnd | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Modelling Rule |
|---|
18.4.7.10 ResetJobCounters
Method for setting the cycle and parts counters for the job to 0.
Signature
ResetJobCounters ();The method has no Input- or OutputArguments.
| Attribute | Value | ||||
| BrowseName | ResetJobCounters | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Modelling Rule |
|---|
18.4.7.11 ResetBoxCounters
Method for setting the cycle and parts counters for the current box to 0.
Signature
ResetBoxCounters ();The method has no Input- or OutputArguments.
| Attribute | Value | ||||
| BrowseName | ResetBoxCounters | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Modelling Rule |
|---|
18.4.7.12 ResetAverageCycleTime
This Method initiates a new calculation of the average cycle time for the job.
Signature
ResetAverageCycleTime ();The method has no Input- or OutputArguments.
| Attribute | Value | ||||
| BrowseName | ResetAverageCycleTime | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Modelling Rule |
|---|