De uitdaging
PolymerCraft NV — 220 medewerkers, twin-screw compounding plant in het Antwerpse haven-industrieel cluster, 4 Coperion ZSK 70 extruders, 12 grondstof-silo's, 3 jacketed glass-lined modificatie-reactoren (8000 L). Stack vóór de transformatie: Siemens S7-1500F (SIL2-rated reactoren), Allen-Bradley CompactLogix, AVEVA Wonderware InTouch + Historian + Batch Management (S88-conform maar zonder API), LabWare LIMS standalone, Microsoft Dynamics 365. Eén €85K externe R&D digital-twin pilot in 2024 — gestaakt.
De aanhoudende pijn: reactor R-2 yield op SKU-PA66-MB (zwart masterbatch op PA66) zwierf tussen 71% en 94% op identiek recipe. 1 op 4 batches off-spec. €18K verlies per batch (grondstoffen + 3 uur reactor flush + 4 uur DSC wait). Jaarlijks: €280K op één SKU.
De oplossing — 7 stappen
- Connect — Raspberry Pi 5 in IT-rack leest 11 OPC-UA tags read-only (reactor-temp, jacket in/out + flow, head pressure, mixer RPM, catalyst Coriolis flow, in-line viscosity, pH, S88 recipe-ID, S88 phase) en duwt ze via outbound MQTT/TLS naar MonsterMQ op een €5,77/mnd VPS. LIMS-bridge accepteert DSC yield results via webhook.
- Condition — Eenheden normaliseren (m³/h → L/min), deadbands, dedup MES retries. Plus chemistry-specifieke plausibility check:
dT/dt > 10°C/minop reactor-inhoud is fysisch onmogelijk — getagd alssensor_faulten gedropped. - Model — ISA-95 + ISA-S88 master recipes. PA66-MB-V3 draagt
react.exotherm_baseline(peak ΔT 14°C, window 12-16 min na catalyst-injectie, max afwijking +2°C → Solve-trigger) plussolve_titrate_overrides(delta_pct: -12, min_safety_floor_kg_h: 3.0). De beslissingsruimte én de safety floor leven in het model, audit-signed door QA. - Store — MongoDB 7 time-series met 365-dagen retentie (REACH lot-genealogy vereist 12 maanden online queryability), enriched met
batch_id,recipe_id,phase,catalyst_inject_start_offset_s. Sister-collections:batches(S88 records) enlab_results(DSC yield + Mw + bijproducten). - Orchestrate — Zeven N8N workflows.
wf-006-exotherm-watchluistert opphase = react, wacht 12 min, aggregeert de 240s temp/jacket window, vergelijkt met de master recipe's exotherm baseline. Past katalysator-titratie alleen toe als Solve QA-geactiveerd is en de laatste 14 batches allemaal ≥88% yield haalden. - Visualize — Grafana voor process tech en plant manager (per-batch exotherm overlay, lot-genealogy heatmap); Next.js voor R-2 operators. Beide via FastAPI.
- Distribute — FastAPI exposeert 13 endpoints.
POST /api/feed-rate-titrateenGET /api/master-recipe/{id}schrijven de override naar MongoDB en publiceren een retained MQTT command. De edge-subscriber zet dat om in een OPC-UA write naar de R-2 recipe namespace, gegrendeld door hard-coded PLC-side limits in SCL:IF requested < 3.0 THEN actual := 3.0; SafetyFloor := TRUE. De cloud kan de reactor niet onveilig sturen, ongeacht bug, race condition of compromise.
De val (lees dit twee keer)
Na stap 7 had PolymerCraft een prachtige data layer. Tags streamden, ISA-95+S88 gemodelleerd, MongoDB queryable met REACH lot-genealogy gelinkt, Grafana toonde de SKU-PA66-MB exotherm-outlier in heldere kleuren, Slack-alerts vuurden binnen seconden. Audit-ready, demo-able, "we hebben een digital twin en een data layer."
En R-2 yield op SKU-PA66-MB stond nog steeds op 71-94% met 1 op 4 batches off-spec.
Omdat niemand iets besliste. Process tech Sara zag het dashboard, kende het patroon, gaf zelfs een presentatie. QA officer Jeroen dacht — terecht — "als ik autonome catalyst-feed control autoriseer en we krijgen een runaway exotherm, zit ik met IEC 61508 en directieverantwoordelijkheid in mijn schoot."
In gereguleerde chemie is detectie zonder gesloten loop en een verifieerbare safety floor geen controle — het is aansprakelijkheid.
Solve — de loop, gesloten (met IEC 61508 SIL fail-safe)
De Solve vraag: als reactor R-2 een exotherm-peak deviation > 2°C boven de recipe-baseline laat zien binnen 12-16 min na catalyst-injectie, kunnen we dan autonoom de catalyst-flow met 12% titreren via de Coriolis flow setpoint — en bewijzen dat DSC yield boven 90% blijft, terwijl de PLC een hard floor op 3,0 kg/h afdwingt die de cloud niet kan overrulen?
De loop draait autonoom binnen een envelope die QA op firmware-niveau heeft afgetekend. Cloud bug, race condition, compromised credential, runaway agent — niets kan de catalyst-flow onder 3,0 kg/h of boven 8,5 kg/h drijven. Dat is wat de loop closeable maakt in chemie.
Resultaat
| Metric | Voor | Na |
|---|---|---|
| Yield op SKU-PA66-MB (R-2) | 71-94% (drift) | 91% consistent |
| Yield variance (stdev) | 7,8 | 1,4 |
| Off-spec batches | 1 op 4 | 0 op 18 |
| Tijd om "waarom lage yield?" te beantwoorden | 2 dagen CSV-puzzel | 8 seconden |
| Marginale infra-kost jaar 1 | n.v.t. | €165 |
| Jaarlijkse opportunity (één SKU) | onbenut | €280K/jaar |
ROI jaar 1 op alleen PA66-MB-V3: 1700×.
Wat dit bewijst
Open source kan wat een AspenTech ProMV licentie (€85K/jaar) zou doen — maar dat is het proof point, niet de pitch. De villain is de ontbrekende laag waardoor AI faalt in gereguleerde industrieën met echte safety boundaries.
Je kunt alle 7 stappen bouwen en alsnog falen — als Solve niet de regulatoire en aansprakelijkheids-constraints respecteert waar de fabriek onder opereert. In gereguleerde chemie: AI mag het niet eens proberen zonder een data layer die de safety-envelope in de firmware heeft gebakken.
"You're missing one layer — and AI can't fix what it can't understand."
Wil jij ook zulke resultaten?
Plan een gratis AI check van 30 minuten en ontdek welke quick wins er voor jouw bedrijf mogelijk zijn
Plan Gratis AI Check