Smart Factory
A discrete production line with buffers, shifts, faults and production signals, seeded so every run is the same.

What's running
Seven assets, six models, fixed seed 20261004. Every asset is served over MQTT, OPC UA and Modbus TCP. The template sets no protocol scopes.
| Station | Model | Ideal cycle | Buffer after |
|---|---|---|---|
cnc-001 | cnc-spindle | 45 s | capacity 10, initial 2 |
wash-001 | belt-conveyor | 30 s | capacity 5, initial 2 |
press-001 | hydraulic-press | 35 s | capacity 5, initial 2 |
test-001 | belt-conveyor | 25 s | unlimited sink |
The wash station is a conveyor that moves parts through the wash. There is no washer model. The test station is an inspection conveyor, and its pass/fail result is its scrap rate, not a simulated measuring instrument. The chiller, compressor and pump are utilities, not stations.
The press is coupled to the utility compressor: press-001's supply_air_pressure input is bound to compressor-001's header_pressure. Inject valve_leak on compressor-001 (miravo inject compressor-001 valve_leak) and the header drops from about 8 bar to about 3.4 bar within seconds. The press regulator loses clamp pressure, press-001 raises air_pressure_loss and goes down_unplanned, the test station starves and the wash station starves or blocks as its buffers fill. The leak lasts 240 simulated seconds, the header recovers in about 45 s, and the press resumes after its 60 s inhibit.
Two shifts run Monday to Friday, 06:00 to 14:00 and 14:00 to 22:00, with 15-minute breaks at 10:00 and 18:00. Every 500 completed CNC parts triggers a 20-minute changeover. Time zero is Monday 06:00.
Launch
miravo start --template smart-factory
miravo status --jsonOr use Console ⭢ Catalog ⭢ Smart Factory ⭢ Launch. Asset detail shows the station state badge and the good and scrap counts. Production lines covers the signals and their precedence.
Validate OEE
Run examples/oee-reference/index.ts against the authenticated admin API. A separate seeded fault scenario shows what happens when station two stops: upstream buffers fill, downstream stations starve and sink throughput drops. Counters restart at zero with a new run_id, so do not combine data from different runs.
Was this page useful?
Last updated on
Templates
Browse the six built-in Miravo templates: a machining line, a water plant, an office building, backup power, district heating and a pharma cleanroom.
Water Treatment
Run a municipal water treatment plant with duty and standby pumps, tank levels, wear and faults, served over MQTT, OPC UA and Modbus TCP.
Miravo