Structures
Getting Started
Setup ServersSecurity
Authentication Security Access-controlAddress Space
Address-space Data-types Methods Dynamic-variables Structures Extension-objects ViewsAdvanced
Events-and-alarms Historical-dataIntegration
Testing-guide Ci-integration CustomizationStructures
Path: Objects > TestServer > Structures
Structured objects represented as OPC UA Object nodes with child Variable nodes. These test browsing, hierarchical navigation, and nested object handling.
TestPoint
Path: Structures/TestPoint
A simple 3D point with X, Y, Z coordinates.
| BrowsePath | DataType | Access | Initial Value |
|---|---|---|---|
TestPoint/X |
Double | RW | 1.0 |
TestPoint/Y |
Double | RW | 2.0 |
TestPoint/Z |
Double | RW | 3.0 |
TestRange
Path: Structures/TestRange
A range definition with min, max, and current value.
| BrowsePath | DataType | Access | Initial Value |
|---|---|---|---|
TestRange/Min |
Double | RW | 0.0 |
TestRange/Max |
Double | RW | 100.0 |
TestRange/Value |
Double | RW | 50.0 |
TestPerson
Path: Structures/TestPerson
A person record with mixed data types.
| BrowsePath | DataType | Access | Initial Value |
|---|---|---|---|
TestPerson/Name |
String | RW | "John Doe" |
TestPerson/Age |
UInt32 | RW | 30 |
TestPerson/Active |
Boolean | RW | true |
TestNested
Path: Structures/TestNested
A structure containing another structure (nested object). Tests hierarchical browsing.
TestNested
├── Label (String) = "origin"
├── Timestamp (DateTime) = startup time
└── Point (Object)
├── X (Double) = 0.0
├── Y (Double) = 0.0
└── Z (Double) = 0.0| BrowsePath | DataType | Access | Initial Value |
|---|---|---|---|
TestNested/Label |
String | RW | "origin" |
TestNested/Timestamp |
DateTime | RW | Server startup time |
TestNested/Point/X |
Double | RW | 0.0 |
TestNested/Point/Y |
Double | RW | 0.0 |
TestNested/Point/Z |
Double | RW | 0.0 |
Testing notes:
- Browse
TestNested-- should find 2 variables (Label,Timestamp) and 1 object (Point) - Browse
Point-- should find 3 variables (X,Y,Z) - The
Pointnode usesHasComponentreference type
PointCollection (5 Objects)
Path: Structures/PointCollection
5 point objects with the same structure, useful for testing enumeration and batch operations.
| Object | X | Y | Z |
|---|---|---|---|
Point_0 |
0.0 | 0.0 | 0.0 |
Point_1 |
10.0 | 20.0 | 30.0 |
Point_2 |
20.0 | 40.0 | 60.0 |
Point_3 |
30.0 | 60.0 | 90.0 |
Point_4 |
40.0 | 80.0 | 120.0 |
Each point is an Object node with 3 Double variables (X, Y, Z).
Testing notes:
- Browse
PointCollection-- should find 5 objects - All objects have the same structure (same child variable names and types)
- Useful for testing: "browse all children, then read all variables of each child"
DeepNesting (10 Levels)
Path: Structures/DeepNesting
A chain of 10 nested objects, each containing the next one. Tests recursive browsing and depth limits.
DeepNesting
└── Level_1 (Depth=1, Name="Level 1")
└── Level_2 (Depth=2, Name="Level 2")
└── Level_3 (Depth=3, Name="Level 3")
└── ...
└── Level_10 (Depth=10, Name="Level 10")Each level has:
Depth(UInt32) -- the nesting level (1-10)Name(String) --"Level N"
Testing notes:
- Total nodes in the chain: 10 objects + 20 variables = 30 nodes
- To reach
Level_10, you need to browse 10 levels deep fromDeepNesting - Tests browse depth limits and recursive algorithms
- Verify your client doesn't stack overflow or infinite-loop on deep hierarchies
- The
Organizesreference type is used between levels