Skip to main content
Version: Next

The Namespace

The namespace is QUBIQ's model of your plant: a hierarchy of folders and tags, addressed by path.

Site1/
Line1/
Filler/
Motor1/
Speed float RPM
Current float A
Running bool
Temperature float °C
Capper/
Motor1/
Speed float RPM

Every other subsystem refers to tags by this path. A widget binds to Site1/Line1/Filler/Motor1/Speed. So does an alarm, a history query, a script and an export.

Why the namespace exists

The namespace is a deliberate layer of indirection between what a value means and where it comes from.

A tag path with its type, engineering unit, range and deadband sits above the binding that supplies it from an OPC-UA server; screens, alarms, history and pipelines all read the tag, never the binding.A tag path with its type, engineering unit, range and deadband sits above the binding that supplies it from an OPC-UA server; screens, alarms, history and pipelines all read the tag, never the binding.
Repoint the binding and every consumer above follows. Nothing else changes.

Replace the PLC, change protocol, re-address the register — you change the binding. Screens, alarms, history and scripts do not notice, because they never referenced the device.

Systems without this layer bind screens to addresses. They work until the first equipment change.

What is in the namespace

Node kindPurpose
FolderStructure. Groups equipment, areas, lines. Carries no value.
TagA named value with engineering metadata.
UDT instanceA folder materialised from a user-defined type — its members are ordinary tags.

A tag carries only configuration: data type, unit, description, scaling, deadband, quality defaults, history settings, alarm enablement. It never stores a value. Live values live in the runtime key-value store, history in the historian.

That separation is why configuration can be exported, diffed, backed up and restored without dragging runtime state along.

Tag properties

Tags with and without a device

SourceBehaviour
device (default)The value comes from a protocol binding.
internalThe value is owned by QUBIQ — a setpoint, a counter, a mode flag, a scripted result. Persisted with no expiry, writable from scripts and screens.

Internal tags are how you keep state in the namespace instead of in a database table: a recipe target, an operator-entered limit, a computed KPI.

Working with the namespace

TaskWhere
Create folders and tagsThe Namespace panel
Bind a tag to a deviceThe tag's Binding tab → Protocol bindings
Create many tags at onceBulk import, or discovery from OPC-UA/Sparkplug
Model repeated equipmentUser-defined types
Search across the treeThe namespace search box
Export the modelExport in the namespace panel (needs Export the namespace)

Naming rules that pay off

The path is the most permanent identifier in the system. Before you create the first folder:

  1. Model the plant, not the network. Line1/Filler/Motor1/Speed, never PLC10/DB4/Word12.
  2. One convention, everywhere. Pick a case style and hold it for the whole tree.
  3. No units in names. Temperature, not Temp_C. The unit is a property.
  4. No source hints in names. Speed, not OPC_Speed.
  5. Even depth for siblings. Equipment of the same kind at the same level makes UDTs, wildcards and repeaters work.
  6. Nouns for folders, measured quantities for tags.

Renaming and moving are both supported — but every screen, alarm and script that referenced the old path must be revisited. Get it right early.

Permissions

ActionPermission
Browse the tree, read tags and bindingsView the namespace
Create folders/nodesCreate tags and folders
Edit, move, rename nodesEdit tags and folders
Delete nodesDelete tags and folders
Create/edit/delete tags and UDT definitionsManage tags
Create/edit/enable/disable protocol bindingsBind a tag to a protocol
Bulk importBulk import tags
ExportExport the namespace
Refresh from sourceRefresh the namespace
Change optimization settingsConfigure namespace optimisation

Note the separation: View the namespace lets an engineer read the model; Bind a tag to a protocol is what lets them point it at live equipment. Those are different levels of trust.

Permissions reference

Scale

The namespace is designed to stay responsive at tens of thousands of tags:

  • The tree loads lazily, one level at a time (/namespace/tree/roots, then /namespace/tree/node/{id}/children).
  • Search is indexed, not a tree walk.
  • Runtime cost tracks subscribed tags, not total tags. 50,000 configured tags with 2,000 on screen behaves like a 2,000-tag system.

Bulk operations exist for everything that would otherwise be a loop: nodes/bulk-delete, nodes/bulk-update, tags/bulk-delete, bulk-import.

Finding things, and knowing what an edit breaks

The namespace panel filters tags by condition — is:disabled, no:binding, is:unused, has:history, is:published, source:expression — and a rename or a delete shows what depends on the node before you commit to it. → Search & impact New in 1.0.4

In this section

PageContents
TagsEvery tag property, what it does and when to set it
Protocol bindingsAttaching tags to connections and addresses
User-defined typesReusable, parameterised tag templates
Bulk importCreating thousands of tags from a file or a discovery
MQTT publishingMirroring namespace tags out to an external broker