Skip to main content

UNS

The UNS (Unified Namespace) is the human-readable "single source of truth" for real-time communication between non-industrial IoT (IIoT) Factory+ data producers and consumers.

Open Source Example

ACS UNS Component

See how the AMRC have implemented this component in the AMRC Connectivity Stack
View on Github

Overview

The UNS is one of two namespaces that Factory+ components use for publishing and subscribing. The Sparkplug namespace facilitates data collection in levels 1 and 2 of the ISA-95 functional model, while the UNS serves as a means of communication for components at levels 3 and above (MES and ERP systems). Data from the edge is published to the Sparkplug namespace and then republished to the UNS by the UNS Ingester component, complying with the UNS topic and data structure specification.

Schema

The ISA-95 hierarchy for a device is defined by the Device Information Schema under "ISA95_Hierarchy" published on DBRITH.

  • The ISA-95 hierarchy MUST be populated for the Sparkplug UNS Ingester to republish packets to the UNS.

Topic Structure

The UNS Topic structure must follow the standard: <ISA-95>/<Source>/<SchemaPath>.

  • All topics MUST be prefixed with the ISA-95 hierarchy.
NameOptional
EnterpriseNo
SiteYes
AreaYes
Work CentreYes
Work UnitYes
  • Topics MUST specify their source (Edge, MES, etc.).
  • Topics MUST contain the schema path to the value being published.

Example: CompanyA/SiteB/Machining/Edge/Power/Voltage

Packet Structure

MQTT Version

The MQTT broker MUST support MQTTv5 to enable custom properties defined in the payload specification.

Payload

The UNS packet structure consists of the latest value and timestamp. The structure also supports batched metrics, with the "Batch" property containing an array of values and timestamps.

PropertyTypeDescription
ValuestringThe value to publish
TimestampstringThe timestamp of the value at source
BatcharrayArray of values and timestamps to publish

Custom Properties

The packet utilises MQTTv5 custom properties to send metadata relating to the value. These values are parsed from the Sparkplug payload when republishing to the UNS.

PropertyTypeDescription
InstanceUUIDPathUUIDThe full instance UUID path of the device
InstanceUUIDUUIDThe top level instance UUID of the device
SchemaUUIDPathstringThe full schema UUID path the value relates to
SchemaUUIDUUIDThe top-level UUID of the utilised schema
TypestringThe Sparkplug type of the value
UnitstringThe measurement unit of the value
TransientbooleanRecord the value to the historian

Permissions

Global

Permission
Write to entire UNS
9fa6ff20-9d2a-4444-960c-40ebcf56f5b4
Write to all topics for the whole UNS
{
"UNS/v1/#": "w"
}

Permission
Read entire UNS
ffa40b36-3a61-4545-832a-2d1e8b860d63
Subscribe to and read all topics for the whole UNS
{
"UNS/v1/#": "rs"
}