20 ProductionDatasetManagementType
20.1 General
Production datasets are used for the configuration of machines. They are stored in files which can be exchanged over the network (e.g. between a machine and MES). This chapter defines methods and events for the exchange of lists of available production datasets and for the transfer of the files themselves.
NOTE: Transferred production datasets are always complete and consistent (includes data for the core machine and connected peripheral equipment, e.g. robot). As the production dataset files themselves are not standardized, a set of metadata is included in the ProductionDatasetInformationType (see 20.4.4).

20.2 ProductionDatasetManagementType Definition
This ObjectType is a container for the functionalities related to the listing and exchange of production datasets. It is formally defined in Table 102.
| Attribute | Value | ||||
| BrowseName | ProductionDatasetManagementType | ||||
| IsAbstract | False | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Other |
|---|---|---|---|---|---|
| Subtype of 0:BaseObjectType defined in OPC UA Part 5 | |||||
| 0:HasComponent | Object | ActiveProductionDatasetStatus | ProductionDatasetStatusType | M | |
| 0:HasComponent | Object | ProductionDatasetInPreparationStatus | ProductionDatasetStatusType | O | |
| 0:HasComponent | Object | ProductionDatasetLists | ProductionDatasetListsType | O | |
| 0:HasComponent | Object | ProductionDatasetTransfer | TemporaryFileTransferType | M | |
| 0:HasComponent | Method | GetProductionDatasetInformation | O | ||
| 0:HasComponent | Method | SendProductionDatasetInformation | O | ||
20.3 ProductionDatasetStatusType
20.3.1 ActiveProductionDatasetStatus, ProductionDatasetInPreparationStatus
This Object represents the status of the production dataset which is active in the control system of the machine or in preparation (in analogy to ActiveJob and JobInPreparation). The ProductionDatasetStatusType is formally defined in Table 103.
NOTE: Production datasets are manufacturer specific files which contain settings of production parameters for the machine and for connected peripheral devices.
| Attribute | Value | ||||
| BrowseName | ProductionDatasetStatusType | ||||
| IsAbstract | False | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Other |
|---|---|---|---|---|---|
| Subtype of 0:BaseObjectType defined in OPC UA Part 5 | |||||
| 0:HasProperty | Variable | Information | ProductionDatasetInformationType | 0:PropertyType | M, RO |
| 0:HasProperty | Variable | Modified | 0:Boolean | 0:PropertyType | O, RO |
| 0:HasProperty | Variable | Frozen | 0:Boolean | 0:PropertyType | O, RW |
| 0:HasComponent | Method | Load | O | ||
| 0:HasComponent | Method | Save | O | ||
20.3.2 Information
The Information Property represents a set of information on the production dataset.
20.3.3 Modified
The Modified Property informs if the production dataset has been changed after the last storage.
NOTE: This information is only valid for the machine directly connected to the client. If the dataset also includes parameters for peripheral devices to that machine, changes in the peripheral devices might not be recognized.
20.3.4 Frozen
The Frozen Property indicates whether changes in the production dataset are not allowed. If TRUE, no changes on the machine in the production dataset (change of process parameters) are allowed.
NOTE: This information is only valid for the machine directly connected to the client. If the dataset also includes parameters for peripheral devices to that machine, changes in the peripheral devices might still be possible.
20.3.5 Load
The Method Load loads a production dataset from the file system of the machine to the control of the machine. As production datasets can contain parameter settings not only for the machine itself but also for peripheral equipment (e.g. robots/handling devices), the parts of the production dataset which shall be activated can be chosen.
Signature
Load (
[in] 0:String Name
[in] 0:UInt16[] Components);| Argument | Description |
| Name | Name of the production dataset that should be loaded. |
| Components | Indication which parts of the production dataset shall be activated. See Table 115 for possible values If Components is not given (array length 0) then the complete Production dataset is activated. |
| Attribute | Value | ||||
| BrowseName | Load | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Modelling Rule |
|---|---|---|---|---|---|
| 0:HasProperty | Variable | InputArguments | Argument[] | 0:PropertyType | Mandatory |
20.3.6 Save
The Method Save stores a production dataset from the control of the machine to the file system of the machine.
Signature
Save (
[in] 0:String Name);| Argument | Description |
| Name | Name under which the production dataset that should be stored in the file system. |
| Attribute | Value | ||||
| BrowseName | Save | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Modelling Rule |
|---|---|---|---|---|---|
| 0:HasProperty | Variable | InputArguments | Argument[] | 0:PropertyType | Mandatory |
20.4 ProductionDatasetLists
The Object ProductionDatasetLists is used to exchange information on the available production datasets on client and server.
| Attribute | Value | ||||
| BrowseName | ProductionDatasetListsType | ||||
| IsAbstract | False | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Other |
|---|---|---|---|---|---|
| Subtype of 0:BaseObjectType defined in OPC UA Part 5 | |||||
| 0:HasComponent | Method | GetProductionDatasetList | M | ||
| 0:HasComponent | Method | SendProductionDatasetList | M | ||
| GeneratesEvent | ObjectType | RequestProductionDatasetListEventType | Defined in 20.4.3 | ||
The Object ProductionDatasetLists can fire an Event RequestProductionDatasetList to initiate a call of SendProductionDataList by the MES.
20.4.1 GetProductionDatasetList
This Method is used to read a list from the server which production datasets are available on the machine's file system (e.g. for a check before an activation or transfer of a production dataset is initiated). The NameFilter and MouldId can be used to reduce the length of the list or for a targeted search.
Signature
GetProductionDatasetList (
[in] 0:String NameFilter
[in] 0:String MouldId
[out] ProductionDatasetInformationType[] ProductionDatasetList);| Argument | Description |
| NameFilter | The Filter can be used to reduce the length of the list or for a targeted search. The wildcards "*" and "?" may be used. NameFilter = "" requests a lists of all available production datasets, NameFilter = "300" requests only information on the production dataset with ProductionDatasetName "300" (if available), NameFilter = "3*" requests information on production datasets with a ProductionDatasetName starting with "3" (e.g. "300", "301", …). |
| MouldId | If MouldId<>"" only production datasets for the given MouldId are requested. |
| ProductionDatasetList | Array of ProductionDatasetInformationType (see 20.4.4) describing the available production datasets on the server. |
| Attribute | Value | ||||
| BrowseName | GetProductionDatasetList | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Modelling Rule |
|---|---|---|---|---|---|
| 0:HasProperty | Variable | InputArguments | Argument[] | 0:PropertyType | Mandatory |
| 0:HasProperty | Variable | OutputArguments | Argument[] | 0:PropertyType | Mandatory |
20.4.2 SendProductionDatasetList
This Method is used to send a list of production datasets available on the client to the server.
Signature
SendProductionDatasetList (
[in] ProductionDatasetInformationType[] ProductionDatasetList);| Argument | Description |
| ProductionDatasetList | Array of ProductionDatasetInformationType describing the available production datasets in the MES. |
| Attribute | Value | ||||
| BrowseName | SendProductionDatasetList | ||||
| 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 ProductionDatasetList is zero) as an answer to the Event RequestProductionDatasetList (see below) if no production dataset which fits the NameFilter and/or MouldId transferred with the event is available.
20.4.3 RequestProductionDatasetList
The Object ProductionDatasetLists can fire an Event RequestProductionDatasetListEventType to initiate a call of SendProductionDatasetList by the client. This can for example be triggered by an operator who wants to load a production dataset not existing on the server.
| Attribute | Value | ||||
| BrowseName | RequestProductionDatasetListEventType | ||||
| IsAbstract | True | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Other |
|---|---|---|---|---|---|
| Subtype of 0:BaseEventType defined in OPC UA Part 5 | |||||
| 0:HasProperty | Variable | NameFilter | 0:String | 0:PropertyType | M |
| 0:HasProperty | Variable | MouldId | 0:String | 0:PropertyType | M |
The MouldFilter and MouldId parameters which can be used to reduce the length of the list or for a targeted search is used in the same way as in the Method GetProductionDatasetList defined in 20.4.1.
20.4.4 ProductionDatasetInformationType
This structure provides information on a production dataset. It does not contain the production dataset file itself.
| Name | Type | Description |
| ProductionDatasetInformationType | structure | Subtype of 0:Structure as defined in OPC UA 10000-3 |
Name | 0:String | Name of the production dataset (=identifier). |
Description | 0:String | Additional description of the production dataset. |
MESId | 0:String | Id of the production dataset file assigned by MES. |
CreationTimestamp | 0:DateTime | Time when the production dataset was originally created or saved with a new name (in UTC time). |
LastModificationTimestamp | 0:DateTime | Time of the last modification of the production dataset (in UTC time). |
LastSaveTimestamp | 0:DateTime | Time when the production dataset was saved to the file system of the machine (in UTC time). |
UserName | 0:String | Name of the user who has made the last parameter change on the machine. |
Components | 0:UInt16[] | Informs for which machines information is included in the file. The possible values are defined in Table 115. If the production dataset contains information for two machines of the same types, the enumeration value is repeated. Example: The production dataset contains information for 1 injection moulding machine and 2 robots: Components = [0 1 1]. |
Manufacturer | 0:String | These Properties are representing the values stored in the MachineInformation at the time the production dataset file is created. |
SerialNumber | 0:String | |
Model | 0:String | |
ControllerName | 0:String | |
UserMachineName | 0:String | These Properties are taken from the MachineConfiguration at the time the production dataset file is created. |
LocationName | 0:String | |
ProductName | 0:String[] | These Properties are in analogy with the Properties in the JobInformationType. MouldId and NumCavities are optional in the derived CyclicJobInformationType, so here empty 0:Strings / value zero are possible. |
MouldId | 0:String | |
NumCavities | 0:UInt32 |
NOTE: This meta data shall also be included in the production dataset file itself.
| Name | Value | Description |
| IMM | 0 | Injection moulding machine |
| ROBOT | 1 | Robot or handling device |
| TCD | 2 | Temperature control device |
| HOT_RUNNER | 3 | Hot runner |
| LDS | 4 | LSR dosing system |
| EXTRUSION_LINE | 5 | Complete extrusion line |
| EXTRUDER | 6 | Extruder |
| HAUL_OFF | 7 | Haull-off (as part of an extrusion line) |
| MELT_PUMP | 8 | Melt pump (as part of an extrusion line) |
| FILTER | 9 | Filter (as part of an extrusion line) |
| DIE | 10 | Die (as part of an extrusion line) |
| PELLETIZER | 11 | Pelletizer (as part of an extrusion line) |
| CUTTER | 12 | Cutter (as part of an extrusion line) |
| CALIBRATOR | 13 | Calibrator (as part of an extrusion line) |
| CORRUGATOR | 14 | Corrugator (as part of an extrusion line) |
| CALENDER | 15 | Calender (as part of an extrusion line) |
NOTE: The list will be extended when further OPC UA models for other machine types are developed.
20.5 ProductionDatasetTransfer
20.5.1 General
OPC UA Part 5 defines a TemporaryFileTransferType for the representation of file transfers. This Type is used for the transfer of production datasets.
20.5.2 GenerateOptions in GenerateFileForRead
For the GenerateOptions in the Method GenerateFileForRead the DataType ProductionDatasetReadOptionsType as defined below shall be used.
| Name | Type | Description |
| ProductionDatasetReadOptionsType | structure | Subtype of 0:Structure as defined in OPC UA 10000-3 |
Storage | StorageEnumeration | Indication from where the production dataset is read. Enumeration of Type StorageEnumeration. Although StorageEnumeration is defined as a Mask, here only the values 1, 2 and 4 are allowed (no combination). |
Name | 0:String | Name of the production dataset that should be transferred from the server to the client. This parameter is only relevant, if Storage is 4 (FILE_SYSTEM). In other cases, it shall be an empty 0:String. |
20.5.3 GenerateOptions in GenerateFileForWrite
For the GenerateOptions in the Method GenerateFileForWrite the DataType ProductionDatasetWriteOptionsType as defined below shall be used.
| Name | Type | Description |
| ProductionDatasetWriteOptionsType | structure | Subtype of 0:Structure as defined in OPC UA 10000-3 |
Storage | StorageEnumeration | Indication where the production dataset is written to. Enumeration of Type StorageEnumeration. |
Name | 0:String | Name of the production dataset that should be transferred from the client to the server. |
Components | 0:UInt16[] | Array which indicates which parts of the production dataset shall be activated in the machine control after writing. Only valid if Storage is PRODUCTION_1 or PREPARATION_2. Array of UInt16. See possible values in Table 115. If Components has the array length 0 then complete production dataset is activated. |
| Name | Value | Description |
| PRODUCTION | 1 | The production dataset is written directly to the (active layer of the) control system of the machine. |
| PREPARATION | 2 | The production dataset is written to the preparation layer of the control system of the machine (if supported). |
| FILE_SYSTEM | 4 | The production dataset is written to the file system of the machine for later activation. |
This Enumeration is defined as a Mask. With this, writing to several destinations with one Method call is possible (e.g. StorageEnumeration = 6 writes the production dataset to the file system and the preparation layer of the control system.
NOTE: It is possible that the machine does not support all storage options (e.g. only writing to file system allowed). In this case, the server will return the StatusCode Bad_InvalidArgument when calling the GenerateFileForWrite Method with a not supported value for Storage.
20.6 Events for ProductionDatasetTransfer
RequestProductionDatasetRead and RequestProductionDatasetWrite are Events to trigger a file transfer by the machine/server (e.g. initiated by the operator).
| Attribute | Value | ||||
| BrowseName | RequestProductionDatasetReadEventType | ||||
| IsAbstract | True | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Other |
|---|---|---|---|---|---|
| Subtype of 0:BaseEventType defined in OPC UA Part 5 | |||||
| 0:HasProperty | Variable | Storage | StorageEnumeration | 0:PropertyType | M |
| 0:HasProperty | Variable | Name | 0:String | 0:PropertyType | M |
Storage: Indication from where the dataset is read. Although StorageEnumeration is defined as a Mask, here only the values 1, 2 and 4 are allowed (no combination).
Name: Name of the production dataset that should be transferred from the server to the client. This parameter is only relevant, if Storage is 4 (FILE_SYSTEM).
| Attribute | Value | ||||
| BrowseName | RequestProductionDatasetWriteEventType | ||||
| IsAbstract | True | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Other |
|---|---|---|---|---|---|
| Subtype of 0:BaseEventType defined in OPC UA Part 5 | |||||
| 0:HasProperty | Variable | Storage | StorageEnumeration | 0:PropertyType | M |
| 0:HasProperty | Variable | Name | 0:String | 0:PropertyType | M |
| 0:HasProperty | Variable | Components | 0:UInt16[] | 0:PropertyType | M |
Name: Name of the production dataset that should be transferred from the client to the server.
Storage: Indication where the dataset is written to.
Components: Array which indicates which parts of the production dataset shall be activated in the machine control after writing. Only valid if Storage is CONTROL_SYSTEM_1 or FILE_AND_CONTROL_SYSTEM_2. Array of UInt16. See possible values in Table 115. If Components has the array length 0 then complete production dataset is activated.
20.7 GetProductionDatasetInformation
This Method allows reading the description of a production dataset during the file transfer from the server to the client with ProductionDatasetTransfer. It may only be called between receiving the fileHandle generated by GenerateFileForRead and closing the file.
Signature
GetProductionDatasetInformation (
[in] 0:UInt32 fileHandle
[out] ProductionDatasetInformationType Information);| Argument | Description |
| fileHandle | Value of fileHandle received by GenerateFileForRead in ProductionDatasetTransfer |
| Information | Description of the production dataset with ProductionDatasetInformationType (see 20.4.4) |
| Attribute | Value | ||||
| BrowseName | GetProductionDatasetInformation | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Modelling Rule |
|---|---|---|---|---|---|
| 0:HasProperty | Variable | InputArguments | Argument[] | 0:PropertyType | Mandatory |
| 0:HasProperty | Variable | OutputArguments | Argument[] | 0:PropertyType | Mandatory |
20.8 SendProductionDatasetInformation
This Method allows sending of the description of a production dataset during the file transfer from the client to the server with ProductionDatasetTransfer. It may only be called between receiving the fileHandle generated by GenerateFileForWrite and closing the file.
Signature
SendProductionDatasetInformation (
[in] 0:UInt32 fileHandle
[in] ProductionDatasetInformationType Information);| Argument | Description |
| fileHandle | Value of fileHandle received by GenerateFileForRead in ProductionDatasetTransfer |
| Information | Description of the production dataset with ProductionDatasetInformationType (see 20.4.4) |
| Attribute | Value | ||||
| BrowseName | SendProductionDatasetInformation | ||||
| References | Node Class | BrowseName | DataType | TypeDefinition | Modelling Rule |
|---|---|---|---|---|---|
| 0:HasProperty | Variable | InputArguments | Argument[] | 0:PropertyType | Mandatory |