PackML — the same states on different machines
The state model and exchange tags from ISA-TR88.00.02. The operator and neighbour units see «running», «paused», «fault» the same way on machines from different vendors.
State model and tag dictionary
PackML describes a machine not by its design but by its behaviour: what state it is in, what command it can accept and what it reports to its neighbours. The model grew out of the packaging industry and is fixed in technical report ISA-TR88.00.02, which builds on ISA-88.
The point is simple: the operator, the neighbouring machine and the upper-level system see “running”, “paused”, “fault” the same way on machines from different manufacturers. Integration comes down to exchanging standard tags, not to analysing someone else’s logic.
- State machineThe same states and transitions for any machine: waiting, running, pause, completion, stop, fault.
- ModesProduction, maintenance, manual — each with its own set of allowed transitions.
- Exchange tagsCommand — what the machine is ordered to do, Status — what is happening to it, Admin — counters and faults.
- Handshakes with neighboursUpstream and downstream units agree through the remote interface.
Waiting and acting states
States are of two kinds. A waiting state holds until a command arrives. An acting state — ending in “-ing” — performs a transition and ends by itself when the transition is done.
| Group | States | What happens |
|---|---|---|
| Main cycle | Idle → Starting → Execute → Completing → Complete → Resetting | Waiting, starting, running, batch completion, return to waiting |
| Pause for a machine reason | Holding → Held → Unholding | Internal cause: for example, material ran out in the machine |
| Pause for a flow reason | Suspending → Suspended → Unsuspending | External cause: no products at the input or the output is busy |
| Stop | Stopping → Stopped | Controlled stop by command |
| Fault | Aborting → Aborted → Clearing | Emergency stop from any state and clearing the cause |
Model commands: Reset, Start, Stop, Hold, Unhold, Suspend, Unsuspend, Abort, Clear. A command moves the machine from a waiting state to an acting one; then the transition runs by itself.
The interface of every line unit
| PackML element | With us |
|---|---|
| State machine | For every unit kind; a unit without an interface does not join a line project — refusal in words |
| Complete | The final step of the unit’s SFC program |
| Aborted | Axis fault — following error; output on but no confirmation — in preparation |
| Manual mode | Commissioning of drives and axes; “Stop” from it shuts the machine down |
| Stop and Abort | One “Stop” command in every window |
| Command / Status | Project tags: a “writer Status → reader Command” link, one writer per link |
| Remote interface | Neighbour handshakes; a unit knows only its own tags, who is linked to whom is decided by the project |
| Phases with parameters | A machine tool is a unit too: “loading, program, unloading” phases; phase parameters are read and changed from outside |
A signal with a period
Each signal is described once: name, type, writer, readers, kind and period. If a signal is overdue, the unit logic itself goes to a safe state.
The product — by a separate link
A material link carries a product, an information link carries a signal. No product is invented over an information link.
Safety is not a tag
Emergency stop, doors and curtains are a separate hardware circuit; the unit logic only reads it.
The kind declares the interface, the project connects
- The kind declares the interfaceState machine, Command and Status tags, remote interface, material ports, phases, Admin.
- The instance gets itYour unit inherits the kind’s interface; without an interface it does not join a project.
- The project connectsWires on the “Graph”: one unit’s Status into another’s Command, one writer per link.
- The procedure commandsA cell procedure step is a phase command to a unit and waiting for its completion by tag.
- Line start and stopOne button by the actual state; a unit fault is seen by the line as Aborted.
What works and what is in progress
- RunsUnit Complete and Aborted states, one “Stop” command in every window, tag links on the project “Graph”.
- In progressThe full PackML unit interface: all states, modes and the remote interface for every kind.
- Subject of the implementationThe interface working on your line with units from different manufacturers.
Questions about PackML
Is PackML needed if the line is not a packaging line?
The state model is common to any machine. In SyncTwin every unit kind has an interface, including a machine tool: its phases are loading, program, unloading.
What if a supplier’s machine does not speak PackML?
A unit without an interface does not join a project — the platform refuses in words. Working out an interface for such a unit is part of the research and is fixed in the implementation specification.
Where is the unit state visible?
In the PLC lab — on the bottom “Unit” panel, in the unit cockpit and on the panel at the equipment; “Stop” from any window is one command.
Discuss an implementation
Tell us which units are on the line and how they coordinate now — we will propose an R&D stage with price and timeline.
Request accessDiscuss an implementation
Describe the unit or line — we will tell you what we will verify and in what time. Target indicators are fixed in the implementation specification.
Request access