Skip to content

Use Cases

The box does one thing well: it turns live time-series signals (OPC UA, MQTT, or replayed CSV) into a continuous stream of model outputs — health_score, failure_probability, and remaining-useful-life — computed on-premise, with no cloud dependency, and delivered wherever your plant needs them: the operator dashboard, a PLC setpoint, a broker topic, or your SCADA/historian via the external API.

Every use case below is built from that one pipeline.

flowchart LR
  subgraph Plant["Plant floor"]
    PLC["PLCs · OPC UA servers"]
    BR["MQTT brokers · sensors"]
  end

  subgraph Line["One production line"]
    BOX["X-Edge AI Box\n(self-contained runtime)"]
  end

  subgraph Ops["Operations & IT"]
    HMI["Operator dashboard\n(browser)"]
    SCADA["SCADA · MES · Historian"]
  end

  subgraph Studio["Engineering workstation (offline)"]
    MC["modelctl\nconvert · validate · package"]
  end

  PLC -->|"tags (polled)"| BOX
  BR -->|"topics (push)"| BOX
  BOX -->|"live charts · alerts"| HMI
  BOX -->|"predictions & setpoints\n(OPC UA / MQTT write-back)"| PLC
  BOX -->|"external API\n(API key)"| SCADA
  MC -.->|"ONNX bundle\ncrosses the air gap"| BOX
  BOX2["Box — line 2"] ~~~ BOX
  BOX -.->|"config export/import\n(JSON envelope)"| BOX2

Each line gets its own box; boxes never depend on each other or on a cloud. Models are authored off-box with modelctl and carried across the air gap as validated ONNX bundles; a proven line configuration is cloned to the next line with config export/import.

The core use case. Stream vibration, temperature, current, and pressure tags from rotating equipment; a windowed model scores bearing wear and motor faults hours before failure, on every sample.

  • Signals in: 10–100 tags at the datasource’s sampling rate (10 Hz default).
  • Out: health score and failure probability trend on the dashboard; RUL feeds your maintenance planning via the external API.
  • Who: plant operators watch the trend; maintenance planners consume the history.

Rule-based SCADA alarms catch what you already predicted. A model watching the same process variables surfaces the patterns thresholds miss — drift, oscillation, correlated deviations across tags.

The pipeline is built to be trustworthy here: a silent sensor or a stale MQTT topic halts inference visibly instead of feeding the model frozen data (motionless data reads as “healthy” — the worst failure mode for anomaly detection), and NaN/Infinity payloads never reach the model.

Predictions don’t have to stop at a chart. Map output channels to sink-native addresses — an OPC UA node, an MQTT topic, a CSV column — and the box writes each prediction back at QoS 1 with scale/offset applied, so a controller or HMI can act on it.

Write failures never stall inference; they surface as coalesced Output write failed alerts. See Output Datasources.

Site IT and SI partners pull predictions into existing plant systems through the external REST API — API-key authenticated, rate-limited, no dashboard account required:

  • GET /api/external/v1/predictions/latest — current state for an HMI widget.
  • GET /api/external/v1/predictions/history — recent window for a historian.

Before a model touches live equipment, replay a recorded incident through the exact production pipeline with the CSV input adapter — same windowing, same model runtime, same dashboards. Adjust replay speed, loop the file, and verify the model flags the failure you recorded. This is also the fastest way to demo the box without any plant connection.

There is deliberately no multi-box federation — each box is as self-contained as a PLC, which is why operators can trust it. Scaling a plant means repeating a proven recipe:

  1. Commission line 1: connect datasource, pair model, tune thresholds.
  2. Export the inference configuration (secrets redacted, one JSON envelope).
  3. Import it on the next box, point it at line 2’s endpoints, enable.