Skip to main content
Version: Next

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.

  1. From the landing screen choose New project.
  2. Name: demo — lowercase letters, digits, - and _ only; it becomes the URL slug.
  3. Title: Demo Plant — the human-readable label.
  4. 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

  1. Open Connections from the tool rail.

  2. New connection → choose OPC-UA (or MQTT).

  3. Fill in the endpoint:

    OPC-UAMQTT
    Name: PLC1Name: Broker1
    Endpoint: opc.tcp://192.168.1.10:4840Broker: 192.168.1.20, Port 1883
    Security mode: None to startProtocol: tcp
  4. Click Test. A green result means QUBIQ reached the endpoint and authenticated.

  5. 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.

Connections

Security first, later

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

  1. Open the Namespace panel.

  2. Create a folder: New → Folder, name it Line1.

  3. Inside it, create another folder Motor1.

  4. Inside Motor1, New → Tag:

    FieldValue
    NameSpeed
    Data typefloat
    UnitRPM
    DescriptionMotor 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.

Namespace & Tags


Step 4 — Bind the tag to the device

The tag exists but has no source yet. Bind it:

  1. Select SpeedBinding tab → Add binding.
  2. Connection: PLC1.
  3. 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.
  4. Polling mode: subscribe (push from the device) or poll with a sampling rate.
  5. 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.

Quality is not decoration

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

  1. With Speed selected, open the History tab.
  2. Enable history.
  3. Leave the deadband at 0 for 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

  1. Open the Alarms tab on the tag and enable alarming for it.

  2. Add alarm:

    FieldValue
    NameHigh speed
    Modeabove
    Setpointa value your process will cross
    Priorityhigh
    Deadband1% of span (stops chatter at the threshold)
    On delay2000 ms (ignore brief excursions)
    Require ackon
  3. 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

  1. Go back to the Designer canvas.
  2. From the component palette, drag a Gauge onto the canvas.
  3. With it selected, open the Properties panel and find the value property.
  4. Click the bind icon next to it → choose Tag → pick Line1/Motor1/Speed.
  5. Set min and max to your engineering range.
  6. Drag an HmiTrendChart below it and bind its tag list to the same tag — it reads from the historian automatically.
  7. 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

  1. Save the view.
  2. 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

An OPC-UA server bound to one tag, which feeds history, an alarm and a gauge, which in turn feed a trend chart, an alarm bell and a LiveView screen.An OPC-UA server bound to one tag, which feeds history, an alarm and a gauge, which in turn feed a trend chart, an alarm bell and a LiveView screen.
One tag, three uses. Add the second and third without touching the first.

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

NextWhy
Build your first project properlyNaming, structure and conventions that scale past a demo
User-defined typesStop hand-building the same motor twenty times
PipelinesMove data somewhere, on a schedule or on an event
SecurityLock it down before anyone else can reach it