Machinery ProcessValues
| Document | OPC 40001-x |
|---|---|
| Version | 1.00.0 |
| Published | 2023-05-01 |
| Namespace | http://opcfoundation.org/UA/Machinery/ProcessValues/ |
| Sector | Machinery |
Machinery ProcessValues is the small Machinery companion namespace that standardises how a machine exposes analog process values: the measured value with its engineering unit, its range and its instrument range, in a fixed structure rather than as a bare scaled integer on a vendor tag.
Where it sits in the stack
It is one of the optional namespaces around the Machinery base layer, alongside Result, Jobs and Energy, and it leans on the core Part 8 data-access types for units and ranges. Sector models and vendors use it to publish temperatures, pressures, speeds and flows in a way a client can interpret without a per-machine scaling table. It has not been revised since 1.00.0 in May 2023.
The types that matter
| Type | What it carries |
|---|---|
ProcessValueType | The container object for one process value on a machine: the analog signal itself plus the identifying information that says which physical quantity it is. |
AnalogUnitRangeType | The core Part 8 variable type that a standardised process value is built from. It carries EngineeringUnits, EURange and InstrumentRange as properties on the value node itself. |
AnalogUnitType | The lighter core variant, with EngineeringUnits but no mandatory EURange. Common where a vendor publishes a unit but no scaling limits. |
EUInformation | The DataType carrying the engineering unit as a UNECE Recommendation 20 code plus namespace URI, display name and description. This is what makes degC and degF machine-distinguishable. |
Range | The low and high pair used for EURange and InstrumentRange. EURange is the meaningful engineering range; InstrumentRange is what the sensor can physically report. |
AnalogItemType | The older core data-access type still used by many vendors for the same purpose. Expect to meet it instead of the ProcessValues structure on machines that predate the model. |
Using it on a real machine
- Check whether the namespace is loaded at allRead NamespaceArray for http://opcfoundation.org/UA/Machinery/ProcessValues/. Most machines that claim Machinery support do not load this namespace, and expose analog values as plain Doubles instead.
- Read the unit, not just the valueRead the EngineeringUnits property alongside the value and store the UNECE unit code with your samples. A pressure series with no unit becomes unusable the moment a second machine uses different units.
- Use EURange to set deadbandsA percent deadband is defined against EURange, so a value with no EURange cannot use one. Fall back to an absolute deadband expressed in the value's own unit.
- Subscribe with a deadband, do not pollAnalog values are the main source of subscription overload. Set a deadband that reflects real process significance and a publishing interval matched to your analytics cadence, typically one second for OEE-adjacent work.
- Record status, not only valueKeep the StatusCode with each sample. An analog value carrying UncertainSensorNotAccurate or BadOutOfService is not a number you should average into a KPI.
What it gives you for OEE
This model is a supporting layer, not an OEE source: it carries no state, no counters and no reasons. What it buys you is trustworthy process context around the OEE numbers, which matters in two places. First, performance losses often correlate with a process value drifting (speed reduction, temperature out of band), and self-describing units make that comparison possible across machines. Second, quality work needs the process value at the moment a part was produced, and a value with a real unit and range can be compared to a specification without a per-machine conversion table. If a vendor gives you only raw analog tags, expect to maintain scaling metadata by hand for the life of the installation.
Gotchas
- Adoption is thin. Many machines that implement Machinery skip this namespace entirely, so plan for raw analog tags as the likely case.
- EURange is not always present, and a percent deadband silently has no defined basis without it.
- Engineering units must be UNECE Recommendation 20 codes. Vendors sometimes populate only the DisplayName, which looks fine in a browser and is useless to a program.
- Values that arrive with Uncertain or Bad status still arrive. Filter on StatusCode before aggregating, or your averages will quietly include substitute values.
Once the machine speaks a companion spec, the OEE mapping is portable across vendors, which is the point at which analytics stops being a per-machine project.
See Jemba →Last verified 7 September 2026 against OPC UA 1.05.07. Version and publication date read from the released nodeset. OPC UA Connect is an educational resource and is not affiliated with the OPC Foundation.