ADI — Analytical Devices Integration
Analytical Devices Integration — instruments in process labs (chromatographs, mass spectrometers, particle analysers). Enum-only at the package level; the spec's heavy lifting is in instances and reference types that build on DI.
OPC UA companion specification for analytical instruments —
chromatographs, mass spectrometers, particle analysers, and
similar lab devices. Defines a hierarchy of AnalyserDeviceType
on top of DI's DeviceType.
What's in the package
| Artefact | Count |
|---|---|
| Enums | 3 |
| DTOs | — |
| Codecs | — |
| Registrars | 1 (AdiRegistrar) |
Enum-only at the runtime level. Most of the spec's complexity is in object types and reference types — surfaced through the NodeId constants, not through generated DTOs.
Loading
use PhpOpcua\Client\ClientBuilder;
use PhpOpcua\Nodeset\ADI\AdiRegistrar;
$client = ClientBuilder::create()
->loadGeneratedTypes(new AdiRegistrar()) // pulls DI transitively
->connect('opc.tcp://analyser.lab.local:4840');
The cascade pulls DI in — without DI's codecs, reads on common
nodes inherited from DeviceType (identification, parameters)
fall back to raw ExtensionObjects.
Direct dependencies
- DI — provides the
DeviceTypehierarchy ADI extends.
Transitive dependencies: none — DI is a root.
Notable enums
The three enums describe operating states common to analytical instruments:
AcquisitionStateEnumeration— measurement-cycle stateAcquisitionResultStateEnumeration— result-set lifecycleDeviceHealthEnumeration— health rollup
Read any of them through the auto-cast:
use PhpOpcua\Nodeset\ADI\Enums\AcquisitionStateEnumeration;
$state = $client->read('ns=N;s=Analyser1.AcquisitionState')->getValue();
if ($state === AcquisitionStateEnumeration::ACQUIRING) {
// …
}
What you typically use from this spec
AdiNodeIds::*— NodeId constants for ADI-defined types and attributes- The three enums via auto-cast
- The DI cascade — every ADI device exposes
Identification,Manufacturer,Model, etc. from DI
For DTO-shaped values (e.g. parameter definitions, calibration data), the underlying server typically returns DI-defined structures — see DI.