ProtoCore v0.0.1
Deterministic, zero-heap network stack for embedded targets
Loading...
Searching...
No Matches
packml.h File Reference

PackML / OMAC packaging-machine state model (ISA-TR88.00.02) - the state engine + PackTags. More...

#include "protocore_config.h"

Go to the source code of this file.

Detailed Description

PackML / OMAC packaging-machine state model (ISA-TR88.00.02) - the state engine + PackTags.

Reference standard: ISA-TR88.00.02-2022, "Machine and Unit States: An Implementation Example of ISA-88" (ISBN 978-1-64331-224-8) - the OMAC PackML state model and PackTags. The 17-state model, the numeric StateCurrent values, the command set, and the transition graph below follow that document.

PackML is the OMAC / ISA-88 state model that packaging and process machines expose so a line controller (usually over OPC UA) can command and observe them uniformly. Two pieces:

  • the state machine: 17 states (Stopped/Idle/Execute/Held/Suspended/Complete/Aborted plus the transient "acting" states Starting/Resetting/Holding/... that auto-advance when their action finishes) driven by the control commands (Reset/Start/Stop/Hold/Unhold/Suspend/Unsuspend/Abort/ Clear). Stop and Abort are the near-universal transitions to the shutdown / fault branches.
  • the PackTags: the standard Command / Status / Admin tag groups the model surfaces - the current state + unit mode, the requested/actual machine speed, and the production counters.

This is a pure, fixed-BSS service: no heap, no I/O. The state engine (pc_packml_command / pc_packml_state_complete) is a pure transition table; the owned service (pc_packml_svc_*) layers the PackTags + counters + timers on top for a machine to run directly. Host-tested (native_packml).

Author
Douglas Quigg (dstroy0)
Date
2026

Definition in file packml.h.