If you've ever looked at a modern packaging machine's HMI (Human-Machine Interface) and seen labels like Execute, Held, Suspended, or Aborting, those come from PackML, the international standard for packaging machine control. Understanding PackML is essential for anyone involved in packaging operations, maintenance engineering, or production monitoring.
This guide covers all 17 PackML states in detail, PackML modes, the Held vs Suspended distinction, PackTags, and how PackML enables accurate OEE monitoring.
What Is PackML?
PackML (Packaging Machine Language) is defined by ISA-TR88.00.02, a technical report from the International Society of Automation (ISA) based on the ANSI/ISA-88 batch control standard. It was developed by the OMAC Packaging Workgroup (Organisation for Machine Automation and Control) to create a common control language across packaging equipment.
Before PackML, every machine builder defined their own state names. One vendor's "Running" was another's "In Cycle". This made it nearly impossible to build unified production dashboards across multi-vendor packaging lines. PackML solved this by defining a standard state model that all compliant machines implement the same way, regardless of manufacturer.
The current PackML standard (v3.0, formalised in ISA-TR88.00.02-2008 and updated in 2015 and 2022) is now embedded in modern PLCs from Siemens, Allen-Bradley, Beckhoff, B&R, and others.
All 17 PackML States: Quick Reference
| State | Category | Description |
|---|---|---|
| Idle | Wait | Ready to start, waiting for Start command |
| Starting | Acting | Ramping up to production |
| Execute | Acting | Actively producing (the productive state) |
| Completing | Acting | Finishing current production cycle |
| Complete | Wait | Cycle finished, waiting for Reset |
| Resetting | Acting | Preparing to return to Idle |
| Holding | Acting | Transitioning to Held |
| Held | Wait | Operator-initiated pause |
| Unholding | Acting | Transitioning from Held back to Execute |
| Suspending | Acting | Transitioning to Suspended due to external condition |
| Suspended | Wait | Paused due to external condition (e.g. upstream/downstream) |
| Unsuspending | Acting | Returning from Suspended to Execute |
| Stopping | Acting | Controlled deceleration to Stopped |
| Stopped | Wait | Controlled stop; requires Reset before restarting |
| Aborting | Acting | Emergency stop sequence |
| Aborted | Wait | Fault state; requires fault clearance and Reset |
| Clearing | Acting | Clearing fault after Abort, transitioning to Stopped |
Wait States in Depth
Wait states are where the machine pauses and waits for either a command or a condition to change. Understanding each one is critical for accurate downtime categorisation.
Idle
The machine is powered on, initialised, and ready to produce. All pre-conditions for production are met: temperatures at setpoint, servos in home position, film threading complete. The machine is waiting for an operator Start command. From an OEE perspective, Idle time is typically categorised as planned or unplanned waiting time.
Complete
A production cycle or batch has finished successfully. The machine has run its course: it produced the required quantity, the packaging run ended, or an end-of-batch condition was triggered. The machine now waits for a Reset command to return to Idle for the next run.
Held
Production is paused because an operator pressed Hold. The cause is internal to the machine: a quality issue, a component needing replenishment, an adjustment, or a brief inspection. The machine is in a controlled, safe position.
Held is operator-initiated and requires an operator Unhold command to resume.
Suspended
Production is paused because of an external condition, not the machine's own fault. The most common cause is an upstream or downstream blockage: a VFFS machine that has stopped starves its downstream case packer, which enters Suspended. Once the upstream machine resumes, the case packer automatically exits Suspended and returns to Execute.
Suspended is externally triggered and typically clears automatically.
Stopped
The machine has been brought to a controlled stop, typically at the end of a shift, before a changeover, or after a planned stop. It requires a Reset command before it can return to Idle.
Aborted
The machine has performed an emergency stop due to a fault: a safety guard opened, a film break, a critical sensor failure, or an emergency stop button was pressed. The machine must have the fault cleared and receive a Reset command before it can operate again. Aborted is the most serious stop state.
Acting States in Depth
Acting states are transitional. The machine is actively doing something, whether starting up, shutting down, or responding to a command. They typically last seconds.
Starting
The machine is executing its start-up sequence: servos moving to position, film advancing, temperatures confirming at setpoint. Typically lasts 2 to 30 seconds depending on machine type. The machine transitions automatically to Execute once all start conditions are confirmed.
Execute
The machine is producing at speed. Product is being made, packages are being formed, filled, and sealed. For OEE purposes, Execute is the only state that counts as productive time. Any time outside Execute is a loss to track.
Completing
The machine is finishing the current cycle: running out remaining product, sealing the last package, completing end-of-batch tasks. Transitions automatically to Complete.
Resetting
The machine is re-initialising to return to Idle: clearing counters, returning to home positions, confirming ready conditions. Transitions automatically to Idle.
Holding and Unholding
Holding is the transition from Execute to Held (decelerating, moving to hold position). Unholding is the return from Held to Execute (re-accelerating back to run speed). Both are brief transition states, typically a few seconds.
Suspending and Unsuspending
Suspending is the transition from Execute to Suspended when an external condition is detected. Unsuspending is the return to Execute when that condition clears. Like Holding/Unholding, these are brief transition states.
Stopping
The controlled deceleration sequence from Execute (or other running states) to Stopped. The machine slows safely and parks in a defined position.
Aborting
The emergency stop sequence. The machine shuts down as quickly as safely possible. Unlike Stopping, Aborting prioritises speed over orderly shutdown.
Clearing
After an Abort, the Clearing state is where the fault is acknowledged and the machine prepares to return to Stopped. Operators typically need to physically confirm the fault is resolved before Clearing can complete.
State Transitions: The Production Cycle
PackML states follow strict transition rules. A machine cannot jump arbitrarily between states; it must follow defined paths. Here are the key transition sequences:
Normal production cycle:
Stopped → [Reset] → Resetting → Idle → [Start] → Starting → Execute → Completing → Complete → [Reset] → Resetting → Idle
Operator pause (Hold):
Execute → [Hold] → Holding → Held → [Unhold] → Unholding → Execute
External blockage (Suspend):
Execute → Suspending → Suspended → Unsuspending → Execute
Fault / emergency stop:
[Any state] → [Abort] → Aborting → Aborted → [Clear] → Clearing → Stopped
End of shift shutdown:
Execute → [Stop] → Stopping → Stopped
Held vs Suspended: The Critical Distinction
This is the most important distinction in PackML, and the one most often confused by operators and engineers alike.
| Held | Suspended | |
|---|---|---|
| Triggered by | Operator (internal decision) | External condition (upstream/downstream) |
| Cause | Quality check, component refill, manual adjustment | Upstream starved, downstream blocked, external interlock |
| Recovery | Operator must press Unhold | Typically automatic when external condition clears |
| OEE category | Planned stop (if expected) or minor stop | External dependency loss |
| Responsibility | The machine's operator | The line/system |
Getting this distinction right matters enormously for root cause analysis. If a case packer is logging time as Held when it should be Suspended (because the VFFS upstream keeps stopping), you'll blame the operator when the real problem is upstream throughput.
PackML Modes
PackML doesn't just define states. It also defines modes, which determine what operations are permitted and how the state machine behaves. The four standard modes are:
Production Normal running mode. Full automation, all safety systems active. The standard state machine applies. Most machines spend the majority of their time in Production mode.
Maintenance Used during planned maintenance procedures. Safety interlocks may be modified (with appropriate engineering controls) to allow maintenance sequences. Machines in Maintenance mode typically cannot enter Execute.
Manual Step-by-step manual control, used during commissioning, fault diagnosis, or machine setup. Operators can jog individual axes and trigger individual sequences. Prevents unintended automatic operation.
Change Over Used when changing products or formats, such as adjusting jaw sizes, changing packaging film, or reprogramming for a new SKU. Change Over mode may enable specific motorised format adjustment sequences that are only available during changeovers.
Modes are selected by the operator and define the context within which the state machine operates. A machine in Maintenance mode behaves differently in Execute than the same machine in Production mode.
PackTags: The Data Structure
PackML also defines PackTags, a standard data structure for the variables that a PackML machine exposes. PackTags are the machine-side data that your monitoring system reads. Key PackTags include:
| Tag | Description |
|---|---|
StateCurrent |
Current state (integer code 0 to 17) |
MachSpeed |
Current machine speed (units per minute) |
MachSpeedDesired |
Target speed |
Counters.Good |
Good units produced this run |
Counters.Reject |
Rejected units this run |
Counters.Total |
Total units this run |
Counters.Rate |
Current production rate |
Alarms[n].ID |
Alarm identifier |
Alarms[n].Trigger |
Alarm trigger state |
Alarms[n].DateTime |
Alarm timestamp |
Mode |
Current mode (integer code) |
When exposed via OPC-UA, these tags become addressable nodes on the PLC's OPC-UA server, typically structured as:
ns=2;s=PackML.StateCurrent
ns=2;s=PackML.Counters.Good
ns=2;s=PackML.Counters.Reject
ns=2;s=PackML.MachSpeed
An edge gateway like LineConnect+ subscribes to these nodes, translating raw PLC values into production metrics that update in cloud dashboards within seconds.
PackML and OEE: Why the State Model Makes OEE Accurate
OEE (Overall Equipment Effectiveness) has three components: Availability, Performance, and Quality. PackML makes all three unambiguous:
Availability: Scheduled production time minus any time outside Execute (adjusted for planned stops). Every non-Execute state is a documented, categorised loss.
Performance: When the machine is in Execute, compare MachSpeed to MachSpeedDesired. If the machine is running at 80 units/min when it should run at 100, that 20% gap is a Performance loss.
Quality: Counters.Good / Counters.Total. Every reject is logged in real time via PackTags.
Without PackML, OEE relies on manual logs, with operators writing down when the machine stopped and why. With PackML, every state transition is timestamped automatically. The data is objective, continuous, and granular enough to identify patterns: how long does Starting typically take? How often does this machine enter Aborted on Tuesday mornings?
PackML Adoption in New Zealand
PackML is standard equipment on most modern European and Japanese packaging lines. VFFS machines, flow wrappers, case packers, labellers, and cartoners from major OEMs typically come with PackML-compliant PLC programs. North American machine builders (Rockwell Automation ecosystem) also implement PackML, particularly in food and beverage sectors.
In New Zealand, PackML is most commonly found in:
- Food and dairy processing lines (yoghurt, cheese, snack foods)
- Beverage packaging (filling and capping lines)
- Pharmaceutical packaging (blister packing, bottling)
- Consumer goods manufacturers
If your machines don't have full PackML compliance, the five most important states for production monitoring can often be mapped with minor PLC modifications:
- Execute (running at speed)
- Idle (ready, not running)
- Held (operator stop)
- Stopped (controlled shutdown)
- Aborted (fault/e-stop)
These five states are enough for meaningful OEE calculation and downtime root cause analysis.
Connecting PackML Data to the Cloud
Most modern PLCs expose PackML data via OPC-UA, the industrial standard for secure, structured machine-to-cloud communication. An on-premise edge gateway subscribes to your PLCs' OPC-UA servers, buffers the data locally (for resilience against network outages), and pushes it to your cloud platform.
The typical setup:
- PLC exposes PackML states and PackTags via OPC-UA
- Edge gateway subscribes to OPC-UA nodes
- State changes and counter updates are streamed to the cloud in near-real time
- Cloud dashboard shows live machine states, OEE, and production counts
Frostbyte Pro's LineConnect+ is built for exactly this workflow. It connects to your PLCs via OPC-UA, speaks PackML natively, and surfaces live OEE dashboards, machine state timelines, and production data, all without manual data entry. To compare this approach with traditional SCADA, see our SCADA vs cloud monitoring comparison.
Summary
PackML provides a common language for packaging machine control that makes multi-vendor production lines monitorable from a single dashboard. The 17 states, four modes, and standardised PackTags give you the raw material for accurate OEE, objective downtime categorisation, and root cause analysis, all without manual logs.
The key principles to remember:
- Execute is the only truly productive state
- Held is internal (operator), Suspended is external (line condition)
- Aborted is the most serious state and requires fault clearance before recovery
- Modes determine what the state machine is allowed to do
- PackTags are the standardised variables, read via OPC-UA for real-time data
Ready to turn PackML data into actionable production insights? Try our free OEE calculator to benchmark your current line performance, then automate it with Frostbyte Pro and LineConnect+ for real-time PLC monitoring with native PackML state tracking, automated OEE dashboards, and cloud-based production analytics. Start your free trial today, no credit card required.
Want to see PackML state tracking live on your production line? Contact us to discuss connecting your PLCs with LineConnect+.