Quick Start
This walkthrough takes a fresh installation to a live process value shown on an operator screen. It touches every layer of QUBIQ once, so by the end you will know where things live.
You will need: a running QUBIQ (Installation), a super-admin login (First-run setup), and any OPC-UA server or MQTT broker to read from. No device? Use a public demo OPC-UA endpoint, or the MQTT broker of your choice.
Time: ~15 minutes.
Step 1 — Create a project
Everything you author lives inside a project.
- From the landing screen choose New project.
- Name:
demo— lowercase letters, digits,-and_only; it becomes the URL slug. - Title:
Demo Plant— the human-readable label. - Create, then open it.
You are now in the Platform for demo, with the Designer canvas in the centre and the tool rail on
the left.
→ Projects
Step 2 — Add a connection
-
Open Connections from the tool rail.
-
New connection → choose OPC-UA (or MQTT).
-
Fill in the endpoint:
OPC-UA MQTT Name: PLC1Name: Broker1Endpoint: opc.tcp://192.168.1.10:4840Broker: 192.168.1.20, Port1883Security mode: Noneto startProtocol: tcp -
Click Test. A green result means QUBIQ reached the endpoint and authenticated.
-
Save.
The connection now appears with a live health indicator. QUBIQ pools it and watches it continuously — you never open a second client to the same device.
Start with None security to prove reachability, then move to SignAndEncrypt with a trusted
certificate before you go to production. → OPC-UA
Step 3 — Create a folder and a tag
-
Open the Namespace panel.
-
Create a folder: New → Folder, name it
Line1. -
Inside it, create another folder
Motor1. -
Inside
Motor1, New → Tag:Field Value Name SpeedData type floatUnit RPMDescription Motor 1 shaft speed
Your tag's path is now Line1/Motor1/Speed. This path is what screens, alarms, scripts and history
queries refer to — for the rest of the system's life.
Step 4 — Bind the tag to the device
The tag exists but has no source yet. Bind it:
- Select
Speed→ Binding tab → Add binding. - Connection:
PLC1. - Address: the device address.
- OPC-UA:
ns=2;s=Motor1.Speed— or click Browse and pick the node from the server's tree. - MQTT: the topic, e.g.
plant/line1/motor1/speed.
- OPC-UA:
- Polling mode:
subscribe(push from the device) orpollwith a sampling rate. - Save and make sure Enabled is on.
Within a second or two the namespace shows a live value and a quality of Good next to the tag.
Good, Bad, Uncertain and NotFound propagate through bindings, expressions, alarms and
charts. A widget bound to a Bad-quality tag shows it, rather than silently rendering a stale
number. → Tag quality
Step 5 — Turn on history
- With
Speedselected, open the History tab. - Enable history.
- Leave the deadband at
0for now (store every change).
Values now stream to the historian. If you have not designated a QuestDB store yet, do that first — Historian configuration.
Step 6 — Add an alarm
-
Open the Alarms tab on the tag and enable alarming for it.
-
Add alarm:
Field Value Name High speedMode aboveSetpoint a value your process will cross Priority highDeadband 1% of span (stops chatter at the threshold) On delay 2000ms (ignore brief excursions)Require ack on -
Save.
When the value crosses the setpoint and stays there for two seconds, the alarm annunciates and is visible to every operator until acknowledged.
→ Alarms
Step 7 — Put it on a screen
- Go back to the Designer canvas.
- From the component palette, drag a Gauge onto the canvas.
- With it selected, open the Properties panel and find the
valueproperty. - Click the bind icon next to it → choose Tag → pick
Line1/Motor1/Speed. - Set
minandmaxto your engineering range. - Drag an HmiTrendChart below it and bind its tag list to the same tag — it reads from the historian automatically.
- Drag an AlarmBell into the top-right corner. It needs no binding; it annunciates every active alarm.
The canvas is live while you design: the gauge is already moving.
→ Designer · Components
Step 8 — Publish and view it as an operator
- Save the view.
- Open the LiveView URL:
http://localhost:8182/demo.
You are looking at the same screen an operator sees — no design tooling, no Platform chrome.
By default a project's LiveView is public. To require an operator login, bind the project to a User Database and assign runtime roles. → LiveView authentication
What you built
Notice what you did not do: no database schema, no polling loop, no WebSocket plumbing, no alarm table, no chart query. Those are the platform's job.
Where to go next
| Next | Why |
|---|---|
| Build your first project properly | Naming, structure and conventions that scale past a demo |
| User-defined types | Stop hand-building the same motor twenty times |
| Pipelines | Move data somewhere, on a schedule or on an event |
| Security | Lock it down before anyone else can reach it |