Voltrus MES Documentation: Modules, Screens, and Data Flows

Overview

Voltrus MES runs production on the machine data the Voltrus stack already collects. Work orders dispatch to station terminals, every event appends to a production log, checks happen where the work happens, and the shift ends with numbers instead of reconstruction. This page documents each module with screenshots from a running instance.

Voltrus MES dashboard: module overview, work orders by status, today's output, and late work orders
Dashboard: module map, work orders by status, today's output, late orders. Auto-refreshes every 30 seconds.

The modules

ModuleWhat it doesDocs
PlanWeek schedule board with capacity, work order lifecycleSchedule & Work Orders
ExecuteStation terminal, andon wall, downtime logTerminal, Andon, Downtime
Machine ingestKeyed SCADA ingest: states and counts become eventsMachine Ingest
QualityInspection templates at the station, NCR workflowInspections & NCR
TraceLot genealogy both directions, per-lot audit packTrace & Audit Pack
AnalyzeHourly OEE rollups, daily and month-end reportsOEE & Reports

Deployment

Cloud by default; on-site for plants that cannot send production data off-site — decided per site during onboarding. Access is role-based: operators see the terminal, supervisors see planning and quality, admins see setup and ingest.

Plan: Schedule & Work Orders

The schedule board shows work orders per line and day. Capacity comes from the shift calendar; load is routing standard time multiplied by quantity. Drag chips between cells or to and from the pool.

Schedule board: week view with work order chips per day, capacity bars, and an unscheduled pool
Schedule board: one column per day, capacity bar per line (red means over capacity), unscheduled pool on the left.

Work order lifecycle

A work order moves draft to released to in progress to completed. Draft orders are editable; release clones the active routing into station operations and freezes the plan; completion posts final quantities. Priority ranks rush, high, normal, low, and the terminal sorts by priority then due date.

Work orders list with status, part, quantity, due date, and priority columns
Work orders: newest plan state per order, with part, quantity, due date, and priority.

Each order keeps an event trail: every start, quantity report, pause with reason, and completion, attributed to operator and station, with timestamps. That trail is what the audit pack assembles later.

Execute: Terminal, Andon, Downtime

Station terminal

The terminal is the operator console at the station. Pick a station, and it lists the ready work in priority order. Start an operation and the elapsed timer runs against standard time. Quantities post as good, scrap, or rework. When the operation has an active inspection template, the checklist gates completion: the server rejects a completion without answers, so the gate cannot be skipped by the client.

Station terminal showing work order WO-1001 operation 1 with good, scrap, rework inputs and a start button
Terminal: WO-1001 Op 1 at the CNC station. Good/scrap/rework inputs, optional note, elapsed vs standard time.

Andon

The andon board shows every station on the line as a lamp with its current state, current job, and today output. It refreshes every 10 seconds. A supervisor can override a lamp, and the override takes a reason: it becomes a downtime event in the log, not a silent edit.

Andon board with station lamps, current jobs, and today output per station
Andon: live station state per line. Overrides require a reason and land in the downtime log.

Downtime

Machine states flow in through keyed ingest. The station state machine latches running and down states and opens a downtime event when a down state survives the debounce window, so short flaps never become events. Events without an assigned reason land in a triage queue; assigning a reason takes one click. The Pareto view counts minutes per reason.

Downtime log with event start and end, duration, station, and assigned reason codes
Downtime log: automatic events from machine states, reason codes assigned, minutes per reason for the Pareto review.

Machine Ingest

Machines talk to MES the same way they talk to Voltrus SCADA and OEE: through the keyed ingest API. A station binding maps a station code to a sample tag plus two expressions: one that means running, one that means down.

POST /api/ingest
X-API-Key: <ingest key>

{
  "samples": [
    { "station_code": "ST-10", "tag": "machine_state", "value": "DOWN",  "ts": "2026-09-24T02:10:00Z" },
    { "station_code": "ST-10", "tag": "machine_state", "value": "RUNNING", "ts": "2026-09-24T02:26:00Z" }
  ]
}
  • Bindings: station, sample tag, running expression, down expression, debounce seconds. Expressions compare the tag value, for example machine_state == "DOWN" or state == 0.
  • State machine: a down state that survives debounce opens a downtime event; the next running state closes it. Events get station, start, end, and duration.
  • Keys: machine clients authenticate with X-API-Key; keys are stored hashed. Admin UI calls use the session.
  • Without a machine connection: the terminal still records everything operators enter. Ingest removes the typing, it is not a prerequisite for the record.
Ingest settings page showing station bindings with sample tag and running and down expressions
Ingest bindings: per-station sample tag, running expression, down expression, debounce window.

Quality: Inspections & NCR

Inspections

Inspection templates bind to routing operations: when that operation runs, the checklist appears at the terminal. Checks are boolean or numeric with a min and max band. Required checks gate completion, and a failed critical check auto-drafts an NCR.

Inspection templates list with check kinds, bands, and critical flags
Inspection templates: per-operation checklists with numeric bands and critical flags.

NCR workflow

A non-conformance is raised from a failed critical check, by an operator, or from a customer return. The minimum workflow: raise with evidence, disposition, close with verification. Dispositions move the world, not just the file: scrap decrements stock, rework reopens the operation, return to vendor and use-as-is post accordingly.

NCR list with status and an open non-conformance against a work order
NCR register: source, work order, quantity, status. Dispositions post stock and order effects.

Trace & Audit Pack

Every completed operation writes to the production log with operator, station, timestamps, and quantities. Completed orders produce output lots. Genealogy runs both directions: forward from a material lot to every finished unit that touched it, backward from a finished unit to every input.

Lot genealogy trace showing the production trail of a lot across stations
Genealogy trace: the full trail of output lot WO-1001-1, every event attributable to operator, station, and time.

The audit pack assembles a lot's complete record: identity, machine and operator trail, in-process checks with answers, and any NCR raised against the order. It prints and exports as CSV, and the month-end zip bundles every pack for the period.

Audit pack for a lot: batch identity, operations, checks, and export options
Audit pack: the electronic batch record for one lot, printable and exportable. No retyping.

Analyze: OEE & Reports

OEE rollups

Every hour, MES rolls availability, performance, and quality up per station and per line, and attributes them to work orders and shifts. Performance is capped at 100 percent so a bad count source cannot flatter the number. Downtime minutes come from the events above, not from estimates.

OEE page with availability, performance, and quality per station and trend
OEE: hourly rollups per station and line, attributed to orders and shifts.

Daily report

The end-of-shift report covers output by line and order, good vs scrap, downtime minutes by reason, and open NCRs. It generates from the log; nobody reconstructs the shift at 17:00.

Daily production report by line and order with output, scrap, and downtime
Daily report: output, scrap, and downtime by line and order, generated from the production log.

Data & Handoff

You own your production data. Everything in the system exports: production log, downtime events, OEE rollups, NCR register, stock movements. CSVs have documented columns so the ERP handoff is a file your system already accepts, and the month-end zip bundles reports plus every audit pack for the period. Integrations beyond CSV (direct ERP write-back) are post-GA add-ons.

ExportCoversFormat
Production logEvery event with operator, station, timestamps, quantitiesCSV
Audit packFull record per output lotPrint + CSV
Month-end packReports plus all audit packs for the periodZIP
OEE rollupsHourly per station and lineCSV

MCP & AI Agents

The whole MES is one MCP endpoint at /mcp: 25 operations spanning the full flow, from sales order to completed work order, from OEE query to lot trace. Point Claude, Codex, or any MCP client at your instance and run the plant in natural language. Agents execute the same validated procedures as the UI, so role gates and domain rules apply unchanged.

Auth: a signed-in session cookie or X-API-Key: $MCP_API_KEY. Key callers act as the plant's first active admin user. Set the secret with wrangler secret put MCP_API_KEY.

Register with any MCP client:

{
  "mcpServers": {
    "voltrus-mes": {
      "url": "https://app.mes.voltrus.id/mcp",
      "transport": "http",
      "headers": { "X-API-Key": "YOUR_MCP_API_KEY" }
    }
  }
}

The 25 tools:

  • Demand & planning: dashboard_counts, dashboard_today, salesorders_list, salesorder_get, salesorder_create, workorders_list, workorder_get, workorder_create, workorder_release, schedule_board
  • Records & trace: parts_list, inventory_levels, lots_list, trace_back
  • Analyze: oee_line, daily_report, maintenance_overview
  • Line terminal chain: terminal_ready, terminal_start, material_checkin, material_consume, terminal_report, terminal_complete, terminal_materials
  • Maintenance: ticket_maintenance

Example asks: "Which lines are behind plan today, and what was the top downtime reason?" · "Create and release a work order for 500 units, due Monday first shift." · "Where did the material for this lot come from? Assemble the audit pack."

Pricing

$59 per machine per month (USD, billed annually) or Rp 750.000 per machine per month, with a $299 / Rp 3.750.000 monthly site minimum — about five machines. Onboarding is assisted on a call or on site (East Java) and included in the price, as is support in Bahasa Indonesia and English.

ERP integrations, custom reports, and extra sites are quoted separately. Multi-site, SSO, and white-label arrangements for OEMs and system integrators: talk to us.

Get started: [email protected].

Support

Every site has a direct line to the onboarding engineer, business hours WIB, in Bahasa Indonesia or English. Write to [email protected], subject Voltrus MES.