This section defines any enumeration or structure that are defined as part of the PackML specification.

The ProductionMaintenanceModeEnum describes the predefined modes. This is a default mode enumeration. A Server may define additional enumeration that describe the modes they support, but any such enumeration must include “Produce” as enumeration 1 and if Maintenance or Manual are include, they must be 2 and 3 respectively. Any additional mode must start at 4 or greater. If vendor specific or end user specific mode enumerations are included, they shall be defined as a subtype of this enumeration. The ProductionMaintenanceModeEnum is the default enumeration that shall be used if no vendor or end user mode enumeration is defined. The ProductionMaintenanceModeEnum is defined in Table 12.

Table 12 – ProductionMaintenanceModeEnum values

Name

Value

Description

Invalid

0

This is an invalid mode

Produce

1

Machine is in production mode

Maintenance

2

Machine is in maintenance mode

Manual

3

Machine is in manual mode

where the following definition apply:

  • Produce corresponds to the PackML Production Mode which is routine production.
  • Maintenance corresponds to the PackML Maintenance Mode which is the ability to run a machine independent of other machine in a production line.
  • Manual corresponds to the PackML Manual Mode which provides direct control of the individual machine elements.

The PackMLCountDataType is used to generate summary information about the system. The information depending on the use might be related to produced product, defective materials or any other information that needs to be tracked. It is formally defined in Table 13

Table 13 – PackMLCountDataType Structure

Name

Type

Description

PackMLCountDataType

Structure

ID

Int32

A user defined value that represents the consumed (processed or defective) material. Typically, this is an SKU number or a user material master number.

Name

String

The name is used to literally describe the material ID, and its associated material.

Unit

EUInformation

The unit tag is used to describe the names associated with a specific material used by the machine.

Count

Int32

The amount of consumed (processed or defective) material on the current production job.

AccCount

Int32

The cumulative count value of the material produced (or consumed). This counter gives the user a non-resetting counter that may be used for OEE calculations

The PackMLDescriptorDataType provides the PackML Parameter structure. The PackMLDescriptorDataType is formally defined in Table 14

Table 14 – PackMLDescriptorDataType Structure

Name

Type

Description

PackMLDescriptorDataType

Structure

ID

Int32

A unique number assigned to the parameter.

Name

String

The name of the parameter

Unit

EUInformation

OPC UA engineering unit information

Value

Float

This is the numeric value of the parameter

.

The PackMLIngredientsDataType provides the PackML Parameter structure. The PackMLIngredientsDataType is formally defined in Table 15.

Table 15 – PackMLIngredientsDataType Structure

Name

Type

Description

PackMLIngredientsDataType

Structure

IngredientID

Int32

A unique number assigned to the ingredient.

Parameter

PackMLDescriptorDataType[]

The array of Parameter that correspond to the ingredient

The PackMLProductDataType provides the PackML product information. The PackMLProductDataType is formally defined in Table 16.

Table 16 – PackMLProductDataType Structure

Name

Type

Description

PackMLProductDataType

Structure

ProductID

Int32

A unique number assigned to the product.

ProcessVariables

PackMLDescriptorDataType[]

The array of Process variables associated with this product

Ingredients

PackMLIngredientsDataType[]

The array of ingredients associated with this product.

The PackMLRemoteInterfaceDataType provides the PackML remote connection information. The PackMLRemoteInterfaceDataType is formally defined in Table 17.

Table 17 – PackMLRemoteInterfaceDataType Structure

Name

Type

Description

PackMLRemoteInterfaceDataType

Structure

This datatype is used with the RemoteCommand Method defined in 6.7.15..

Number

Int32

This is the unique number for the downstream/upstream unit machine using a common tag structure as the unit machine. The number should correspond to a number on the communication network, such as network ID, or IP address identifier. This number corresponds to the “information sender” that is setting the command data in the RemoteInterface[#] structure of the unit machine.

ControlCmdNumber

Int32

A user defined command number associated with coded value from a remote unit. This number is a coded value sent from one node on the network to another. The value can be associated with a unit mode change request, speed change request, a state change request, etc.

CmdValue

Int32

This is the command value associated with the ControlCmdNumber above. The command value may be the speed requested, state change, etc.

Example:For an upstream machine designated as #2 a control command number of 5 may be related to the speed setting value for the machine. A value of 400 can be used to modify the remote machine setpoint.

Command.RemoteInterface[1].Number = 2

Command.RemoteInterface[1].ControlCmdNumber = 5

Command.RemoteInterface[1].CmdValue = 400

Parameter

PackMLDescriptorDataType[]

The parameter tags associated to commanded remote interface are typically used for command parameters that are given to the unit machine from remote machines. The parameters are typically needed for coordinating the unit machine or production with other machines. The parameter value may be anything from machine limit parameters to temperatures and counter presets. The parameters are typically limited to machine parameters as product and process parameters are described in later tags.