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.

Figure 14 – JobsType Overview
Table 72 – JobsType Definition
Attribute Value
BrowseNameJobsType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of 0:BaseObjectType defined in OPC UA Part 5
0:HasComponentObjectActiveJobJobInformationTypeM
0:HasComponentObjectJobInPreparationJobInformationTypeO
0:HasComponentMethodSendJobListO
0:HasComponentMethodSendCyclicJobListO
0:HasComponentObjectActiveJobValuesActiveJobValuesTypeM
GeneratesEventObjectTypeRequestJobListEventTypeDefined in 18.3.2
GeneratesEventObjectTypeRequestCyclicJobListEventTypeDefined 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.

Table 73 – JobInformationType Definition
Attribute Value
BrowseNameJobInformationType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Other
Subtype of 0:BaseObjectType defined in OPC UA Part 5
0:HasPropertyVariableJobName0:String0:PropertyTypeM, RO
0:HasPropertyVariableJobDescription0:String0:PropertyTypeM, RO
0:HasPropertyVariableCustomerName0:String0:PropertyTypeM, RO
0:HasPropertyVariableProductionDatasetName0:String0:PropertyTypeM, RO
0:HasPropertyVariableProductionDatasetDescription0:String0:PropertyTypeM, RO
0:HasPropertyVariableMaterial0:String[]0:PropertyTypeM, RO
0:HasPropertyVariableProductName0:String[]0:PropertyTypeM, RO
0:HasPropertyVariableProductDescription0:String[]0:PropertyTypeM, RO
0:HasPropertyVariableContinueAtJobEnd0:Boolean0:PropertyTypeM, RW
0:HasSubtypeObjectTypeCyclicJobInformationType

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.

Table 74 – CyclicJobInformationType Definition
Attribute Value
BrowseNameCyclicJobInformationType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of JobInformationType
0:HasPropertyVariableNominalParts0:UInt640:PropertyTypeM, RW
0:HasPropertyVariableNominalBoxParts0:UInt640:PropertyTypeO, RW
0:HasPropertyVariableExpectedCycleTime0:Duration0:PropertyTypeO, RW
0:HasPropertyVariableMouldId0:String0:PropertyTypeO, RO
0:HasPropertyVariableNumCavities0:UInt320:PropertyTypeO, RO
0:HasComponentMethodSetCyclicJobData M
GeneratesEventObjectTypeRequestCyclicJobWriteEventTypeDefined 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.

Table 75 – SetCyclicJobData Method AddressSpace Definition
Attribute Value
BrowseNameSetCyclicJobData
References Node Class BrowseName DataType TypeDefinition Modelling Rule
0:HasPropertyVariableInputArgumentsArgument[]0:PropertyTypeMandatory
18.2.11.7 RequestCyclicJobWrite

The Event RequestCyclicJobWriteEventType is used to initiate a call of the SetCyclicJobData Method by the client.

Table 76 – RequestCyclicJobWriteEventType Definition
Attribute Value
BrowseNameRequestCyclicJobWriteEventType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Modelling Rule
Subtype of 0:BaseEventType defined in OPC UA Part 5
0:HasPropertyVariableJobName0:String0:PropertyTypeM

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);
Table 77 – SendJobList Method Arguments
Argument Description
JobListArray of JobInformationType describing the available jobs in the client.
Table 78 – SendJobList Method AddressSpace Definition
Attribute Value
BrowseNameSendJobList
References Node Class BrowseName DataType TypeDefinition Modelling Rule
0:HasPropertyVariableInputArgumentsArgument[]0:PropertyTypeMandatory

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

Table 79 – JobListElementType Definition
NameTypeDescription
JobListElementTypestructureSubtype of 0:Structure as defined in OPC UA 10000-3

JobName

0:StringAs defined in JobInformationType

JobDescription

0:String

JobClassification

0:StringClassification of the job

CustomerName

0:StringAs defined in JobInformationType

ProductionDatasetName

0:String

ProductionDatasetDescription

0:String

Material

0:String[]

ProductName

0:String[]

ProductDescription

0:String[]

JobPriority

0:StringPriority of the job

PlannedStart

0:DateTimePlanned start of the job

PlannedProductionTime

0:DurationPlanned production time of the job

LatestEnd

0:DateTimeLatest 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.

Table 80 – RequestJobListEventType Definition
Attribute Value
BrowseNameRequestJobListEventType
IsAbstractTrue
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);
Table 81 – SendCyclicJobList Method Arguments
Argument Description
JobListArray of CyclicJobInformationType describing the available cyclic jobs in the client.
Table 82 – SendCyclicJobList Method AddressSpace Definition
Attribute Value
BrowseNameSendCyclicJobList
References Node Class BrowseName DataType TypeDefinition Modelling Rule
0:HasPropertyVariableInputArgumentsArgument[]0:PropertyTypeMandatory

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.

Table 83 – CyclicJobListElementType Definition (subtype of JobListElementType)
Name Type Description
CyclicJobListElementTypestructureSubtype of JobListElementType

NominalParts

0:UInt64As 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.

Table 84 – RequestCyclicJobListEventType Definition
Attribute Value
BrowseNameRequestCyclicJobListEventType
IsAbstractTrue
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.

Table 85 – ActiveJobValuesType Definition
Attribute Value
BrowseNameActiveJobValuesType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of 0:BaseObjectType defined in OPC UA Part 5
0:HasPropertyVariableJobStatusJobStatusEnumeration0:PropertyTypeM, RO
0:HasComponentMethodStartJobM
0:HasComponentMethodInterruptJobM
0:HasComponentMethodFinishJobM
0:HasPropertyVariableCurrentLotName0:String0:PropertyTypeM, RW
0:HasPropertyVariableBoxId0:String0:PropertyTypeO, RW
0:HasSubtypeObjectTypeActiveCyclicJobValuesType

18.4.1 JobStatus

The JobStatus Property represents the current status of the job.

Table 86 – JobStatusEnumeration Definition
Name Value Description
OTHER0This state is used if none of the other states below apply. Set by operator.
TRANSFERRED_ASSIGNED1The job has been transferred to the machine and assigned as current job.
SET_UP_ACTIVE2The operator prepares the machine for the job.
SET_UP_INTERRUPTED3The operator has interrupted but not finished the preparation of the machine for the job.
SET_UP_FINISHED4The operator has finished the preparation of the machine for the job.
START_UP_ACTIVE5The operator is setting the machine in the start-up phase.
JOB_IN_PRODUCTION6The machine is producing parts/products for the job.
JOB_INTERRUPTED7The job is interrupted. The nominal output is not reached.
JOB_FINISHED8Nominal output reached.
TEAR_DOWN_ACTIVE9The operator tears the machine down.
TEAR_DOWN_INTERRUPTED10Tear-down is interrupted but not finished.
TEAR_DOWN_FINISHED11Tear-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.

Table 87 – StartJob Method AddressSpace Definition
Attribute Value
BrowseNameStartJob
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.

Table 88 – InterruptJob Method AddressSpace Definition
Attribute Value
BrowseNameInterruptJob
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.

Table 89 – FinishJob Method AddressSpace Definition
Attribute Value
BrowseNameFinishJob
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.

Table 90 – ActiveCyclicJobValuesType Definition
Attribute Value
BrowseNameActiveCyclicJobValuesType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of ActiveJobValuesType
0:HasComponentVariableJobCycleCounter0:UInt640:BaseDataVariableTypeM, RO
0:HasComponentVariableBoxCycleCounter0:UInt640:BaseDataVariableTypeO, RO
0:HasComponentVariableMachineCycleCounter0:UInt640:BaseDataVariableTypeO, RO
0:HasComponentVariableLastCycleTime0:Duration0:BaseDataVariableTypeM, RO
0:HasComponentVariableAverageCycleTime0:Duration0:BaseDataVariableTypeO, RO
0:HasComponentVariableJobPartsCounter0:UInt640:BaseDataVariableTypeM, RO
0:HasComponentVariableJobGoodPartsCounter0:UInt640:BaseDataVariableTypeM, RO
0:HasComponentVariableJobBadPartsCounter0:UInt640:BaseDataVariableTypeM, RO
0:HasComponentVariableJobTestSamplesCounter0:UInt640:BaseDataVariableTypeM, RO
0:HasComponentVariableBoxPartsCounter0:UInt640:BaseDataVariableTypeO, RO
0:HasComponentVariableBoxGoodPartsCounter0:UInt640:BaseDataVariableTypeO, RO
0:HasComponentVariableBoxBadPartsCounter0:UInt640:BaseDataVariableTypeO, RO
0:HasComponentVariableBoxTestSamplesCounter0:UInt640:BaseDataVariableTypeO, RO
0:HasComponentVariableLastPartId0:String[]0:BaseDataVariableTypeO, RO
0:HasComponentMethodStopAtCycleEndM
0:HasComponentMethodResetJobCountersM
0:HasComponentMethodResetBoxCountersO
0:HasComponentMethodResetAverageCycleTime 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.

Table 91 – StopAtCycleEndMethod AddressSpace Definition
Attribute Value
BrowseNameStopAtCycleEnd
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.

Table 92 – ResetJobCounters Method AddressSpace Definition
Attribute Value
BrowseNameResetJobCounters
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.

Table 93 – ResetBoxCounters Method AddressSpace Definition
Attribute Value
BrowseNameResetBoxCounters
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.

Table 94 – ResetAverageCycleTime Method AddressSpace Definition
Attribute Value
BrowseNameResetAverageCycleTime
References Node Class BrowseName DataType TypeDefinition Modelling Rule