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
This is a container for the job groups.
Table 4 – JobGroupsType Definition
Attribute |
Value |
||||
BrowseName |
JobGroupsType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of 0:BaseObjectType defined in OPC UA Part 5 |
|||||
0:HasProperty |
Variable |
0:NodeVersion |
0:String |
0:PropertyType |
M, RO |
0:HasComponent |
Object |
JobGroup_<Nr> |
|
JobGroupType |
OP |
0:HasComponent |
Method |
AddJobGroup |
|
|
O |
0:HasComponent |
Method |
RemoveJobGroupById |
|
|
O |
0:HasComponent |
Method |
StartJobGroupById |
|
|
O |
0:HasComponent |
Method |
InterruptJobGroupById |
|
|
O |
0:HasComponent |
Method |
FinishJobGroupById |
|
|
O |
0:GeneratesEvent |
ObjectType |
JobGroupStatusChangedEventType |
Defined in 9.2.23 |
||
0:GeneratesEvent |
ObjectType |
JobStatusChangedEventType |
Defined in 9.3.17 |
||
0:GeneratesEvent |
ObjectType |
UnitFinishedEventType |
Defined in 9.3.18 |
||
0:GeneratesEvent |
ObjectType |
LotFinishedEventType |
Defined in 9.3.19 |
||
0:GeneratesEvent |
ObjectType |
0:GeneralModelChangeEventType |
|
The NodeVersion Property as defined in OPC UA Part 3 is used to inform the client about model changes. Here it informs about added or removed instances of JobGroupType.
This is a placeholder for the job groups (see 0). When instances are created the BrowseNames shall be “JobGroup_<Nr>” where <Nr> is a three-digit number with leading zeros, starting with “001”.
This method adds a new job group with the needed Properties.
Signature
AddJobGroup (
[in]StringId
[in]StringDescription
[in]StringEquipmentDescription
[in]StringProductionDatasetName
[in]MaterialMappingType[]MaterialMapping
[in]UInt32Priority
[in]UtcTimePlannedStart
[in]DurationPlannedProductionTime
[in]DurationPlannedSetUpTime
[in]UtcTimeLatestEnd
[out]NodeIdJobGroupNodeId);
Table 5 – AddJobGroup Method Arguments
Argument |
Description |
Id |
See 0, where the Properties of a job group are defined. |
Description |
See 0, where the Properties of a job group are defined. |
EquipmentDescription |
See 0, where the Properties of a job group are defined. |
ProductionDatasetName |
See 0, where the Properties of a job group are defined. |
MaterialMapping |
See 0, where the Properties of a job group are defined. |
Priority |
See 0, where the Properties of a job group are defined. |
PlannedStart |
See 0, where the Properties of a job group are defined. |
PlannedProductionTime |
See 0, where the Properties of a job group are defined. |
PlannedSetUpTime |
See 0, where the Properties of a job group are defined. |
LatestEnd |
See 0, where the Properties of a job group are defined. |
JobGroupNodeId |
The method returns the NodeId of the created instance for the job group |
Table 6 – AddJobGroup Method AddressSpace Definition
Attribute |
Value |
||||
BrowseName |
AddJobGroup |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
HasProperty |
Variable |
OutputArguments |
Argument[] |
PropertyType |
Mandatory |
This method removes a job group instance.
Signature
RemoveJobGroupById (
[in]StringId);
Table 7 – RemoveJobGroupById Method Arguments
Argument |
Description |
Id |
Id of the job group that shall be removed |
Table 8 – RemoveJobGroupById Method AddressSpace Definition
Attribute |
Value |
||||
BrowseName |
RemoveJobGroupById |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
With this method the client requests to start the production of a specific job group.
Signature
StartJobGroupById (
[in]StringId);
Table 9 – StartJobGroupById Method Arguments
Argument |
Description |
Id |
Id of the job group that shall be started |
Table 10 – StartJobGroup Method AddressSpace Definition
Attribute |
Value |
||||
BrowseName |
StartJobGroupById |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
With this method the client requests to interrupt the production of a specific job group.
Signature
InterruptJobGroupById (
[in]StringId);
Table 11 – InterruptJobGroupById Method Arguments
Argument |
Description |
Id |
Id of the job group that shall be interrupted |
Table 12 – InterruptJobGroupById Method AddressSpace Definition
Attribute |
Value |
||||
BrowseName |
InterruptJobGroupById |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
To continue the production of the job group, StartJobGroupById is called.
With this method the client requests to finish the production of a specific job group.
Signature
FinishJobGroupById (
[in]StringId);
Table 13 – FinishJobGroupById Method Arguments
Argument |
Description |
Id |
Id of the job group that shall be finished |
Table 14 – FinishJobGroupById Method AddressSpace Definition
Attribute |
Value |
||||
BrowseName |
FinishJobGroupById |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
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 0 and 0.
This ObjectType represent a job group.
Table 15 – JobGroupType Definition
Attribute |
Value |
||||
BrowseName |
JobGroupType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of 0:BaseObjectType defined in OPC UA Part 5 |
|||||
0:HasProperty |
Variable |
0:NodeVersion |
0:String |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
Id |
0:String |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
Description |
0:String |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
EquipmentDescription |
0:String |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
ProductionDatasetName |
0:String |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
MaterialMapping |
MaterialMappingType[] |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
ConfigurationParameters |
ConfigurationParameterType[] |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
Priority |
0:UInt32 |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
PlannedStart |
0:UtcTime |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
PlannedProductionTime |
0:Duration |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
PlannedSetUpTime |
0:Duration |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
LatestEnd |
0:UtcTime |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
Status |
3:JobStatusEnumeration |
0:PropertyType |
M, RO |
0:HasComponent |
Variable |
ElectricalEnergyConsumption |
0:Double |
0:AnalogUnitType |
O, RO |
0:HasComponent |
Variable |
FluidEnergyConsumption |
0:Double |
0:AnalogUnitType |
O, RO |
0:HasComponent |
Variable |
PressureAirConsumption |
0:Double |
0:AnalogUnitType |
O, RO |
0:HasComponent |
Object |
Job_<Nr> |
|
JobType |
OP |
0:HasComponent |
Method |
AddJob |
|
|
O |
0:HasComponent |
Method |
RemoveJobById |
|
|
O |
0:HasComponent |
Method |
StartJobById |
|
|
O |
0:HasComponent |
Method |
InterruptJobById |
|
|
O |
0:HasComponent |
Method |
FinishJobById |
|
|
O |
0:GeneratesEvent |
ObjectType |
0:GeneralModelChangeEventType |
|
The NodeVersion Property as defined in OPC UA Part 3 is used to inform the client about model changes. Here it informs about added or removed instances of JobType in the group.
Id of the job group.
Description of the job group.
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).
Name of the production dataset which is needed for the job.
Information, which material is needed for the production. The MaterialMappingType is defined in Table 16.
Table 16 – MaterialMappingType Definition
Name |
Type |
Description |
MaterialMappingType |
structure |
|
MaterialId |
String |
Id of the material as specified in the MaterialList (see 7.10) |
MaterialLot |
String |
Lot of the material (empty string allowed if not relevant) |
HopperId |
String |
Id of the hopper in which the material shall be put (empty string allowed if not supported) |
Priority of the job group: 1 = highest priority, higher values represent lower priorities.
Planned start of the job (in UTC time). If not relevant the value shall be 0.
Planned time for the production of the job group. If not relevant the value shall be 0.
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.
Latest end of the job (in UTC time). If not relevant the value shall be 0.
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.
Status of the job group. The JobStatusEnumeration is defined in OPC 40083.
Cumulated electrical energy consumption of the extrusion line for the job group in kWh.
Cumulated energy for the cooling of the whole extrusion line with fluid for the job group in kWh.
Cumulated consumption of pressure air of the whole extrusion line (volume at standard conditions) for the job group in kWh.
This is a placeholder for the jobs inside the group (see 0). When instances are created the BrowseNames shall be “Job_<Nr>” where <Nr> is a three-digit number with leading zeros, starting with “001”.
This method adds a new job to the group with the needed Properties.
Signature
AddJob (
[in]StringId
[in]StringDescription
[in]StringCustomerName
[in]StringProductName
[in]StringProductDescription
[in]UInt32Strand
[in]UInt32Sequence
[in]ParameterSettingType[]ParameterSetting
[in]DoubleSetOutput
[in]DoubleLotSize
[out]NodeIdJobNodeId);
Table 17 – AddJob Method Arguments
Argument |
Description |
Id |
See 0, where the Properties of a job are defined. |
Description |
See 0, where the Properties of a job are defined. |
CustomerName |
See 0, where the Properties of a job are defined. |
ProductName |
See 0, where the Properties of a job are defined. |
ProductDescription |
See 0, where the Properties of a job are defined. |
Strand |
See 0, where the Properties of a job are defined. |
Sequence |
See 0, where the Properties of a job are defined. |
ParameterSetting |
See 0, where the Properties of a job are defined. |
SetOutput |
See 0, where the Properties of a job are defined. |
LotSize |
See 0, where the Properties of a job are defined. |
JobNodeId |
The method returns the NodeId of the created instance for the job group |
Table 18 – AddJob Method AddressSpace Definition
Attribute |
Value |
||||
BrowseName |
AddJob |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
HasProperty |
Variable |
OutputArguments |
Argument[] |
PropertyType |
Mandatory |
This method removes a job from a group.
Signature
RemoveJobById (
[in]StringId);
Table 19 – RemoveJobById Method Arguments
Argument |
Description |
Id |
Id of the job that shall be removed |
Table 20 – RemoveJobById Method AddressSpace Definition
Attribute |
Value |
||||
BrowseName |
RemoveJobById |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
With this method the client requests to start the production of a specific job in the group.
Signature
StartJobById (
[in]StringId);
Table 21 – StartJobById Method Arguments
Argument |
Description |
Id |
Id of the job that shall be started |
Table 22 – StartJob Method AddressSpace Definition
Attribute |
Value |
||||
BrowseName |
StartJobById |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
With this method the client requests to interrupt the production of a specific job.
Signature
InterruptJobById (
[in]StringId);
Table 23 – InterruptJobById Method Arguments
F |
Description |
Id |
Id of the job that shall be interrupted |
Table 24 – InterruptJobById Method AddressSpace Definition
Attribute |
Value |
||||
BrowseName |
InterruptJobById |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
To continue the production of the job, StartJobById is called.
With this method the client requests to finish the production of a specific job.
Signature
FinishJobById (
[in]StringId);
Table 25 – FinishJobById Method Arguments
Argument |
Description |
Id |
Id of the job that shall be finished. |
Table 26 – FinishJobById Method AddressSpace Definition
Attribute |
Value |
||||
BrowseName |
FinishJobById |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Modelling Rule |
HasProperty |
Variable |
InputArguments |
Argument[] |
PropertyType |
Mandatory |
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 |
||||
BrowseName |
JobGroupStatusChangedEventType |
||||
IsAbstract |
True |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of 0:BaseEventType defined in OPC UA Part 5 |
|||||
0:HasProperty |
Variable |
Id |
0:String |
0:PropertyType |
M |
0:HasProperty |
Variable |
LastStatus |
3:JobStatusEnumeration |
0:PropertyType |
M |
0:HasProperty |
Variable |
ActiveStatus |
3:JobStatusEnumeration |
0:PropertyType |
M |
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.
This ObjectType represent a single job inside a job group.
Attribute |
Value |
||||
BrowseName |
JobType |
||||
IsAbstract |
False |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of 0:BaseObjectType defined in OPC UA Part 5 |
|||||
0:HasProperty |
Variable |
Id |
0:String |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
Description |
0:String |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
CustomerName |
0:String |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
ProductId |
0:String |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
ProductDescription |
0:String |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
Strand |
0:UInt32 |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
Sequence |
0:UInt32 |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
ParameterSetting |
ParameterSettingType[] |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
SetOutput |
0:Double |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
LotSize |
0:Double |
0:PropertyType |
M, RO |
0:HasProperty |
Variable |
Status |
3:JobStatusEnumeration |
0:PropertyType |
M, RO |
0:HasComponent |
Variable |
GoodProduct |
0:Boolean |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
Throughput |
0:Double |
0:AnalogUnitType |
O, RO |
0:HasComponent |
Variable |
ProductWeight |
0:Double |
0:AnalogUnitType |
O, RO |
0:HasComponent |
Variable |
LineSpeed |
0:Double |
0:AnalogUnitType |
O, RO |
0:HasComponent |
Variable |
ActualLot |
0:UInt32 |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
ActualLotName |
0:String |
0:BaseDataVariableType |
O, RW |
0:HasComponent |
Variable |
ActualOutput |
0:Double |
0:BaseDataVariableType |
M, RO |
0:HasComponent |
Variable |
ActualGoodOutput |
0:Double |
0:BaseDataVariableType |
O, RO |
0:HasComponent |
Variable |
ActualBadOutput |
0:Double |
0:BaseDataVariableType |
O, RO |
0:HasComponent |
Variable |
ActualSampleOutput |
0:Double |
0:BaseDataVariableType |
O, RO |
0:HasComponent |
Variable |
ActualOutputRate |
0:Double |
0:BaseDataVariableType |
M, RO |
Id of the job. It shall be unique inside the relevant job group. Two jobs inside different job groups may have the same Id.
Description of the job.
Name of the customer for that the job is produced.
Id of the product produced by the job.
Description of the product produced by the job.
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.
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.
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 ConfigurationParamters Array in the job group has no corresponding entry in the ParameterSetting Array, the default value is used.
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.
Size of a production lot. This used to control the
- frequency of the Events of LotFinishedEventType (see 9.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).
Status of the job. The JobStatusEnumeration is defined in OPC 40083.
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.
Which lot (number) is currently in production.
Optional name for the actual lot.
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).
Average output rate of the job in units per hour.
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 |
||||
BrowseName |
JobStatusChangedEventType |
||||
IsAbstract |
True |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of 0:BaseEventType defined in OPC UA Part 5 |
|||||
0:HasProperty |
Variable |
JobGroupId |
0:String |
0:PropertyType |
M |
0:HasProperty |
Variable |
JobId |
0:String |
0:PropertyType |
M |
0:HasProperty |
Variable |
LastStatus |
3:JobStatusEnumeration |
0:PropertyType |
M |
0:HasProperty |
Variable |
ActiveStatus |
3:JobStatusEnumeration |
0:PropertyType |
M |
JobGroupId: 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.
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 |
||||
BrowseName |
UnitFinishedEventType |
||||
IsAbstract |
True |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of 0:BaseEventType defined in OPC UA Part 5 |
|||||
0:HasProperty |
Variable |
JobGroupId |
0:String |
0:PropertyType |
M |
0:HasProperty |
Variable |
JobId |
0:String |
0:PropertyType |
M |
0:HasProperty |
Variable |
Unit |
0:UInt32 |
0:PropertyType |
M |
0:HasProperty |
Variable |
GoodProduct |
0:Boolean |
0:PropertyType |
M |
JobGroupId: Id of the job group.
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.
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 |
||||
BrowseName |
LotFinishedEventType |
||||
IsAbstract |
True |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of 0:BaseEventType defined in OPC UA Part 5 |
|||||
0:HasProperty |
Variable |
JobGroupId |
0:String |
0:PropertyType |
M |
0:HasProperty |
Variable |
JobId |
0:String |
0:PropertyType |
M |
0:HasProperty |
Variable |
Lot |
0:UInt32 |
0:PropertyType |
M |
JobGroupId: Id of the job group.
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.