DigitalFactoryLab · Banknote Works · Handbook BW-HBK-000 · Rev A

Banknote Works — The Complete Handbook

The three Banknote Works documents merged into one reference: the functional briefing for readers new to MES, the golden-thread traceability use case, and the machine connectivity standard for IT. Everything describes the same live system, with the same numbers.

Contents Part A briefing · Part B use case · Part C standard Format Single reading document · printable Date July 2026
Part A

Functional briefing

What an MES does, told through the line and its use cases — for readers new to MES.

1What is an MES, in one picture

Your office systems know what should happen. Your machines know what is happening — but the two don't talk. A Manufacturing Execution System sits in between: it listens to every machine, writes everything down, and turns that stream into answers people can use.

Office systems (ERP)Orders, purchasing, stock, invoicing — the plan. Knows you must print 12,000 sheets this week.
↕  the MES connects the two
MES — this demoThe factory's eyes and memory: a live view of every press, and a permanent record of every sheet, measurement, material lot and stop.
↕  listens to the machines, all day, automatically
MachinesThe seven presses. They already produce this data — states, measurements, alarms. Without an MES, it evaporates.

The key idea for everything that follows: nobody types anything. Every fact in this document's use cases is written by a machine, at the moment it happens.

2The example line

A sheet of security paper enters at B010 and gains one security layer per press; only at the end is it cut into 45 individual banknotes. If a sheet is defective at any point it is shredded — banknotes are never "repaired".

OpStationWhat happens to the sheetCycle
10B010Paper in — thickness, watermark and security-thread check30 s
20B020Background printing on both faces in a single pass (perfect front/back register)45 s
30B030Colour-shifting ink patch, silk-screened (~18 µm deposit)60 s
40B040Holographic foil stripe, hot-stamped at 105 °C50 s
50B050Intaglio — the raised print you can feel, pressed at 900 kN. The slowest press: it sets the pace90 s
60B060Two serial numbers per note (letterpress) + protective varnish55 s
70B070Every note camera-inspected · sheet cut · notes banded in 100s70 s

Two characters matter for the rest of this document: the intaglio press B050 (expensive, wears out, paces the line) and the colour-shift ink at B030 (the most expensive consumable — small, precious lots).

Mechanical layout — Print Hall 1 (top-down)

PRINT HALL 1 — SECURE ZONE L4 one way in · one way out SUBSTRATE VAULT paper pallets counted in (WMS) B01030 s Sheet feed & check B02045 s Offset Simultan B03060 s Silk-screen OVI B04050 s Foil / OVD stamp AGV CORRIDOR — vault-escorted material deliveries (AGV-D) to every press B05090 s · pacemaker Intaglio press — 900 kN B06055 s Numbering + varnish B07070 s Inspect · cut · band SHREDDER defects, any op CASH VAULT banded 100-note packs counted out (WMS)

Reading the layout: material enters once (vault, top-left), sheets flow left→right then right→left in a U through the seven presses, and product exits once (cash vault, bottom-left). Defective sheets leave the U at whichever press caught them, straight to the shredder. The AGV corridor crossing the hall carries only vault-escorted material — never product.

3How the line runs — the manufacturing logic

Four rules govern the flow, and they explain every number the MES will show:

One sheet per press. Each press works on exactly one sheet; when it finishes, the sheet moves forward as soon as the next press is free. There are no piles between machines — work-in-progress stays small and visible.

The slowest press sets the pace. Intaglio takes 90 seconds, so the line can never make more than 40 sheets/h (1,800 notes/h) — no matter how fast the other presses run. The faster presses wait part of every cycle; that idle time is structural, not a problem:

Quality gate at every press — shred early. A sheet is measured at each step; if it fails, it leaves the line right there and goes to the shredder. You never spend hologram foil or intaglio ink on a sheet that is already bad.

A day has a rhythm. Three 8-hour shifts with fixed breaks — a press finishes its sheet, then pauses; that is planned time, not a breakdown — plus short planned maintenance every ~200 sheets per press.

One consequence worth remembering: a stop at B050 is lost output forever; a stop at B010 usually costs nothing — it catches up within its idle margin. The MES reads losses against the pacemaker for exactly this reason.

4Use case — Is the line running right now, and how well?

Without an MES

  • You walk the floor or phone the shift leader to know whether a press is down.
  • Yesterday's output is typed into a spreadsheet — this morning, from memory.
  • "How good is the line?" gets a different answer from everyone you ask.

With the MES

  • One screen shows all seven presses live — running, loading, paused, in fault.
  • Counters are the machines' own: sheets produced, good notes, shredded sheets, to the second.
  • One honest number per line — OEE: "out of 100 sheets we could have made, how many good ones did we actually make?", split into was the line up, was it at speed, was the output good.

In the demo — the Live Line page: watch a real sheet move press to press; stop and restart the whole line with one click and see it drain gracefully.

5Use case — An auditor points at one banknote. Tell me its story.

Every sheet receives a unique number the moment it enters the line — think of it as a passport. From then on, every press stamps that passport automatically: when the sheet arrived, what was measured, whether it passed, and which material lot was mounted at that moment.

TimePressEntry in the passport of sheet BNK-…-0408569Material lot
09:12B010Paper verified (thickness, watermark, thread)PAPER-408608
09:12B020Background print in register — passINK-408609
09:13B030Colour-shift patch in spec — passOVI-408610
09:15B040Hologram applied, adhesion checked — passFOIL-408611
09:16B050Relief printed at 900 kN, height in spec — passIINK-408612
09:18B0602 serials per note stamped, varnished — passNINK-408613
09:19B07045/45 notes passed · cut · banded — releasedBAND-408615

Three properties make this trustworthy: the passport is written by the machines at process time (it cannot be forgotten, backdated or edited); it also exists for sheets shredded mid-line (the record ends with a cause, not with silence); and it works backwards — pick a material lot and get every sheet that used it. That is the recall question, answered in seconds. The full mechanics are the subject of the companion use case, The Golden Thread.

In the demo — the Traceability page: we open the passport of the sheet currently in production.

6Use case — How do you know the right ink was used?

Because the system makes it impossible not to know. Four rules, each one recorded automatically:

#RuleWhat it means in practice
1Each press accepts one materialB030 takes colour-shift ink and nothing else — that is configuration, not an operator's memory.
2Every delivery is loggedInk arrives by robot shuttle from the vault: box, lot and trip recorded. A manual swap goes through the same transaction, flagged as manual.
3Each sheet notes its lotWhen a sheet passes a press, its passport records the lot mounted at that moment — the link is made live, never reconstructed afterwards.
4The vault must balanceBoxes are counted out of the vault; consumption is counted at the press. Issued − used − remaining must add up, per lot.

What this buys you: a supplier calls about a suspect lot → you list every affected sheet in seconds, not days. An auditor asks for proof → you show the passport, not a promise.

In the demo — the Material page: the live lot at each press, its delivery record, its history.

7Use case — How much ink is left — and who refills it?

Without an MES

  • Someone eyeballs the ink level on their round — or the press stops mid-shift.
  • Consumption is estimated at month-end and never quite matches purchasing.
  • Expensive consumables are over-stocked "just in case".

With the MES

  • Every press shows its live remaining count; each processed sheet decrements it by exactly one — consumption equals production, by construction.
  • Below a threshold, a refill is requested automatically and the AGV shuttle delivers a fresh lot from the vault.
  • Exact per-order, per-lot consumption is ready for the ERP — no month-end guessing.

In the demo — the Shopfloor page: the OVI ink bin at B030 counting down sheet by sheet, and the AGV's mission and battery, live.

8Use case — Why did we shred 12 sheets yesterday?

Without an MES

  • "Quality issues" — a total on a whiteboard, causes from memory.
  • Stops are logged by hand, if at all; short stops vanish entirely.
  • The same problem returns weekly because nobody can see it is the same problem.

With the MES

  • Every shredded sheet is an event with a name: press, failed measurement, serial, and the material lot in use.
  • Every stop has a machine-given cause and an exact duration — the top-losses chart builds itself.
  • The answer becomes concrete: "plate wear at the intaglio press, 14:10–15:40, 12 sheets — here are their serials."

In the demo — the Stoppages and Statistics pages: the line's real fault history, aggregated into a Pareto with downtime minutes.

9Use case — Can we catch a problem before we scrap anything?

Yes — because the presses measure every sheet. Think of it as the machine's temperature curve: values wander slightly around a target, which is normal; what matters is the trend.

The intaglio plate wears slowly, so the measured relief height drifts for hours before the first bad sheet appears. The MES watches that drift (statisticians call it SPC — the trend chart is enough of a name) and raises a hand while everything still passes. You schedule the plate change at the next break instead of discovering a scrap wave the next morning.

The scenario we run live: a subtly bad ink lot is delivered to B030 — nothing announced, exactly like real life. You find it yourself in four steps: quality alerts and scrap events start appearing at B030 → the trend chart shows the OVI layer thickness drifting high → the material page names the suspect lot → one click lists every sheet that used it. Then we fix it, and everything returns to green. That investigation takes minutes here; without the data, it is days of meetings.

In the demo — the SPC page, plus the bad-lot scenario run end to end.

10The live demonstration (~10 minutes)

1

Portal — the line at a glance

Running state, today's output, material levels, the AGV. We stop the line — presses finish their sheet, then hold — and restart it. Stage the finale now: click the bad-lot use case — the suspect ink ships immediately and will have visibly drifted by step 4 (rehearsed timing: first drifted measurement ≈60 s after injection; convincing trend and affected serials within ≈5 min).

2

One sheet's journey (§4–5)

Follow the sheet in production across the seven presses, then open its passport in Traceability.

3

Material & consumption (§6–7)

Live ink levels on the shopfloor map, the active lot at B030, its delivery record.

4

The bad-lot investigation (§8–9)

Inject the suspect ink lot, then find it: quality alerts → trend chart (OVI layer thickness) → lot trace → affected serials.

5

Fix, and keep the proof

Reset the station, order the plate change. Screens return to green — and the whole incident stays in the record, forever queryable.

11Architecture, in plain language

How it is wired

One plant server, open standards only; machines never talk to applications directly.

Machinesthe 7 presses + AGV
Press controllerspublish states, measurements and events the moment they happen
OPC-UAthe industry-standard plug for SCADA tools
Message hubthe "post office"
MQTT brokerevery producer and consumer meets here — a new application plugs in without touching the machines
Memorythe record
Databaseevery event, timestamped, never edited — where passports and Paretos come from
Screenswhat you saw
MES dashboardportal, live line, shopfloor, statistics, traceability, material
AI copilotasks the same data in plain language

Where the ERP and the warehouse system fit — a separate map on purpose

ERPthe business
Orders"print 12,000 sheets this week"
Purchasingsupplier contracts, replenishment planning
Financewhat did scrap cost?
WMSthe vault & warehouse
Goods receiptsupplier lots checked in — this is where a lot number is born
Vault inventorylocations, quantities, counted in and out
Pickinga low-material call becomes a picking order for the AGV run
MESthe factory day
Execution & visibilitylive line, OEE
Traceabilitypassports, lot trace
Qualitytrends, scrap causes
Materiallots, consumption, refills
Machinesthe presses
They just producethe MES listens and records; it never slows them down

The ERP does not need to know a press exists, and a press does not need to know an invoice exists — the MES translates between the two. The WMS is, strictly speaking, a sibling of the MES (both are execution systems); it is drawn between ERP and MES here because that is how material physically flows — purchased, received into the vault, issued to the line. The hand-over is clean: the MES raises a material call, the WMS answers with a picked, lot-stamped box, and the mounting is confirmed back as a logged transaction. In this demo environment the ERP and WMS sides are simulated; the hand-over formats are real and ready.

12What each role gets

RoleTheir questionThe MES answer
Production manager"Are we on plan, right now?"Live line view, output counters, one honest OEE
Quality manager"Why did we scrap — and can we prevent it?"Named scrap causes, trend charts that warn before scrap
Logistics / stores"What's left, consumed, and next?"Live levels, automatic refills, exact per-lot consumption
Auditor / customer"Prove what happened to this unit."The passport: every station, measurement and lot — in three clicks
Finance"What did our losses actually cost?"Complete scrap & downtime record, ready to be costed
IT"What must we install on machines?"Nothing proprietary — open standards, one integration contract (BW-CON-001)

The honest closing line: everything in this briefing is built from data the machines already produce. The MES does not create work — it stops that data from evaporating.

Part B

Use case UC-01 — the Golden Thread

Serialized traceability of one sheet across the seven presses.

1The scenario

A sheet of security paper — 45 future banknotes — enters the line, receives a unique serial, and is followed press by press. Every station writes its data against that one serial: measurements, verdicts, and the exact material lot it consumed. Nothing is typed by anyone.

BNK-20260723-0408569the golden thread — the same serial on every press

A banknote line is the perfect setting for this use case for three reasons: no rework exists, so the record is never muddied by repair loops — a sheet passes, or is shredded with a cause; materials are vault-counted, so lot binding is a security requirement rather than a nice-to-have; and the mechanics transfer unchanged to any serialized product — pharmaceuticals, medical devices, aerospace parts.

2The principle — the serial number is the single key

One unique serial is assigned at the first station. From that point on, everything measured or consumed is bound to it — nothing floats free. Read the serial and you have the whole history.

Three guarantees make the key trustworthy: it is bound once, at the entry press, before anything can happen to the sheet; it is written by machines at process time — never typed, never backdated; and it is never reused — day-seeded sequencing makes re-issue impossible, even across system restarts.

Contents of the sheet record · BNK-20260723-0408569
Material lotsthe exact paper, ink, foil and tape lot mounted at each press
Process parameters21 measured values against machine-published limits
Equipmentpress, work op, line
Timestampsarrival, cycle time and completion, per press
Verdictspass / fail at each of the seven quality gates
Final statusreleased to the cash vault — or shredded, with the cause

3Entry — the serial is born, and starts its family tree (B010)

Captured at B010
  • Serial …0408569 assigned as the sheet leaves the vault pallet
  • Substrate verified — thickness, watermark position, security-thread position
  • The security-paper lot bound to the serial
  • Press, work op and timestamp recorded
Written to the serial as genealogy — first branch
SHEET ·040856945 notes · in production
PaperLOT-PAPR-408608
Offset inkLOT-OINK-408609
OVI inkLOT-OVI-408610
+ 4 morefoil · intaglio · numbering · band

parent sheet ← linked → consumed material lots — the tree grows one branch per press

4In process — every measurement is stamped onto the serial (B050)

Captured at B050 · Intaglio
  • Measured values against the limits the press itself publishes
  • Pass / fail verdict per parameter, per sheet
  • A failure ends the journey right here — sheet routed to the shredder, cause on the serial
  • Active intaglio-ink lot, press and timestamp
Written to the serial as data-collection results
Test record — this sheet, this press
ParameterValueLimits
Relief height61.2 µm48 – 72PASS
Plate pressure903 kN840 – 960PASS
Wiping residue1.9 %≤ 1.8FAIL

A wiping failure like this one sends the sheet to the shredder — serial, cause, press and ink lot recorded in a single event. No downstream value is ever added to a bad sheet.

5Exit — the record is sealed, the notes are released (B070)

Captured at B070 · Inspection, cut & pack
  • All 45 notes camera-inspected individually
  • Sheet cut; notes banded into 100-note packs
  • Final status set to released — record closed and locked
  • Packs counted into the cash vault, ready for dispatch and later lookup
Written to the serial as final status + release event
Banded pack · cash vault
BNK-20260723-0408569
Notes45 / 45 passed
LineBanknote Works · Print Hall 1
Gates7 / 7 · all measurements in spec
RELEASED

Sheets shredded earlier keep a sealed record too — ending at their exit press, with the cause. The absence of an ending is itself an alert the system can raise.

6The payoff — the record reads in both directions

DirectionQuestion answeredExample
Backward traceFrom one serial → every material lot, measured value, verdict and press that went into it.BNK-…-0408569 → lots · measurements · verdicts
Forward traceFrom one material lot → every sheet that consumed it — the exact scope of any recall.LOT-OVI-408610 → 38 sheets → 1,710 notes

Four business outcomes follow directly: recall containment (isolate exactly the affected sheets, in seconds), quality analytics (trends by lot, press and shift), audit and compliance (proof of what was printed and how), and security reconciliation (vault issued = consumed + remaining, per lot).

In the live demonstration this section is played out for real: a subtly defective OVI ink lot is delivered to B030, quality drifts, and the investigation uses exactly these two queries — name the lot, list every affected serial — before recovering the line.

7Mapping into your MES

The vocabulary changes from vendor to vendor; the objects do not. Every concept in this use case lands one-to-one in any serialized-production MES:

In this use caseIn your MES
Serialized sheetthe serialized unit / SFC the MES tracks
Press B010–B070an operation in the routing
Material-lot bindinggenealogy / as-built component linking
Measurements vs limitsdata-collection parameters
Fail → shredder, cause on serialnonconformance handling
The sheet's passportas-built record / where-used query

Same principle, whatever the MES — one unique serial ties the whole build together. The live system behind this document proves it end to end.

Part C

Connectivity standard BW-CON-001

The machine-integration contract — for integrators and IT.

1Architecture & ISA-95 context

The line publishes on two parallel southbound interfaces — OPC-UA for SCADA/HMI-style clients and MQTT for the unified namespace. The broker archives selected namespaces into the historian (PostgreSQL); the shopfloor dashboard is a read-only ISA-95 Level 2 consumer of that data and issues commands exclusively over the MQTT command channel.

Design rule — the dashboard never writes machine state directly. Every actuation (start/stop, maintenance, demo scenarios) is a broker-mediated command with an acknowledgement on mes/commands/response, keeping a full audit trail.

Adjacent IT systems (Level 3–4 boundaries)

Two enterprise systems sit at defined integration boundaries around this line:

SystemOwnsExchange with the line / MES
ERP (Level 4)Production orders, purchasing, inventory valuation, costing ↓ order release · ↑ completion confirmations, per-lot consumption (backflush), scrap valuation
WMS (Level 3, sibling of the MES)The substrate vault: goods receipt of supplier lots (where a LOT-… number is born), storage locations, stock counts, picking ↓ picking order fulfilment — a lot-stamped box issued to AGV-D · ↑ material calls (low-threshold events, §8), consumption per lot, vault reconciliation (issued = consumed + remaining)

The WMS hand-over point is the material delivery queue: a press's low-material event becomes a picking order; the issued box arrives carrying its lot number and is mounted through the materialSetup transaction (§5). Both boundaries are exercised by the simulator in this environment; the contracts are unchanged when real ERP/WMS systems connect.

2Equipment model & ISA-88 states

The production unit is the sheet — security paper carrying 45 notes in a 5×9 layout. Sheets flow strictly B010 → B070; single notes exist only after the cut at B070. Defective sheets are always destroyed (shredded) — the line has no rework path.

Process description — the routing of one sheet

The routing is a fixed, linear gamme — one entry point, seven operations in mandatory order, no alternative routes and no rework loop. Each operation adds one security layer to the sheet and consumes one unit of its assigned material:

OpStationProcess — what physically happens to the sheetMaterial inCycle
10B010Sheet feed & substrate check. A blank sheet is picked from the vault-issued pallet. The watermark and the embedded security thread are already in the substrate (from the paper mill); the station gauges thickness and verifies watermark and thread position against register before releasing the sheet into the line.security_paper30 s
20B020Offset "Simultan" printing. The background artwork is printed on both faces in a single pass through opposed blanket cylinders — this is what guarantees perfect front/back register (the see-through motifs that must align on a genuine note).offset_ink45 s
30B030Silk-screen OVI. A flat screen deposits the optically variable ink patch — a thick (~18 µm) layer whose colour shifts with viewing angle. Deposit thickness and shift angle are what make the effect work.ovi_ink60 s
40B040Hot-foil / OVD application. A heated die (~105 °C) presses the holographic stripe from the foil web onto every note position; adhesion and patch position are checked on the fly.foil_roll50 s
50B050Intaglio printing. Bottleneck The engraved plate is inked, its surface wiped clean, then the sheet is pressed against it at ~900 kN — the paper is drawn into the engraving, producing the raised, tactile print you can feel on a genuine note. Slowest and most valuable operation; plate wear is the line's dominant loss.intaglio_ink90 s
60B060Numbering & varnish. Letterpress numbering boxes stamp two serial numbers on each of the 45 notes; a protective varnish coat is then applied over the whole sheet.numbering_ink + varnish55 s
70B070Inspection, cut & pack. Cameras inspect all 45 notes individually; the sheet is guillotine-cut into single notes, which are banded into 100-note packs and released to the cash vault.banding_tape70 s

Routing rules. Entry only at Op 10; sheets cannot skip, repeat or reorder operations — the work-op id (10…70) in every transaction encodes the position in the gamme. There are exactly two exits: good sheets leave at Op 70 to the cash vault as banded packs, and failing sheets leave at whichever operation caught the defect, routed to the shredder (see Quality gates below). A sheet that leaves early therefore has a genealogy that is complete up to and including its exit point.

Every station runs the same ISA-88-style state machine, exposed identically on both interfaces:

IDLE → LOADING → READY → RUNNING → COMPLETE → UNLOADING → IDLE
                              │
                              ├→ FAULT        (auto-recovery, reason-coded)
                              ├→ MAINTENANCE  (planned, every 200 cycles or on command)
                              ├→ SETUP        (product changeover)
                              └→ BREAK        (shift calendar — planned pause, not downtime)

The shift calendar (3×8, breaks per shift) follows the wall clock. During a break a station finishes the sheet in flight, then holds in BREAK — consumers must not count this as fault downtime.

Manufacturing operating model — flow logic

The line runs one-piece flow: each station holds exactly one sheet at a time. On completion the sheet is passed to the next station's inbound queue and is picked up as soon as that station returns to IDLE. There are no inter-station buffers by design — WIP between stations is therefore small, visible (queue depth per station in the WIP feed) and self-limiting: an upstream station simply waits when its successor is busy.

Takt & line balancing

The intaglio press B050 (90 s) is the pacemaker: the line can never exceed 40 sheets/h ≈ 1,800 notes/h regardless of how fast the other presses run. Station utilisation against that takt explains the idle time consumers will observe — it is structural, not a fault:

StationCycleUtilisation vs taktBehaviour at takt
B01030 s33 %Waits most of the cycle — feeds on demand
B02045 s50 %Waits ~half the takt
B03060 s67 %Comfortable margin
B04050 s56 %Comfortable margin
B05090 s100 %Pacemaker — any B050 stop is lost line output
B06055 s61 %Comfortable margin
B07070 s78 %Second-highest load — watch after any B050 speed-up

Consequence for KPI consumers: an hour of B050 downtime costs the line a full hour of output; an hour of B010 downtime may cost nothing (it catches up within its idle margin). Loss accounting should always be read against the pacemaker.

Quality gates & scrap routing

Every station is a quality gate: the pass/fail verdict is made at operationComplete from that station's three measured parameters. A failing sheet exits the flow immediately at the station that caught it and is routed to the shredder — no downstream value is ever added to a defective sheet, and the failing station, parameter and active material lot are recorded in the same event. First-pass yield is therefore computed per gate and compounds across the seven gates to the line FPY; finished output is counted at B070 only (good sheets × 45 = good notes).

Operating regime

Production runs 3×8 (morning / afternoon / night) with fixed in-shift breaks: stations finish the sheet in flight then hold in BREAK (planned time — see above). Maintenance is twofold: planned every 200 cycles per station (short, counted as planned downtime) and corrective on faults, with reason-coded recovery times — the intaglio plate change (~15 min) being the dominant one. Material replenishment (§8) runs continuously and independently of the production takt; a starved station holds in place and raises a critical alert rather than passing an unprocessed sheet.

3OPC-UA server

Endpoint: opc.tcp://<host>:4844/banknote (anonymous, demo profile). One folder per station under the banknote object; identical node set across stations. Node ids are server-assigned numeric (ns=1;i=…) — browse from Objects/banknote rather than hard-coding ids.

NodeTypeAccessMeaning
StateStringRISA-88 state name
CycleTimeDoubleR/WEffective cycle time (s)
SpeedMultiplierDoubleR/W0.1 – 10.0 line-speed factor
PartsProduced / PartsDefective / PartsScrap / PartsReworkInt32RSheet counters (rework is always 0 on this line)
OEEDoubleRStation OEE (A×P×Q)
InputUniqueStringRSerial of the sheet on station
FaultReasonCodeStringRActive reason code, empty if none
MaintenanceNeeded · CyclesSinceLastMaintenanceBool · Int32RPlanned-maintenance window
InputMaterialLot / InputMaterialBox / InputMaterialRemainingString · String · Int32RActive material lot at the station
ProcessParameters/<param>/{Nominal, UpperLimit, LowerLimit, Unit}Double/StringRSpec limits (see §7)
Measurements/<param>DoubleRLast measured value
DataCollection/{LastRecord, RecordCount}String · Int32RLast full record as JSON

4MQTT namespace (UNS)

Broker mqtt://<host>:1883, JSON payloads, QoS 0. The banknote/# namespace is part of the archived filter set — every message below lands in the historian.

TopicCadenceContent
banknote/{B010…B070}/statuson state changeState, cycle, counters, sheet serial
banknote/{B010…B070}/measurementsper sheetMeasured values for that sheet
banknote/{B010…B070}/transactionper eventMES transactions (§5)
banknote/{B010…B070}/materialSetupper lot changeNew box/lot mounted
banknote/line/summary2 sLine KPIs: OEE, FPY, WIP, bottleneck, goodNotes
mes/banknote/state2 s + on changeLine RUNNING/STOPPED + station snapshot
mes/alertsper eventFaults, quality, material-low, shift events (shared)
mes/materials/status2 sAll stations' active boxes incl. B010–B070
agv/status2 sFleet snapshot — AGV-D under fleet.D (not archived; the fleet snapshot is mirrored into an archived logistics feed)

5Data contracts (payloads)

Transactions follow an MES-style function model: operationStart, operationComplete, operationStop, saveDataCollection, scrapPiece, materialSetup (reworkPiece never occurs on this line).

Station status — banknote/B050/status

{ "state": "RUNNING", "cycleTime": 90, "partsProduced": 26,
  "partsScrap": 0, "partsRework": 0, "inputUnique": "BNK-20260723-0408569" }

Operation complete — banknote/B050/transaction

{ "function": "operationComplete", "station": "B050", "workOp": 50,
  "inputUnique": "BNK-20260723-0408569", "result": "PASS",
  "measurements": {
    "reliefHeight":  { "value": 61.2, "unit": "µm", "nominal": 60, "tolerance": 12, "inTolerance": true },
    "platePressure": { "value": 903.5, "unit": "kN", "nominal": 900, "tolerance": 60, "inTolerance": true },
    "wipingResidue": { "value": 0.8,  "unit": "%",  "nominal": 1.0, "tolerance": 0.8, "inTolerance": true } },
  "actualCycleTime": 90.2, "targetCycleTime": 90,
  "timestamp": "2026-07-23T09:31:04.512Z" }

Scrap (shred) — banknote/B050/transaction

{ "function": "scrapPiece", "station": "B050",
  "inputUnique": "BNK-20260723-0381809",
  "reason": "Intaglio relief height out of spec — plate wear", "totalScrap": 3 }

Material setup — banknote/B030/materialSetup

{ "function": "materialSetup", "station": "B030",
  "boxId": "BOX-412-20260723", "lotNumber": "LOT-OVI-20260723-408610",
  "materialType": "ovi_ink", "quantity": 40,
  "source": "AGV", "agvTripId": "MTRIP-078" }

6Identification & traceability

ObjectFormatExample
Sheet serialBNK-YYYYMMDD-#######BNK-20260723-0408569
Material lotLOT-<CODE>-YYYYMMDD-###LOT-OVI-20260723-408610
Material boxBOX-###-YYYYMMDDBOX-412-20260723
AGV tripMTRIP-###MTRIP-078

One serial per sheet, assigned at B010 and carried through every transaction and measurement. The genealogy of a sheet therefore contains: all seven station visits with timestamps and cycle times, every measured value against its spec limits, the verdict per station, and the material lot active at each station when the sheet passed — enabling descending lot trace (which sheets consumed lot X) and ascending trace (which lots are in sheet Y). Sequence numbers are day-seeded, so restarts never reissue a serial.

7Quality model & process specs

Three parameters per station, Gaussian behaviour around nominal, spec = nominal ± tolerance. An out-of-tolerance sheet is scrapped — 100 % shred, no rework. SPC (Cp/Cpk) is computed downstream from the measurement stream.

StationParameterUnitNominal± Tol
B010sheetThicknessµm1158
watermarkRegistrationmm00.5
threadPositionmm00.8
B020frontBackRegisterµm040
colorDeltaEΔE0.80.6
inkFilmThicknessµm2.50.5
B030oviLayerThicknessµm183
colorShiftAngle°304
screenRegisterµm060
B040foilAdhesionN122
patchPositionµm0150
stampTemp°C1056
B050reliefHeightµm6012
platePressurekN90060
wipingResidue%1.00.8
B060numberRegisterµm080
inkDensityOD1.450.15
varnishThicknessµm3.00.6
B070defectDensitydef/sheet0.50.5
cutAccuracymm00.15
bandTensionN253

Fault reason codes follow the plant library (MECH, ELEC, TOOL, MAT, SENS, HYD, THERM, CALIB, SOFT) with station-specific weightings — plate wear (TOOL, ~900 s recovery) dominates the intaglio press; numbering-box jams (MECH) dominate B060; vision faults (SENS) dominate B070.

8Material & AGV logistics

Each station consumes one unit of its material per sheet. When a box crosses its low threshold, a delivery is queued and AGV-D (dedicated to the secure hall, prefix B) executes a vault-escorted run: MOVING_TO_WAREHOUSE → LOADING_MATERIAL → MOVING_TO_STATION → UNLOADING_MATERIAL → RETURNING, with opportunity charging below 30 % battery. Every delivery emits a materialSetup transaction carrying the new lot number.

Boundary with the WMS (§1): vault-side inventory — reception of supplier lots, storage locations, stock counts — is WMS territory. The line-side contract stays minimal and stable: a material call goes out, a lot-stamped box comes in. Lot numbers are assigned at goods receipt, never on the line.

StationMaterialLot codeBox qtyLow @
B010security_paperPAPR6015
B020offset_inkOINK8020
B030ovi_inkOVI4010
B040foil_rollFOIL5012
B050intaglio_inkIINK7015
B060numbering_ink + varnish (secondary)NINK · VARN60 · 12015 · 25
B070banding_tapeBAND20030

9Command interface

All commands are published to mes/commands/<name>; acknowledgements arrive on mes/commands/response. Relevant to this line:

CommandPayloadEffect
startLine / stopLine{"line":"banknote"}Manual line control (graceful drain on stop)
adjustSpeed{"line":"banknote","multiplier":1.5}Line-wide speed factor
triggerMaintenance / postponeMaintenance{"station":"B050"}Corrective / deferred maintenance
degradeStation / recoverStation{"station":"B050","rate":0.2}Demo: force / reset a defect rate
injectBadLot{"station":"B030"}Demo: next delivered lot carries a latent defect
materialSetup{"station":"B020", …box}Operator lot change

Commands are subscribed ~30 s after line boot — clients should not send commands during that window (they are lost, by design there is no retained queue).

10Persistence & consuming APIs

The broker's archive group persists banknote/# (together with the mes/# plant namespace) into PostgreSQL: defaultarchive (30-day time series) and defaultlastval (last value per topic, 7-day retention). The dashboard exposes the line read-only:

EndpointServes
/api/status/banknoteLive per-station state incl. sheet serials
/api/line-summary/banknoteOEE, FPY, WIP, goodNotes, bottleneck
/api/stats/* ?line=banknoteProduction, OEE trend, stations, Pareto, cycle times
/api/stoppages?line=banknote · /api/gantt?line=banknoteFault events · state timeline
/api/report/<BNK-serial> · /api/line-serials/banknoteFull genealogy · serial browser
/api/material/status · /api/material/historyLive lots & delivery history
/api/banknote/agvAGV-D telemetry (state, battery, mission, trips)
/api/banknote/start · /api/banknote/stop · /api/controlCommand bridge (POST → MQTT)