opcua-client-nodeset · v4.3.x
Docs · Reference

Specifications

The 51 companion specifications shipped at v4.3.0 — counts, dependencies, registrar class names. Click through to a spec for the details and the load snippet.

Fifty-one companion specifications. The table below shows for each: namespace, enum count, DTO count, codec count, registrar class names, and direct (non-transitive) dependencies.

Spec Enums DTOs Codecs Registrar(s) Depends on
ADI 3 AdiRegistrar DI
AMB 1 2 2 AMBRegistrar
AML AMLBaseTypesRegistrar, AMLLibrariesRegistrar
AutoID 6 19 19 AutoIDRegistrar DI
BACnet 36 44 44 BACnetRegistrar
CAS 23 1 1 CASRegistrar DI, IA, Machinery
CNC 6 1 1 CNCNodeSetRegistrar
CommercialKitchenEquipment 24 CommercialKitchenEquipmentRegistrar DI
CranesHoists 4 CranesHoistsRegistrar DI, Machinery, Robotics
CSPPlusForMachine CSPPlusForMachineRegistrar DI
CuttingTool 1 1 CuttingToolRegistrar DI, IA, Machinery, MachineTool
DEXPI 29 DEXPIRegistrar
DI 8 11 11 DiRegistrar, DiPackageMetadataRegistrar
ECM 1 5 5 ECMRegistrar DI, IA
FDI 3 6 6 Fdi5Registrar, Fdi7Registrar DI
FDT 11 3 3 FDTNodeSetRegistrar DI
GDS 1 1 GdsRegistrar
GPOS 4 4 GPOSRegistrar RSL
I4AAS 10 1 1 I4AASRegistrar
IA 4 1 1 IARegistrar DI
IOLink 1 IOLinkRegistrar, IOLinkIODDRegistrar DI
IREDES 5 2 2 IREDESRegistrar
ISA95 1 4 4 OpcISA95Registrar
LADS 1 2 2 LADSRegistrar AMB, DI, Machinery
LaserSystems LaserSystemsRegistrar DI, IA, Machinery, MachineTool
Machinery MachineryRegistrar DI, IA
MachineTool 10 MachineToolRegistrar DI, IA, Machinery
MachineVision 2 14 14 MachineVisionRegistrar
MDIS 12 1 1 OpcMDISRegistrar
MetalForming 2 2 MetalFormingRegistrar DI, IA, Machinery, MachineTool, PADIM
MTConnect 25 3 3 MTConnectRegistrar
Onboarding 6 6 OnboardingRegistrar GDS
PackML 1 6 6 PackMLRegistrar
PADIM 3 1 1 PADIMRegistrar, IRDIRegistrar DI
PAEFS 4 PAEFSRegistrar DI, Machinery, PADIM
PNEM 4 5 5 PnEmRegistrar DI
POWERLINK 4 3 3 POWERLINKRegistrar DI
Powertrain PowertrainRegistrar DI, Machinery
PROFINET 18 2 2 PnRegistrar
Pumps 18 1 1 PumpsRegistrar DI, Machinery
Robotics 4 RoboticsRegistrar DI, IA
RSL RSLRegistrar
Safety 2 3 3 SafetyRegistrar
Scales 6 5 5 ScalesRegistrar DI, IA, Machinery, PackML
Scheduler 3 11 11 SchedulerRegistrar
Sercos SercosRegistrar DI
Shotblasting ShotblastingRegistrar DI, Machinery
TMC 11 20 20 TMCRegistrar DI, PackML
Weihenstephan 2 WeihenstephanRegistrar DI, Machinery, PackML
Woodworking 3 2 2 WoodworkingRegistrar DI, Machinery
WoT WotConRegistrar

Totals at v4.3.0: 309 enums, 193 DTOs, 193 codecs, 56 registrars (some specs ship two), 51 specs.

Reading the table

  • Enums / DTOs / Codecs — counts of files in each category for that spec. means none.
  • Registrar(s) — the class name(s) under PhpOpcua\Nodeset\<Spec>\. The directory name is always the spec name in PascalCase; the registrar class may differ. See What gets generated — naming inconsistencies.
  • Depends on — direct (non-transitive) dependencies declared by the registrar's dependencyRegistrars(). Loading the spec via loadGeneratedTypes() pulls these in (and recursively their own dependencies) unless only: true is passed. See Dependency resolution.

The dependency root specs

A handful of specs sit at the root of the dependency graph — they do not depend on anything else and are pulled in by many downstream specs.

Root spec Pulled in by
DI Most of the operational specs: ADI, AutoID, CAS, CommercialKitchenEquipment, CranesHoists, CSPPlusForMachine, CuttingTool, ECM, FDI, FDT, IA, IOLink, LADS, LaserSystems, Machinery, MachineTool, MetalForming, PAEFS, PADIM, Pumps, PNEM, POWERLINK, Powertrain, Robotics, Scales, Sercos, Shotblasting, TMC, Weihenstephan, Woodworking. (Onboarding depends on GDS, but GDS has no upstream dependencies, so the Onboarding → GDS chain does not pull DI in.)
IA Operational specs that extend it: CAS, CuttingTool, ECM, LaserSystems, Machinery, MachineTool, MetalForming, Robotics, Scales
Machinery CAS, CranesHoists, CuttingTool, LADS, LaserSystems, MachineTool, MetalForming, PAEFS, Powertrain, Pumps, Scales, Shotblasting, Weihenstephan, Woodworking
MachineTool CuttingTool, LaserSystems, MetalForming
PackML Scales, TMC, Weihenstephan
PADIM MetalForming, PAEFS

If your application loads several "downstream" specs, the cascade brings the roots in transitively. You almost never load DI explicitly — but it is in the loaded set for nearly every real deployment.

Picking specs for your deployment

Start from what the server publishes:

php examples/discover-namespaces.php
$client = ClientBuilder::create()->connect('opc.tcp://your-server:4840');

foreach ($client->read('i=2255')->getValue() as $idx => $uri) {
    echo "ns=$idx$uri\n";
}

Match the URIs the server lists against the OPC Foundation's companion-spec URIs (the UA-Nodeset directory naming is a strong hint — Robotics/http://opcfoundation.org/UA/Robotics/). Load the registrars for those specs only.

The non-standard registrar names

For convenience, the registrar class names that do not follow <Spec>Registrar in PascalCase:

Spec Class name
DI DiRegistrar (also DiPackageMetadataRegistrar)
ISA95 OpcISA95Registrar
MDIS OpcMDISRegistrar
PROFINET PnRegistrar
PNEM PnEmRegistrar
PADIM PADIMRegistrar + IRDIRegistrar
CNC CNCNodeSetRegistrar
WoT WotConRegistrar

Bookmark this table; IDE autocomplete handles the rest.