Skip to content

OPC UA Address Space#

From MES Hierarchy to Resource Base Node#

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

flowchart LR
    BASE("Resource Base <br/>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<br/>Parameters")
    DATA --> DP("Handshake and Actual<br/>Process Parameters")
    STATE --> SP("Main State<br/>Substate<br/>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#

<BaseNodeId>
├── Operation
│   ├── TrackIn
│   │   ├── Material
│   │   │   └── Name
│   │   ├── MachineOperationRequest
│   │   ├── MESOperationPerformed
│   │   └── MachineOperationConfirmed
│   ├── TrackOut
│   │   ├── Material
│   │   │   └── Name
│   │   ├── MachineOperationRequest
│   │   ├── MESOperationPerformed
│   │   └── MachineOperationConfirmed
│   └── Abort
│       ├── Material
│       │   └── Name
│       ├── MachineOperationRequest
│       ├── MESOperationPerformed
│       └── MachineOperationConfirmed
├── Recipe
│   ├── <ParameterName>
│   └── <ResourceRecipeName>
│       └── <ParameterName>
├── DataCollection
│   ├── Material
│   │   └── Name
│   ├── MachinePostDataRequest
│   ├── MESPostDataPerformed
│   ├── PostDataReadingNumber
│   ├── PostDataSampleId
│   └── Parameters
│       └── <ParameterName>
└── State
    ├── MainState
    ├── SubState
    └── Reason

Dynamic parameter names

Names such as Recipe.<ParameterName> and DataCollection.Parameters.<ParameterName>, 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:

ns=<Namespace>;s=<HierarchyPath>

The final NodeId for a standard node is created by appending its relative path:

<IndEqOpcUaBaseNodeId>.<RelativeNodePath>

Example:

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.

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.