Download OOUAMiddleware ProductionCell Demo
The ProductionCell demo illustrates the runtime model architecture of OOUAMiddleware in a fully operational environment. It demonstrates dynamic NodeSet loading, runtime interpretation, embedded LUA execution, alarm configuration and historian services.
What This Demo Demonstrates
Runtime Model Walkthrough (NodeSet-first)
ProductionCell Demo – Runtime Model Walkthrough
LineMiddleware only • Operative simulation in LUA • Alarms + Historian driven by NodeSet
NodeSet Types
OpenOpcUa_ProductionCellDemo.Types.xml
Types, DataTypes, Methods, A&C definitions
\Demo_OpenOpcUa\LineMiddleware\Project
NodeSet Instances
OpenOpcUa_ProductionCellDemo.Instances.xml
ProductionCell objects, variables, method instances
\Demo_OpenOpcUa\LineMiddleware\Project
Project Configuration
LineMiddleware.oouaprj
NodeSet list, endpoints, historian settings
\Demo_OpenOpcUa\LineMiddleware\Project
Embedded LUA
OpenOpcUaCoreServer.lua
Simulation (multi-rate) + method implementation
\Demo_OpenOpcUa\LineMiddleware\Project
InjectFault implemented in LUA
LineMiddleware Runtime
OOUAMiddleware Core – Runtime NodeSet Interpreter
• Dynamic loading (Types + Instances)
• Runtime AddressSpace construction
• Method binding and execution
• Alarm evaluation + Event generation
\Demo_OpenOpcUa\LineMiddleware
OPC UA Client
UAExpert / any client
Browse • Read • Call InjectFault
A&C Engine
Declarative alarm config
Events generated automatically
VFI Historian
Virtual File Interface
Daily CSV output
..\LineMiddleware\Project\Data
No LUA needed for HA
Logs
\Demo_OpenOpcUa\LineMiddleware\Logs
Startup + runtime diagnostics
Demo scope: LineMiddleware only (no PlantMiddleware, no VPI) – operative behavior simulated in LUA for clarity and repeatability.
How the ProductionCell Demo builds an operational AddressSpace from NodeSet Types + Instances and drives alarms + historian at runtime.
Runtime NodeSet Types & Instances loading
Dynamic AddressSpace construction
Method execution via LUA (InjectFault)
Declarative alarm configuration
OPC UA event generation
Daily CSV historian via VFI
Middleware layering (Line → Plant)
Download package
Package Contents
ProductionCell Demo Package – Contents
Folder layout used by the demo
Root folder
\Demo_OpenOpcUa\LineMiddleware\
Binaries
\Demo_OpenOpcUa\LineMiddleware\(runtime executables)
Project
\Demo_OpenOpcUa\LineMiddleware\Project\
LineMiddleware.oouaprj
Project configuration
OpenOpcUa_ProductionCellDemo.Types.xml
Type model
OpenOpcUa_ProductionCellDemo.Instances.xml
Instance model
OpenOpcUaCoreServer.lua
LUA simulation + InjectFault
Opc.Ua.NodeSet2.*.xml
Standard OPC UA NodeSets
Logs
\Demo_OpenOpcUa\LineMiddleware\Logs\
CSV historian output (VFI)
..\LineMiddleware\Project\Data\YYYY-MM-DD.csv
PKI / Certificate Store
C:\Samples\Demo_OpenOpcUa\LineMiddleware\Project\CertificateStore\
Windows
LineMiddleware
NodeSet-first
Folder layout used by the demo: binaries, project configuration, NodeSets, LUA script, logs, CSV historian output, certificate store
Windows runtime package
ProductionCell NodeSet Types
ProductionCell NodeSet Instances
LUA script
.oouaprj configuration
CSV historian output
PDF quick start
Run in 5 Minutes
Embedded LUA Simulation (InjectFault & fixed-rate tasks)
ProductionCell LUA Simulation – Flow Diagram
Fixed-rate tasks (200 ms, 500 ms, 1 s) + on-demand actions using GetUAValue / SetUAValue (AttributeId.Value = 13)
LUA Scheduler (Runtime)
Calls FixedRateLua_* functions at configured periods
200 ms task
500 ms task
1 s task
FixedRateLua_00200
Compute Speed = smooth(target(sin(t)))
Write Conveyor.Speed
FixedRateLua_00500
Gate by MachineState (Running=1)
Update cycleProgress → increment TotalProduced
FixedRateLua_01000
Thermal model driven by Speed
If EStopActive=1 → cool down faster
Write MotorTemperature (clamped)
UA Read/Write
GetUAValue(nodeId, 13)
SetUAValue(nodeId, value)
UA Read/Write
Read MachineState
Update TotalProduced
UA Read/Write
Read Speed / EStopActive
Write MotorTemperature
Target Nodes
Speed → ns=4;s=…Conveyor.Speed
MotorTemp → ns=4;s=…MotorTemperature
TotalProduced→ ns=4;s=…KPIs.TotalProduced
Optional Nodes (if present)
MachineState → ns=4;s=…MachineState
EStopActive → ns=4;s=…Alarms.EStopActive
Used to gate production & cooling
On-demand: OnDemandLua_InjectEStop() / OnDemandLua_ClearEStop() → write EStopActive
This diagram is generated from OpenOpcUaCoreServer.lua (ProductionCell demo).
LUA scheduler calls fixed-rate tasks (200 ms, 500 ms, 1 s) and performs UA Read/Write operations to simulate behavior and trigger runtime effects.
Extract package
Launch LineMiddleware
Connect with UAExpert
Browse ProductionCell
Call InjectFault(2)
Explore the Runtime Model in Action
This demo is the practical illustration of the Runtime Model Architecture described in the documentation.