How do you use OPC UA Modeler?
Online · SaaS
In your browser
Nothing to install. Edit with live validation and diagrams, generate with the AI assistant, share with your team.
- Quickstart: your first model online
- The editor
- AI-assisted modelling
- Using your own NodeSets
- Try your model on a live server
- Sharing and export
On premise
On your own machines
Command-line compiler, VS Code extension and MCP server for AI agents. Your models stay on your network and build in your own git repository and CI.
- Quickstart: your first build from the CLI
- Installation
- VS Code extension
- CLI reference
- Watch mode
- AI agents through MCP
Same in both: the model format
A .model.yaml file compiles the same way online and on premise, so a model can move from one to the other at any time.
What a model looks like
This YAML compiles to the NodeSet2.xml on the right. NodeIds, aliases and namespace indexes are assigned for you. Read a full example →
namespaceUri: http://sterfive.com/UA/TemperatureSensor
version: 1.0.0
namespaces:
- di
objectTypes:
- browseName: TemperatureSensorType
subtypeOf: di:DeviceType
components:
- browseName: di:ParameterSet
components:
- browseName: Temperature
dataType: ua:Double
- browseName: SetPoint
dataType: ua:Double
accessLevel: CurrentRead | CurrentWrite
<UAObjectType NodeId="ns=1;i=1000"
BrowseName="1:TemperatureSensorType">
<DisplayName>TemperatureSensorType</DisplayName>
<References>
<Reference ReferenceType="HasComponent">ns=1;i=1001</Reference>
<Reference ReferenceType="HasSubtype"
IsForward="false">ns=2;i=1002</Reference>
</References>
</UAObjectType>
<UAObject NodeId="ns=1;i=1001" BrowseName="2:ParameterSet"
ParentNodeId="ns=1;i=1000">…</UAObject>
<UAVariable NodeId="ns=1;i=1002" BrowseName="1:Temperature"
ParentNodeId="ns=1;i=1001" DataType="Double">…</UAVariable>
<UAVariable NodeId="ns=1;i=1003" BrowseName="1:SetPoint"
ParentNodeId="ns=1;i=1001" DataType="Double">…</UAVariable>