--- description: Understand how the MES Resource hierarchy becomes the OPC UA Resource base NodeId and functional node tree. alias: userguide-equipment-integration-opcua-standard-address-space --- # OPC UA Address Space ## From MES Hierarchy to Resource Base Node [MES Modeling](mes-modeling.md) defines where the physical equipment sits in the MES hierarchy. This page starts from that approved model and explains how it becomes the OPC UA address-space identity used at runtime. During controller setup, the integration: 1. Reads `Namespace` from the selected OPC UA Server profile. 2. Builds the string identifier from the Resource's relevant MES hierarchy. 3. Combines both values into a fully qualified string NodeId. 4. Stores the result in the read-only Resource attribute `IndEqOpcUaBaseNodeId`. Example: | Input | Value | | --- | --- | | MES hierarchy path | `Northwind.PortoPlant.PackagingHall.FillingArea.Line01.Filler01` | | Selected profile's `Namespace` | `2` | | Generated `IndEqOpcUaBaseNodeId` | `ns=2;s=Northwind.PortoPlant.PackagingHall.FillingArea.Line01.Filler01` | The optional SubArea or Production Line segment appears only when it is part of the MES model. This page does not define the equipment placement; it describes the resulting OPC UA identity. ## Functional Structure Below the base node, the **Common Data Model** based structure organizes the interface into four functional folders. The handshake nodes inside those folders are part of this Industrial Equipment implementation. ```mermaid flowchart LR BASE("Resource Base
NodeId") BASE --> OP("Operation") BASE --> RECIPE("Recipe") BASE --> DATA("Data Collection") BASE --> STATE("State") OP --> TI("Track In") OP --> TO("Track Out") OP --> AB("Abort") RECIPE --> RP("Actual Recipe
Parameters") DATA --> DP("Handshake and Actual
Process Parameters") STATE --> SP("Main State
Substate
Reason") classDef standard fill:#FFFFFF,stroke:#64748B,color:#334155,stroke-width:1.5px; classDef secondary fill:#FFFFFF,stroke:#CBD5E1,color:#64748B,stroke-width:1.5px; classDef highlight fill:#075C00,stroke:#075C00,color:#FFFFFF,stroke-width:1.5px; class BASE highlight; class OP,RECIPE,DATA,STATE standard; class TI,TO,AB,RP,DP,SP secondary; linkStyle default stroke:#94A3B8,stroke-width:1.5px; ``` ## Complete Logical Tree ```text ├── Operation │ ├── TrackIn │ │ ├── Material │ │ │ └── Name │ │ ├── MachineOperationRequest │ │ ├── MESOperationPerformed │ │ └── MachineOperationConfirmed │ ├── TrackOut │ │ ├── Material │ │ │ └── Name │ │ ├── MachineOperationRequest │ │ ├── MESOperationPerformed │ │ └── MachineOperationConfirmed │ └── Abort │ ├── Material │ │ └── Name │ ├── MachineOperationRequest │ ├── MESOperationPerformed │ └── MachineOperationConfirmed ├── Recipe │ ├── │ └── │ └── ├── DataCollection │ ├── Material │ │ └── Name │ ├── MachinePostDataRequest │ ├── MESPostDataPerformed │ ├── PostDataReadingNumber │ ├── PostDataSampleId │ └── Parameters │ └── └── State ├── MainState ├── SubState └── Reason ``` !!! important "Dynamic parameter names" Names such as `Recipe.` and `DataCollection.Parameters.`, when used in examples, are placeholders. A machine exposes its real parameters, such as `TargetSpeed`, `TorqueTarget`, `ActualCycleTime`, or `InspectionResult`. The OPC UA Tag Names must match the corresponding MES Parameter name. Sub-recipe folder names must match the MES sub-recipe display names. ## Relative Node Construction `IndEqOpcUaBaseNodeId` already contains the namespace and the string identifier: ```text ns=;s= ``` The final NodeId for a standard node is created by appending its relative path: ```text . ``` Example: ```text ns=2;s=Northwind.PortoPlant.PackagingHall.FillingArea.Line01.Filler01.Operation.TrackIn.MachineOperationRequest ``` `Namespace` is configured in the selected OPC UA Server profile and is used when `IndEqOpcUaBaseNodeId` is generated. Because namespace indexes can differ between server deployments, verify the selected profile and regenerate or validate the Resource attribute in every environment. See [Configure the OPC UA Connection](../configuration/opcua-connection.md). ## Machine Interface Rules - Keep the fixed folder and control-node names exactly as documented. - Use OPC UA `Boolean` values for handshake bits. - Initialize handshake bits to `false`. - Give **Connect IoT OPC UA Client** read access to machine-owned nodes and write access to MES-owned nodes. - Use actual recipe and data collection parameter names.