---
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.