← All insights Insights · 2025-12-20

What Every Machine Should Expose in the PLC Spec

If you want machines that integrate cleanly and support continuous improvement, these shouldn't be optional.

By Bryce Yokom, owner of Plantwide Integration. Published 2025-12-20. Originally posted on LinkedIn.

This is the conversation I keep having with OEMs. Plants are connecting machines to SCADA, MES, and Unified Namespace architectures, and the machine either hands them what they need or it doesn't. When it doesn't, somebody pays an integrator to reverse-engineer it later.

The baseline: five must-haves

1. Machine state and operating mode

PackML or S88 preferred. At a minimum you should have some of these states easy to reach for use at the HMI, SCADA, and MES level: Aborted, Aborting, Clearing, Complete, Completing, Execute, Held, Holding, Idle, Resetting, Starting, Stopped, Stopping, Suspended, Suspending, Unholding, Unsuspending, Running. At the very least, Running and Stopped for the unit or machine.

2. Upstream and downstream interlocks

Explicit and diagnosable. They can be combined with machine state. When a line stops, the first question is whether this machine is blocked, starved, or down on its own, and the PLC should answer that directly.

3. Stop cause and fault root

What transitioned the machine out of Running, Started, or Execute. The first-out cause, captured in the PLC at the moment it happened, instead of a guess assembled later from alarm history.

4. Fault list and active faults

Clear, readable, and usable by downstream systems. Consistent codes and text so a downtime system can categorize them without a lookup table someone built by hand.

5. Parts in, parts out, and waste

Calculated at the PLC level. Not inferred in SCADA. The machine knows what it made and what it scrapped better than anything upstream of it.

Bonus items

This is about making machines interconnectable without it costing the customer. Every one of these is cheap to build into a standard once, and expensive to add to a machine that's already in the field.

We build this into the machines we program. See controls engineering for OEM machine builders and MES integration.