8 Management of Jobs with job groups and jobs

The definition which product (family) is produced is done by a job group. This defines which equipment, production dataset and materials are used and which configuration parameters (e.g. width, length of foil) are offered. The concrete products (roll of film with defined width and length) are models as jobs inside this group.

NOTE: Examples for different combinations of jobs are presented in the Annex.

Figure 2 – Job Management Overview

8.1 JobGroups

This is a container for the job groups.

Table 4 – JobGroupsType Definition
Attribute Value
BrowseNameJobGroupsType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of 0:BaseObjectType defined in OPC 10000-5
0:HasPropertyVariable0:NodeVersion0:String0:PropertyTypeM, RO
0:HasComponentObjectJobGroup_<Nr>JobGroupTypeOP
0:HasComponentMethodAddJobGroupO
0:HasComponentMethodRemoveJobGroupByIdO
0:HasComponentMethodStartJobGroupByIdO
0:HasComponentMethodInterruptJobGroupByIdO
0:HasComponentMethodFinishJobGroupByIdO
0:GeneratesEventObjectTypeJobGroupStatusChangedEventTypeDefined in 8.2.23
0:GeneratesEventObjectTypeJobStatusChangedEventTypeDefined in 8.3.17
0:GeneratesEventObjectTypeUnitFinishedEventTypeDefined in 8.3.18
0:GeneratesEventObjectTypeLotFinishedEventTypeDefined in 8.3.19
0:GeneratesEventObjectType0:GeneralModelChangeEventType
Conformance Units
OPC 40084-2 Jobs

8.1.1 NodeVersion

The NodeVersion Property as defined in OPC 10000-3 is used to inform the client about model changes. Here it informs about added or removed instances of JobGroupType.

8.1.2 JobGroup_<Nr>

This is a placeholder for the job groups (see 8.2). When instances are created the BrowseNames shall be “JobGroup_<Nr>” where <Nr> is a three-digit number with leading zeros, starting with “001”.

8.1.3 AddJobGroup

This method adds a new job group with the needed Properties.

Signature

	AddJobGroup (
		[in]	0:String	Id
		[in]	0:String	Description
		[in]	0:String	EquipmentDescription
		[in]	0:String	ProductionDatasetName
		[in]	MaterialMappingType[]	MaterialMapping
		[in]	0:UInt32	Priority
		[in]	0:UtcTime	PlannedStart
		[in]	0:Duration	PlannedProductionTime
		[in]	0:Duration	PlannedSetUpTime
		[in]	0:UtcTime	LatestEnd
		[out]	0:NodeId	JobGroupNodeId);
Table 5 – AddJobGroup Method Arguments
Argument Description
IdSee 8.2, where the Properties of a job group are defined.
DescriptionSee 8.2, where the Properties of a job group are defined.
EquipmentDescriptionSee 8.2, where the Properties of a job group are defined.
ProductionDatasetNameSee 8.2, where the Properties of a job group are defined.
MaterialMappingSee 8.2, where the Properties of a job group are defined.
PrioritySee 8.2, where the Properties of a job group are defined.
PlannedStartSee 8.2, where the Properties of a job group are defined.
PlannedProductionTimeSee 8.2, where the Properties of a job group are defined.
PlannedSetUpTimeSee 8.2, where the Properties of a job group are defined.
LatestEndSee 8.2, where the Properties of a job group are defined.
JobGroupNodeIdThe method returns the NodeId of the created instance for the job group
Table 6 – AddJobGroup Method AddressSpace Definition
Attribute Value
BrowseNameAddJobGroup
References Node Class BrowseName DataType TypeDefinition Modelling Rule
0:HasPropertyVariable0:InputArguments0:Argument[]0:PropertyType0:Mandatory
0:HasPropertyVariable0:OutputArguments0:Argument[]0:PropertyType0:Mandatory

8.1.4 RemoveJobGroupById

This method removes a job group instance.

Signature

	RemoveJobGroupById (
		[in]	0:String	Id);
Table 7 – RemoveJobGroupById Method Arguments
Argument Description
IdId of the job group that shall be removed
Table 8 – RemoveJobGroupById Method AddressSpace Definition
Attribute Value
BrowseNameRemoveJobGroupById
References Node Class BrowseName DataType TypeDefinition Modelling Rule
0:HasPropertyVariable0:InputArguments0:Argument[]0:PropertyType0:Mandatory

8.1.5 StartJobGroupById

With this method the client requests to start the production of a specific job group.

Signature

	StartJobGroupById (
		[in]	0:String	Id);
Table 9 – StartJobGroupById Method Arguments
Argument Description
IdId of the job group that shall be started
Table 10 – StartJobGroup Method AddressSpace Definition
Attribute Value
BrowseNameStartJobGroupById
References Node Class BrowseName DataType TypeDefinition Modelling Rule
0:HasPropertyVariable0:InputArguments0:Argument[]0:PropertyType0:Mandatory

8.1.6 InterruptJobGroupById

With this method the client requests to interrupt the production of a specific job group.

Signature

	InterruptJobGroupById (
		[in]	0:String	Id);
Table 11 – InterruptJobGroupById Method Arguments
Argument Description
IdId of the job group that shall be interrupted
Table 12 – InterruptJobGroupById Method AddressSpace Definition
Attribute Value
BrowseNameInterruptJobGroupById
References Node Class BrowseName DataType TypeDefinition Modelling Rule
0:HasPropertyVariable0:InputArguments0:Argument[]0:PropertyType0:Mandatory

To continue the production of the job group, StartJobGroupById is called.

8.1.7 FinishJobGroupById

With this method the client requests to finish the production of a specific job group.

Signature

	FinishJobGroupById (
		[in]	0:String	Id);
Table 13 – FinishJobGroupById Method Arguments
Argument Description
IdId of the job group that shall be finished
Table 14 – FinishJobGroupById Method AddressSpace Definition
Attribute Value
BrowseNameFinishJobGroupById
References Node Class BrowseName DataType TypeDefinition Modelling Rule
0:HasPropertyVariable0:InputArguments0:Argument[]0:PropertyType0:Mandatory

8.1.8 Events

The JobGroups Object fires all Events related to the included job groups and jobs. With this, a client needs to subscribe to these events only at this node. The different events are described in 8.2 and 8.3.

8.2 JobGroupType

This ObjectType represent a job group.

Table 15 – JobGroupType Definition
Attribute Value
BrowseNameJobGroupType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of 0:BaseObjectType defined in OPC 10000-5
0:HasPropertyVariable0:NodeVersion0:String0:PropertyTypeM, RO
0:HasPropertyVariableId0:String0:PropertyTypeM, RO
0:HasPropertyVariableDescription0:String0:PropertyTypeM, RO
0:HasPropertyVariableEquipmentDescription0:String0:PropertyTypeM, RO
0:HasPropertyVariableProductionDatasetName0:String0:PropertyTypeM, RO
0:HasPropertyVariableMaterialMappingMaterialMappingType[]0:PropertyTypeM, RO
0:HasPropertyVariableConfigurationParametersConfigurationParameterType[]0:PropertyTypeM, RO
0:HasPropertyVariablePriority0:UInt320:PropertyTypeM, RO
0:HasPropertyVariablePlannedStart0:UtcTime0:PropertyTypeM, RO
0:HasPropertyVariablePlannedProductionTime0:Duration0:PropertyTypeM, RO
0:HasPropertyVariablePlannedSetUpTime0:Duration0:PropertyTypeM, RO
0:HasPropertyVariableLatestEnd0:UtcTime0:PropertyTypeM, RO
0:HasPropertyVariableStatus3:JobStatusEnumeration0:PropertyTypeM, RO
0:HasComponentVariableElectricalEnergyConsumption0:Double0:AnalogUnitTypeO, RO
0:HasComponentVariableFluidEnergyConsumption0:Double0:AnalogUnitTypeO, RO
0:HasComponentVariablePressureAirConsumption0:Double0:AnalogUnitTypeO, RO
0:HasComponentObjectJob_<Nr>JobTypeOP
0:HasComponentMethodAddJobO
0:HasComponentMethodRemoveJobByIdO
0:HasComponentMethodStartJobByIdO
0:HasComponentMethodInterruptJobByIdO
0:HasComponentMethodFinishJobByIdO
0:GeneratesEventObjectType0:GeneralModelChange
EventType
Conformance Units
OPC 40084-2 Jobs

8.2.1 NodeVersion

The NodeVersion Property as defined in OPC 10000-3 is used to inform the client about model changes. Here it informs about added or removed instances of JobType in the group.

8.2.2 Id

Id of the job group.

8.2.3 Description

Description of the job group.

8.2.4 EquipmentDescription

Description of the equipment needed for job. This is only for information (e.g. for operator)

NOTE: It makes sense only to mention the interchangeable equipment of the extrusion line here (e.g. die, screw).

8.2.5 ProductionDatasetName

Name of the production dataset which is needed for the job.

8.2.6 MaterialMapping

Information, which material is needed for the production. The MaterialMappingType is defined in Table 16.

Table 16 – MaterialMappingType Definition
Name Type Description
MaterialMappingTypestructure

MaterialId

StringId of the material as specified in the MaterialList (see 6.8)

MaterialLot

StringLot of the material (empty string allowed if not relevant)

HopperId

StringId of the hopper in which the material shall be put (empty string allowed if not supported)

8.2.7 Priority

Priority of the job group: 1 = highest priority, higher values represent lower priorities.

8.2.8 PlannedStart

Planned start of the job (in UTC time). If not relevant the value shall be 0.

8.2.9 PlannedProductionTime

Planned time for the production of the job group. If not relevant the value shall be 0.

8.2.10 PlannedSetUpTime

Planned total time needed for set up and tear down of the extrusion line for the job group. If not relevant the value shall be 0.

8.2.11 LatestEnd

Latest end of the job (in UTC time). If not relevant the value shall be 0.

8.2.12 ConfigurationParameters

Array of offered configuration parameters. The ConfigurationParameterType is defined in OPC 40083. Which ConfigurationParameters are offered to the jobs in the group depends on the machine / implementation / production dataset.

8.2.13 Status

Status of the job group. The JobStatusEnumeration is defined in OPC 40083.

8.2.14 ElectricalEnergyConsumption

Cumulated electrical energy consumption of the extrusion line for the job group in kWh.

8.2.15 FluidEnergyConsumption

Cumulated energy for the cooling of the whole extrusion line with fluid for the job group in kWh.

8.2.16 PressureAirConsumption

Cumulated consumption of pressure air of the whole extrusion line (volume at standard conditions) for the job group in kWh.

8.2.17 Job_<Nr>

This is a placeholder for the jobs inside the group (see 8.3). When instances are created the BrowseNames shall be “Job_<Nr>” where <Nr> is a three-digit number with leading zeros, starting with “001”.

8.2.18 AddJob

This method adds a new job to the group with the needed Properties.

Signature

	AddJob (
		[in]	0:String	Id
		[in]	0:String	Description
		[in]	0:String	CustomerName
		[in]	0:String	ProductName
		[in]	0:String	ProductDescription
		[in]	0:UInt32	Strand
		[in]	0:UInt32	Sequence
		[in]	3:ParameterSettingType[]	ParameterSetting
		[in]	0:Double	SetOutput
		[in]	0:Double	LotSize
		[out]	0:NodeId	JobNodeId);
Table 17 – AddJob Method Arguments
Argument Description
IdSee 8.3, where the Properties of a job are defined.
DescriptionSee 8.3, where the Properties of a job are defined.
CustomerNameSee 8.3, where the Properties of a job are defined.
ProductNameSee 8.3, where the Properties of a job are defined.
ProductDescriptionSee 8.3, where the Properties of a job are defined.
StrandSee 8.3, where the Properties of a job are defined.
SequenceSee 8.3, where the Properties of a job are defined.
ParameterSettingSee 8.3, where the Properties of a job are defined.
SetOutputSee 8.3, where the Properties of a job are defined.
LotSizeSee 8.3, where the Properties of a job are defined.
JobNodeIdThe method returns the NodeId of the created instance for the job group
Table 18 – AddJob Method AddressSpace Definition
Attribute Value
BrowseNameAddJob
References Node Class BrowseName DataType TypeDefinition Modelling Rule
0:HasPropertyVariable0:InputArguments0:Argument[]0:PropertyType0:Mandatory
0:HasPropertyVariable0:OutputArguments0:Argument[]0:PropertyType0:Mandatory

8.2.19 RemoveJobById

This method removes a job from a group.

Signature

	RemoveJobById (
		[in]	0:String	Id);
Table 19 – RemoveJobById Method Arguments
Argument Description
IdId of the job that shall be removed
Table 20 – RemoveJobById Method AddressSpace Definition
Attribute Value
BrowseNameRemoveJobById
References Node Class BrowseName DataType TypeDefinition Modelling Rule
0:HasPropertyVariable0:InputArguments0:Argument[]0:PropertyType0:Mandatory

8.2.20 StartJobById

With this method the client requests to start the production of a specific job in the group.

Signature

	StartJobById (
		[in]	0:String	Id);
Table 21 – StartJobById Method Arguments
Argument Description
IdId of the job that shall be started
Table 22 – StartJob Method AddressSpace Definition
Attribute Value
BrowseNameStartJobById
References Node Class BrowseName DataType TypeDefinition Modelling Rule
0:HasPropertyVariable0:InputArguments0:Argument[]0:PropertyType0:Mandatory

8.2.21 InterruptJobById

With this method the client requests to interrupt the production of a specific job.

Signature

	InterruptJobById (
		[in]	0:String	Id);
Table 23 – InterruptJobById Method Arguments
Argument Description
IdId of the job that shall be interrupted
Table 24 – InterruptJobById Method AddressSpace Definition
Attribute Value
BrowseNameInterruptJobById
References Node Class BrowseName DataType TypeDefinition Modelling Rule
0:HasPropertyVariable0:InputArguments0:Argument[]0:PropertyType0:Mandatory

To continue the production of the job, StartJobById is called.

8.2.22 FinishJobById

With this method the client requests to finish the production of a specific job.

Signature

	FinishJobById (
		[in]	0:String	Id);
Table 25 – FinishJobById Method Arguments
Argument Description
IdId of the job that shall be finished.
Table 26 – FinishJobById Method AddressSpace Definition
Attribute Value
BrowseNameFinishJobById
References Node Class BrowseName DataType TypeDefinition Modelling Rule
0:HasPropertyVariable0:InputArguments0:Argument[]0:PropertyType0:Mandatory

8.2.23 JobGroupStatusChangedEventType

This EventType is used to inform the client about the change of the Status Property of a job group. It is fired by the parent JobGroups object to have only one Node for the subscription.

Table 27 – JobGroupStatusChangedEventType Definition
Attribute Value
BrowseNameJobGroupStatusChangedEventType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Other
Subtype of 0:BaseEventType defined in OPC 10000-5
0:HasPropertyVariableId0:String0:PropertyTypeM
0:HasPropertyVariableLastStatus3:JobStatusEnumeration0:PropertyTypeM
0:HasPropertyVariableActiveStatus3:JobStatusEnumeration0:PropertyTypeM
Conformance Units
OPC 40084-2 Jobs
Id: Id of the job group.
LastStatus:Value of the Status Property of the job group before the change
ActiveStatus:Value of the Status Property of the job group after the change

The SourceNode (part of BaseEventType) shall be the NodeId of the relevant job group.

8.3 JobType

This ObjectType represent a single job inside a job group.

Table 28 – JobType Definition
Attribute Value
BrowseNameJobType
IsAbstractFalse
References Node Class BrowseName DataType TypeDefinition Other
Subtype of 0:BaseObjectType defined in OPC 10000-5
0:HasPropertyVariableId0:String0:PropertyTypeM, RO
0:HasPropertyVariableDescription0:String0:PropertyTypeM, RO
0:HasPropertyVariableCustomerName0:String0:PropertyTypeM, RO
0:HasPropertyVariableProductId0:String0:PropertyTypeM, RO
0:HasPropertyVariableProductDescription0:String0:PropertyTypeM, RO
0:HasPropertyVariableStrand0:UInt320:PropertyTypeM, RO
0:HasPropertyVariableSequence0:UInt320:PropertyTypeM, RO
0:HasPropertyVariableParameterSettingParameterSettingType[]0:PropertyTypeM, RO
0:HasPropertyVariableSetOutput0:Double0:PropertyTypeM, RO
0:HasPropertyVariableLotSize0:Double0:PropertyTypeM, RO
0:HasPropertyVariableStatus3:JobStatusEnumeration0:PropertyTypeM, RO
0:HasComponentVariableGoodProduct0:Boolean0:BaseDataVariableTypeM, RO
0:HasComponentVariableThroughput0:Double0:AnalogUnitTypeO, RO
0:HasComponentVariableProductWeight0:Double0:AnalogUnitTypeO, RO
0:HasComponentVariableLineSpeed0:Double0:AnalogUnitTypeO, RO
0:HasComponentVariableActualLot0:UInt320:BaseDataVariableTypeM, RO
0:HasComponentVariableActualLotName0:String0:BaseDataVariableTypeO, RW
0:HasComponentVariableActualOutput0:Double0:BaseDataVariableTypeM, RO
0:HasComponentVariableActualGoodOutput0:Double0:BaseDataVariableTypeO, RO
0:HasComponentVariableActualBadOutput0:Double0:BaseDataVariableTypeO, RO
0:HasComponentVariableActualSampleOutput0:Double0:BaseDataVariableTypeO, RO
0:HasComponentVariableActualOutputRate0:Double0:BaseDataVariableTypeM, RO
Conformance Units
OPC 40084-2 Jobs

8.3.1 Id

Id of the job. It shall be unique inside the relevant job group. Two jobs inside different job groups may have the same Id.

8.3.2 Description

Description of the job.

8.3.3 CustomerName

Name of the customer for that the job is produced.

8.3.4 ProductId

Id of the product produced by the job.

8.3.5 ProductDescription

Description of the product produced by the job.

8.3.6 Strand

Strand is used when several products (two pipes is parallel, foil cut into several smaller foils) are produced in parallel. When only one product is produced at the same time, the value is always 1.

8.3.7 Sequence

Planned sequence when the job group contains multiple job for one strand. When there is only one job for a string in the production group the value is always 1.

8.3.8 ParameterSetting

Array for the configuration of the job by setting values for the offered configuration parameters. The ParameterSettingType is defined in OPC 40083. If an entry in the ConfigurationParameters Array in the job group has no corresponding entry in the ParameterSetting Array, the default value is used.

8.3.9 SetOutput

Set output of the job. The output is always counted in units, where a unit can be a piece of pipe/profile, roll of film, bag of compound, but also a defined bundle (e.g. one unit consist of 4 bags). What a unit is, may be configurable by the configuration parameters.

8.3.10 LotSize

Size of a production lot. This used to control the

frequency of the Events of LotFinishedEventType (see 8.3.19)

production of different jobs in a group: When LotSize is reached, the next job in the group is produced (see examples in Annex).

8.3.11 Status

Status of the job. The JobStatusEnumeration is defined in OPC 40083.

8.3.12 GoodProduct

Indication if the produced product has a good quality. Can be set by the machine or the operator. When it changes from true to false the line control shall create an alarm.

8.3.13 ActualLot

Which lot (number) is currently in production.

8.3.14 ActualLotName

Optional name for the actual lot.

8.3.15 ActualOutput, ActualGoodOutput, ActualBadOutput, ActualSampleOutput

These Variables represent the total number of produced (finished) units and the numbers of good, bad and test sample units in the current job. (See explanation above for unit in SetOutput.)

8.3.16 ActualOutputRate

Average output rate of the job in units per hour.

8.3.17 JobStatusChangedEventType

This EventType is used to inform the client about the change of the Status Property of a job. It is fired by the JobGroups object to have only one Node for the subscription.

Table 29 – JobStatusChangedEventType Definition
Attribute Value
BrowseNameJobStatusChangedEventType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Other
Subtype of 0:BaseEventType defined in OPC 10000-5
0:HasPropertyVariableJobGroupId0:String0:PropertyTypeM
0:HasPropertyVariableJobId0:String0:PropertyTypeM
0:HasPropertyVariableLastStatus3:JobStatusEnumeration0:PropertyTypeM
0:HasPropertyVariableActiveStatus3:JobStatusEnumeration0:PropertyTypeM
Conformance Units
OPC 40084-2 Jobs
JobGroupId: Id of the job group.
JobId: Id of the job.
LastStatus:Value of the Status Property of the job group before the change
ActiveStatus:Value of the Status Property of the job group after the change

The SourceNode (part of BaseEventType) shall be the NodeId of the relevant job.

8.3.18 UnitFinishedEventType

This EventType is used to inform the client a finished product unit. It is fired by the parent JobGroups object to have only one Node for the subscription.

Table 30 – UnitFinishedEventType Definition
Attribute Value
BrowseNameUnitFinishedEventType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Other
Subtype of 0:BaseEventType defined in OPC 10000-5
0:HasPropertyVariableJobGroupId0:String0:PropertyTypeM
0:HasPropertyVariableJobId0:String0:PropertyTypeM
0:HasPropertyVariableUnit0:UInt320:PropertyTypeM
0:HasPropertyVariableGoodProduct0:Boolean0:PropertyTypeM
Conformance Units
OPC 40084-2 Jobs
JobGroupId: Id of the job group.
JobId: Id of the job.
Unit:Counter, which unit out of the total amount has been finished.
(e.g. roll number 4 roll is finished)
GoodProduct:Information if the finished unit has a good quality.

The SourceNode (part of BaseEventType) shall be the NodeId of the relevant job.

8.3.19 LotFinishedEventType

This EventType is used to inform the client a finished production lot. It is fired by the parent JobGroups object to have only one Node for the subscription.

Table 31 – LotFinishedEventType Definition
Attribute Value
BrowseNameLotFinishedEventType
IsAbstractTrue
References Node Class BrowseName DataType TypeDefinition Other
Subtype of 0:BaseEventType defined in OPC 10000-5
0:HasPropertyVariableJobGroupId0:String0:PropertyTypeM
0:HasPropertyVariableJobId0:String0:PropertyTypeM
0:HasPropertyVariableLot0:UInt320:PropertyTypeM
Conformance Units
OPC 40084-2 Jobs
JobGroupId: Id of the job group.
JobId: Id of the job.
Lot:Counter, which lot has been finished. (e.g. lot number 6 roll is finished)

The SourceNode (part of BaseEventType) shall be the NodeId of the relevant job.

NOTE: The three events JobStatusChanged, UnitFinished and LotFinished may be fired simultaneously. E.g. when a job is finished, then the status is changed, the last product is finished as well as the last lot. If the job is the last in the job group, the JobGroupStatusChanges event will be fired in addition. However, the client decides which EventTypes are subscribed.