What is PackML?

PackML (Packaging Machine Language) is an industry standard, published as ISA-TR88.00.02, that defines a common state model, a set of operating modes and standardised data tags (PackTags) for packaging and other discrete machines. As a result, every machine in a line behaves the same way towards the operator, the MES and neighbouring machines, regardless of the machine builder or PLC brand. PackML was developed by OMAC together with ISA and builds on the state and procedural concepts of ISA-88.


πŸ•°οΈ Where does PackML come from?

In the early 2000s the OMAC (Organization for Machine Automation and Control) Packaging Workgroup set up three subcommittees: PackSoft (programming languages), PackConnect (fieldbuses) and PackML as the integration method bridging the two. In parallel, the WBF’s Make2Pack workgroup started in 2004 to apply ISA-88 to machines. OMAC became affiliated with ISA in 2005, after which the strands of work converged.

Year Milestone
early 2000s OMAC guidelines PackML v1 to v3, with separate PackTags documents
2008 ANSI/ISA-TR88.00.02-2008: PackML and PackTags harmonised with ISA-88 terminology
2015 ANSI/ISA-TR88.00.02-2015: revised edition and the reference for most vendor libraries for years
2020 OPC Foundation publishes OPC 30050 PackML – Packaging Control (v1.01)
2022 ANSI/ISA-TR88.00.02-2022: simplified, with a minimum set of states and tags

The official title is Machine and Unit States: An implementation example of ANSI/ISA-88.00.01. Strictly speaking it is a technical report rather than a formal standard, but across the packaging industry it serves as the de facto standard.


🧠 How does the PackML state model work?

At the heart of PackML is a state machine with up to 17 states. A machine is always in exactly one state; transitions are triggered by a command (Reset, Start, Stop, Hold, Unhold, Suspend, Unsuspend, Abort, Clear) or by State Complete, the signal that an intermediate phase has finished. There are two kinds of state:

  • Acting states β€” the machine is doing something and moves on automatically when finished (for example Starting β†’ Execute)
  • Wait states β€” the machine is stable and waits for a command or event
State No. Type Meaning
Clearing 1 acting Clearing faults after an abort
Stopped 2 wait Machine at rest, ready to be reset
Starting 3 acting Start-up sequence
Idle 4 wait Ready to start
Suspended 5 wait Paused by an external cause (blocked/starved)
Execute 6 acting Productive: the machine does what the mode is meant for
Stopping 7 acting Controlled stop
Aborting 8 acting Fast stop, for example after an emergency stop
Aborted 9 wait Stopped after an abort, waiting for Clear
Holding 10 acting Moving to a pause caused internally
Held 11 wait Paused by an internal cause (fault, material refill)
Unholding 12 acting Resuming after a hold
Suspending 13 acting Moving to a pause caused upstream or downstream
Unsuspending 14 acting Resuming after a suspend
Resetting 15 acting Returning to Idle
Completing 16 acting Finishing an order or batch
Complete 17 wait Order finished, waiting for Reset

The distinction between Held (cause inside the machine) and Suspended (cause outside it, such as a full discharge conveyor) is exactly what makes downtime analysis at line level possible. A machine does not have to use every state: for each operating mode you define which states are active, and transitions into disabled states simply drop out.


πŸ”§ Which operating modes does PackML define?

Alongside states, PackML defines unit modes. Each mode uses (part of) the same state model, but with a different meaning:

  • Production (1) β€” normal production; time in Execute counts as production time
  • Maintenance (2) β€” maintenance and test cycles, possibly at reduced speed; not counted as production
  • Manual (3) β€” manual operation of individual axes or components

Machine builders may add their own modes, such as Cleaning or Changeover. A mode change normally takes place in a stable wait state, such as Stopped or Idle, designated by the machine builder.


πŸ“š How are PackTags structured?

PackTags are fixed names for the tags a machine uses to communicate. They fall into three groups:

Group Purpose Examples
Command Instructions to the machine from outside Command.CntrlCmd, Command.UnitMode, Command.MachSpeed, Command.Parameter[]
Status Current condition of the machine Status.StateCurrent, Status.UnitModeCurrent, Status.CurMachSpeed, Status.EquipmentInterlock
Admin Production, alarm and timing data Admin.ProdProcessedCount, Admin.ProdDefectiveCount, Admin.StopReason, Admin.StateCurrentTime

Because a Status.StateCurrent value of 6 means β€œExecute” on every PackML machine, SCADA, MES and HMI systems can connect a line of machines from different suppliers without custom mapping. The 2022 edition also designates a minimum mandatory set and adds tags that describe the machine configuration to a supervisory system.


🎯 What are the benefits of PackML?

  • Faster line integration β€” machines from different OEMs speak the same language; blocked/starved signals via EquipmentInterlock simplify line coordination
  • Reliable OEE β€” OEE follows directly from state times and counters: availability from time in Execute within Production mode, quality from ProdProcessedCount and ProdDefectiveCount
  • Uniform operation β€” operators see the same states and buttons on every HMI, which reduces training time and operating errors
  • Reusable code β€” machine builders use one software skeleton across their entire portfolio

🏭 Which vendors support PackML?

All major PLC platforms offer ready-made building blocks:

  • Rockwell Automation β€” Machine Builder Libraries in Studio 5000 Application Code Manager, which generate ISA-TR88.00.02-based logic
  • Siemens β€” the LPMLV30 library (OMAC PackML V3.0) for S7-1200 and S7-1500 in TIA Portal
  • Beckhoff β€” TwinCAT libraries Tc3_PackML_V2 (2015 edition) and Tc3_PackML_V3 (2022 edition)
  • B&R β€” the mapp component for OMAC PackML in Automation Studio
  • Schneider Electric, Mitsubishi and IEC 61131-3 environments such as CODESYS β€” their own PackML libraries and example projects

πŸ”„ How does PackML relate to OPC UA and Weihenstephan?

PackML defines what a machine reports; a protocol determines how. The companion specification OPC 30050 PackML – Packaging Control, developed by the OPC Foundation and OMAC, maps the state model, the commands (as methods) and all PackTags into an OPC UA information model. An MES can then read the state and issue commands without knowing the PLC’s internal structure. In a Unified Namespace, PackML states and counters are regularly used to give machine status a uniform structure.

The Weihenstephan Standards (WS) were developed by a working group of machine builders, IT vendors and technologists led by the Technical University of Munich at Weihenstephan, originally for bottling lines in the beverage industry. Variants now include WS Pack (filling and packaging lines), WS Food, WS Bake and WS Brew. Whereas PackML standardises machine control and the state model, WS focuses on the data interface to MES and production data acquisition. The OPC UA model for Weihenstephan, OPC 40600, explicitly builds on OPC 30050, so the two complement each other. For process modules, Module Type Package is the related approach.


πŸ› οΈ How do you implement PackML on a new packaging machine?

  1. Specify it in the URS β€” require ISA-TR88.00.02 (preferably the 2022 edition) and OPC 30050 in your user requirement specification to the machine builder
  2. Choose modes and states β€” decide per mode which of the 17 states the machine really needs and disable the rest
  3. Use a vendor library β€” start from your PLC platform’s PackML template instead of writing your own state machine
  4. Hook in the machine logic β€” run the existing sequences (start-up, run-out) inside the acting states and define what State Complete means for each state
  5. Define stop reasons β€” populate Admin.StopReason and the alarm list from a line-wide code table, otherwise downtime analysis stays superficial
  6. Expose the PackTags β€” via OPC UA to SCADA and MES, restricting write access to Command tags to authorised systems
  7. Test at the FAT β€” walk through every state transition, check counters and timers, and compare the calculated OEE with a manual measurement

❓ Frequently asked questions

Is PackML only for packaging machines?

No. PackML originated in the packaging industry, but its state model and PackTags suit almost any discrete machine, including assembly cells, converting lines and robot cells. PackML is also widely used in the food and pharmaceutical industries.

What is the difference between PackML and ISA-88?

ISA-88 is the batch control standard, with general concepts for modes, states and procedures. PackML, published as ISA-TR88.00.02, is a concrete implementation example of those concepts for machines, with a fixed state model and standardised PackTags.

How many states does PackML have?

The PackML state model has 17 states: six wait states (such as Idle, Held and Stopped) and the rest acting states, with Execute as the productive state. A machine does not need to use all 17 states; unused states can be disabled.

What are PackTags?

PackTags are the standardised data tags of PackML, divided into Command, Status and Admin. They include the current state, machine speed, production counters and stop reasons, so that supervisory systems can read every PackML machine in the same way.

How does PackML help with calculating OEE?

PackML supplies the building blocks of OEE directly from the machine: time per state and mode for availability, current and design speed for performance, and counters of good and rejected products for quality. Because every machine uses the same definitions, OEE figures become comparable across lines and plants.

Do I need OPC UA to use PackML?

No, PackML runs inside the PLC and can be exposed over any protocol. However, OPC UA with the OPC 30050 companion specification is the standardised way to offer PackML states and PackTags to SCADA and MES in a vendor-neutral and secure manner.


πŸ“Œ In summary

PackML (ISA-TR88.00.02) gives every machine the same 17-state model, fixed operating modes and standardised PackTags, so that lines built from different suppliers’ machines can be integrated, operated and measured as one. With OPC UA and the OPC 30050 information model, PackML becomes the common language between machine, SCADA and MES.