Skip to content

Breaking Changes

Naming optimizations were made to the PackML standard which will require changes to the PackML Modes, States, and Commands. The following changes were made:

E_PMLProtectedUnitMode

The enumeration members used within the E_PMLProtectedUnitMode have been given shorter names:

PackML V2 PackML V3
E_PMLProtectedUnitMode.ePMLProtectedUnitMode_Invalid E_PMLProtectedUnitMode.Invalid
E_PMLProtectedUnitMode.ePMLProtectedUnitMode_Production E_PMLProtectedUnitMode.Production
E_PMLProtectedUnitMode.ePMLProtectedUnitMode_Maintenance E_PMLProtectedUnitMode.Maintenance
E_PMLProtectedUnitMode.ePMLProtectedUnitMode_Manual E_PMLProtectedUnitMode.Manual

E_PMLUnitMode

The enumeration members used within the E_PMLUnitMode of the SPT Base Types library have been given shorter names:

SPT V3 SPT V4
E_PMLUnitMode.ePMLUnitMode_Invalid E_PMLUnitMode.Invalid
E_PMLUnitMode.ePMLUnitMode_Production E_PMLUnitMode.Production
E_PMLUnitMode.ePMLUnitMode_Manual E_PMLUnitMode.Manual
E_PMLUnitMode.ePMLUnitMode_Maintenance E_PMLUnitMode.Maintenance
E_PMLUnitMode.ePMLUnitMode_UserMode1 E_PMLUnitMode.UserMode1
... ...
E_PMLUnitMode.ePMLUnitMode_UserMode28 E_PMLUnitMode.UserMode28

E_PMLState

The enumeration members used within the E_PMLState have been given shorter names:

PackML V2 PackML V3
E_PMLState.ePMLState_Aborting E_PMLState.Aborting
E_PMLState.ePMLState_Aborted E_PMLState.Aborted
E_PMLState.ePMLState_Clearing E_PMLState.Clearing
E_PMLState.ePMLState_Stopping E_PMLState.Stopping
E_PMLState.ePMLState_Stopped E_PMLState.Stopped
E_PMLState.ePMLState_Resetting E_PMLState.Resetting
E_PMLState.ePMLState_Idle E_PMLState.Idle
E_PMLState.ePMLState_Starting E_PMLState.Starting
E_PMLState.ePMLState_Execute E_PMLState.Execute
E_PMLState.ePMLState_Completing E_PMLState.Completing
E_PMLState.ePMLState_Complete E_PMLState.Completed
E_PMLState.ePMLState_Suspending E_PMLState.Suspending
E_PMLState.ePMLState_Suspended E_PMLState.Suspended
E_PMLState.ePMLState_Unsuspending E_PMLState.Unsuspending
E_PMLState.ePMLState_Holding E_PMLState.Holding
E_PMLState.ePMLState_Held E_PMLState.Held
E_PMLState.ePMLState_Unholding E_PMLState.Unholding

Note

The Complete state has been renamed to Completed. This is a change in the PackML standard and not a change in the TwinCAT implementation.

E_PMLCommand

The enumeration members used within the E_PMLCommand have been given shorter names:

PackML V2 PackML V3
E_PMLCommand.ePMLCommand_Abort E_PMLCommand.Abort
E_PMLCommand.ePMLCommand_Clear E_PMLCommand.Clear
E_PMLCommand.ePMLCommand_Stop E_PMLCommand.Stop
E_PMLCommand.ePMLCommand_Reset E_PMLCommand.Reset
E_PMLCommand.ePMLCommand_Start E_PMLCommand.Start
E_PMLCommand.ePMLCommand_Complete E_PMLCommand.Complete
E_PMLCommand.ePMLCommand_Hold E_PMLCommand.Hold
E_PMLCommand.ePMLCommand_Unhold E_PMLCommand.Unhold
E_PMLCommand.ePMLCommand_Suspend E_PMLCommand.Suspend
E_PMLCommand.ePMLCommand_Unsuspend E_PMLCommand.Unsuspend

Note

The PackML V2 standard did not have a Complete command, but instead used the StateComplete method just as the other acting states. However, the TwinCAT implementation of PackML V2 did have a Complete command that would provide the same functionality. The PackML V3 standard has added the Complete command to the enumeration. The TwinCAT implementation has been updated to match the PackML V3 standard.

Function Names:

PackML V2 PackML V3
F_UnitModeToString F_PMLUnitModeToString

Pack Tags

Here is a short list of some of the Pack Tags that have been renamed.

PackML V2 PackML V3
Tc3_PackML_V2.MaxAlarms Tc3_PackML_V3.cMaxAlarms
Tc3_PackML_V2.ST_PMLa Tc3_PackML_V3.ST_PMLa
Tc3_PackML_V2.ST_Alarm Tc3_PackML_V3.ST_PMLEvent
Tc3_PackML_V2.MaxStopReasons No Equivalent
Tc3_PackML_V2.MaxWarnings Tc3_PackML_V3.cMaxWarnings
Tc3_PackML_V2.MaxHistoryAlarms Tc3_PackML_V3.cMaxHistoryAlarms