Companion specification
In OPC UA, a companion specification is an information model standardised by the OPC Foundation with an industry body, defining the types one machine class or domain must expose. Each is published as a NodeSet2 XML file in its own namespace. The UA-Nodeset repository held 143 released nodesets in August 2026.
Who writes them and how they are numbered
Companion specifications are produced by joint working groups between the OPC Foundation and a trade association - VDMA sponsors most of the machinery-side models, PI and FieldComm the fieldbus and process ones. They carry OPC 3xxxx or 4xxxx document numbers rather than IEC 62541 part numbers, which is why a search for a part number rarely finds them. What ships is the nodeset plus a PDF; the nodeset is the part your server consumes.
They layer on each other
Almost no model stands alone. DI is the base for device models; IA sits on DI; Robotics sits on IA; the Machinery building blocks sit alongside as the base for machine identification, state, operation mode and counters. Machinery itself has been split into composable pieces - ProcessValues, Result, Jobs, Energy - each its own namespace and version. A server implementing MachineTool therefore loads several nodesets, and its NamespaceArray shows all of them.
Versions and the churn problem
Models version independently and not gently. A breaking change usually becomes a new namespace URI, as with PlasticsRubber Extrusion_v2, while compatible revisions bump the Version and PublicationDate in the Model element. The legacy ISA-95 nodeset is from 2013 and has been superseded in practice by ISA-95 Job Control V2; FDI is frozen at 2017; Eumabois is still below 1.0. Check the Model element of the nodeset the machine actually loaded, not the specification you downloaded.
What to do with one on a real project
Read the type tables for modelling rules first, because the Optional rows are where two conforming machines diverge. Then get the nodeset - from the UA-Nodeset repository or the UA Cloud Library - and load it into a browser or the UANodesetWebViewer so you are reading the same nodes the server will expose. The umati sample server at opc.tcp://opcua.umati.app:4840 implements MachineTool, Woodworking, GMS and AdditiveManufacturing simulations, which makes it the cheapest place to see a companion specification working before your machine arrives.
Example
The nodesets one MachineTool server loads, and the layering between them
NamespaceArray on a machine-tool server
[0] http://opcfoundation.org/UA/ core UA 1.05.07
[1] urn:Line3-MC01:UA:Server vendor's own namespace
[2] http://opcfoundation.org/UA/DI/ DI 1.05.0
[3] http://opcfoundation.org/UA/IA/ IA 1.01.4
[4] http://opcfoundation.org/UA/Machinery/ Machinery 1.04.1
[5] http://opcfoundation.org/UA/MachineTool/ MachineTool 1.02.0
Type layering (HasSubtype, read upwards)
MachineToolType (MachineTool)
-> MachineType (Machinery)
-> MachineryItemType (Machinery)
-> DeviceType (DI)
-> TopologyElementType (DI)
-> BaseObjectType (core, i=58)
ServerCapabilities capability codes advertised: DI, CNC, MTC
(the normative code list is Schema/ServerCapabilities.csv)
Defined in: Companion specifications are published as OPC 3xxxx / 4xxxx documents with a NodeSet2 file; the address space constructs they use are defined in Part 3 and Part 5.
Last verified 7 September 2026 against OPC UA 1.05.07. OPC UA Connect is an educational resource and is not affiliated with the OPC Foundation.