Of een AI-project op fabrieksdata slaagt, wordt meestal beslist bij de eerste export, ruim voordat iemand een model traint. Uit de historian moeten de opgeslagen waarden met kwaliteitsvlaggen en UTC-tijdstempels komen, de compressie-instellingen van elke tag, het assetpad dat elke tag betekenis geeft, en de onderhouds-, batch- en labgegevens van dezelfde assets over dezelfde maanden. Een export van geïnterpoleerde gemiddelden in lokale tijd, zonder assetsleutel, is achteraf niet te repareren.
Dit artikel is voor de IT-manager, OT- of automatiseringsmanager en datalead van een Nederlandse of Vlaamse fabriek met 250 tot 5.000 medewerkers, in voedingsingrediënten, chemie, tankopslag of machinebouw. Crux Digits doet het datawerk van export tot werkend model, naast uw OT-team en systeemintegrator; het OT-netwerk, de historian en de fabrieks-IT beheren wij niet.
Wat moet een fabriek uit de historian exporteren vóór een AI-project?
Vier dingen: opgeslagen waarden met kwaliteitsvlaggen, het assetmodel achter elke tag, event- en batchcontext, en labels uit onderhoud en lab. Alleen de eerste twee staan in de historian: AVEVA PI System, dat AVEVA in maart 2021 met OSIsoft overnam, Ignition van Inductive Automation of een Siemens WinCC-systeem. De rest zit in het MES, in SAP PM of Ultimo en in het LIMS.
In PI heet het assetmodel Asset Framework (AF). AVEVA's licentieschema beschrijft PI Data Archive als het onderdeel van PI Server dat de tijdreeksen opslaat. Een AF-elementtemplate bevat attribuuttemplates waarvan de PI point data reference de tag aanmaakt of ernaar verwijst, zodat het elementpad zegt dat P101_TT03 de lagertemperatuur is van pomp P101 op lijn 2. Vraag dat pad bij elke tag op; zonder pad ontcijfert het datateam wekenlang tagnamen met uw procesingenieurs.
De use case bepaalt de omvang. Voorspellend onderhoud vraagt trilling, temperatuur, stroom en draaiuren per asset plus storingshistorie (predictive maintenance). OEE-verliesanalyse vraagt toestanden, tellingen en stopredenen per lijn; dat staat op onze pagina over OEE per lijn. Kwaliteitsvoorspelling vraagt proceswaarden plus labuitslagen, en energiemanagement vraagt metertags op de juiste resolutie. Kies eerst één assetgroep en één vraag.
Hoe wissen compressie- en exceptie-instellingen in PI het signaal dat een model nodig heeft?
PI slaat een waarde alleen op als die genoeg afwijkt van de vorige, dus de afwijkingsinstellingen bepalen welk signaal overblijft. Exception reporting draait in de interface, vóór de data de Snapshot bereikt. Compressie draait nog eens op weg naar het archief, met een eigen afwijking (CompDev), minimale tijd (CompMin) en maximale tijd (CompMax).
AVEVA adviseert een compressieafwijking van 1 of 2 procent van de span voor de meeste debieten, drukken en niveaus, 1 of 2 graden voor temperaturen, een exceptieafwijking die minstens een factor 2 kleiner is, en een maximale tijd van ongeveer één dienst, bijvoorbeeld 8 uur. Dat past bij trends en rapportage. Het past niet bij een model dat zoekt naar een lagertemperatuur die in een week een halve graad oploopt: bij een compressieafwijking van 2 graden wordt die drift een bijna rechte lijn. AVEVA stelt dat Data Archive nooit zelf events maakt, het filtert alleen. Wat weggefilterd is, is weg.
Ignition doet hetzelfde onder andere namen. De tag history-instellingen kennen een Sample Mode (On Change, Periodic of Tag Group), een Deadband Mode, een Historical Deadband en een Deadband Style; de stijl Analog gebruikt de deadband als compressiedrempel in een aangepast sliding-window-algoritme. De eerste vraag aan uw OT-team is dus niet "mogen we de data", maar "wat zijn CompDev, ExcDev en Step voor deze tags, of de deadband-instellingen, en wanneer zijn ze voor het laatst gewijzigd".
Moet de export opgeslagen of geïnterpoleerde waarden bevatten?
Opgeslagen waarden, want een geïnterpoleerde waarde berekent de query en is nooit gemeten. Het Step-attribuut van PI bepaalt hoe een query het gat vult. Met Step uit geven 101,0 om 12:00:00 en 102,0 om 12:01:00 om 12:00:30 de waarde 101,5; met Step aan 101,0. AVEVA adviseert geen Step voor continue signalen zoals debietmeters en wel Step voor labdata en batchgewichten. Een verkeerd ingestelde tag levert aannemelijke waarden die niet kloppen.
Hersample in uw eigen pijplijn, waar de regel is vastgelegd. Stream GetRecorded in PI Web API levert gecomprimeerde waarden met een UTC-tijdstempel en de vlaggen Good, Questionable en Substituted. Twee standaardwaarden zetten scripts op het verkeerde been: de starttijd staat op één dag terug en maxCount op 1000 waarden, dus een slordig script levert één dag, of 1000 waarden, van een verzoek over twee jaar. In OPC UA draagt elke DataValue een waarde, een statusCode, een sourceTimestamp en een serverTimestamp; wie de statuscode weglaat, verliest het gegeven dat de sensor defect was.
Hoe verstoren tijdzones en zomertijd een export van fabrieksdata?
De Europese zomertijd eindigde op zondag 25 oktober 2026 om 01:00 GMT, dus gisteren bestond het lokale uur van 02:00 tot 03:00 twee keer. Richtlijn 2000/84/EG legt de wissel vast op de laatste zondag van maart en van oktober. Een export in lokale tijd zonder offset bevat dus elk jaar in oktober een uur dubbele tijdstempels en in maart een ontbrekend uur, en elke koppeling met MES of SAP PM op tijdstempel zet events in het verkeerde uur of laat ze vallen.

De bronnen werken al in UTC. OPC UA schrijft een sourceTimestamp in UTC voor, de Sparkplug-specificatie eist UTC in milliseconden sinds de epoch, en PI Web API geeft tijdstempels met een Z terug. Het risico zit aan de randen: PI Web API leest een tijd zonder offset in de tijdzone van de eigen server, MES-roosters zijn lokaal, en de storingsstart in SAP PM is wat de planner intypte. De regel: elk veld in UTC, ISO 8601 met offset, en pas in het rapport één keer omgezet naar lokale tijd.
Waar komen de storingslabels en de batchcontext vandaan?
Storingen staan in SAP PM of Ultimo als onderhoudsmeldingen, niet in de historian, dus labels vragen een eigen export. In SAP PM bestaan de storingsgegevens uit begin en einde van de storing plus de vlag Breakdown, en het systeem berekent daaruit de stilstand. De melding hangt aan een functionele locatie of een equipment. Ultimo, het Nederlandse pakket voor assetmanagement dat IFS in 2022 overeenkwam over te nemen, legt hetzelfde soort gegevens vast. U hebt een koppeling nodig van functionele locatie of equipmentnummer naar AF-element, en die bestaat zelden tot iemand haar bouwt.
Het zijn zwakke labels. De storingsstart is het moment waarop de storing werd opgemerkt, niet waarop het lager begon te slijten, en correctieve, preventieve en inspectieorders delen één tabel, dus exporteer het meldingstype en de Breakdown-vlag mee. Een LIMS-uitslag heeft een monstertijd, een uitslagtijd en een monsterpunt; alleen de monstertijd valt samen met de procesdata. Hetzelfde geldt voor CCP-metingen achter HACCP-afwijkingen.
Batchcontext laat een model productie van reiniging onderscheiden. Een event frame in AF heeft een naam, starttijd, eindtijd, attributen en verwijzingen naar AF-elementen, zodat een batch, een CIP-cyclus of een stilstand een doorzoekbaar record wordt. Zonder event frames doen de order- en batchtabellen van het MES dat werk. Zonder beide leert een model op een vullijn dat cleaning-in-place een afwijking is.
Hoe verlaat fabrieksdata het OT-netwerk zonder dat er een weg naar binnen ontstaat?
Via een conduit die uw OT-team beheert, met de zones en conduits van IEC 62443 en een DMZ zoals NIST die beschrijft. ANSI/ISA-62443-3-2 definieert een conduit als een logische groepering van communicatiekanalen met gemeenschappelijke beveiligingseisen die twee of meer zones verbindt, en eist per zone en conduit een risicobeoordeling en een doelbeveiligingsniveau. NIST SP 800-82 Rev. 3 laat alle communicatie tussen kantoor- en operationeel niveau via diensten in een DMZ lopen, en noemt een data-diode op die grens als optie waarmee verkeer het OT-netwerk wel verlaat maar niet binnenkomt.
In de praktijk is de route een van drie: een historian-replica in de DMZ, AVEVA's PI to CONNECT-agent naar CONNECT data services, of een edgelaag zoals Ignition, Litmus Edge of Siemens Industrial Edge met WinCC Unified die MQTT met Sparkplug B publiceert, dat ook ISO/IEC 20237 is. Sparkplug rapporteert bij uitzondering en filtert dus ook, en het NBIRTH-bericht noemt elke metric met naam, datatype en actuele waarde: een bruikbare taginventaris. Een eerste historische export vraagt een alleen-lezen kopie in één richting, nooit een nieuwe weg naar binnen in het besturingsnetwerk.
Hoeveel data is een realistische eerste export?
Rekenvoorbeeld met benoemde aannames: 1.500 tags op één lijn, 18 maanden op een raster van 10 seconden, geeft ongeveer 7,1 miljard waarden. Dat is 1.500 tags maal 8.640 samples per dag maal 548 dagen. Als CSV-regels met tag, tijdstempel, waarde en kwaliteit van aangenomen 60 bytes is dat ongeveer 426 GB; via Stream GetRecorded met de standaard maxCount van 1000 ruim 7 miljoen verzoeken. Parquet neemt veel minder ruimte in, maar hoeveel minder hangt af van de signalen.
Meet dus eerst: exporteer één week opgeslagen waarden voor de volledige taglijst en tel de rijen. Dan ziet u wat compressie bewaarde en wat 18 maanden wegen. Begin daarna smal. 150 tags op één assetgroep over 12 maanden laat zien of de data de vraag kan dragen, en twaalf maanden bevatten altijd beide klokwisselingen en een volledige seizoenscyclus.
Wat staat er in de exportspecificatie, en waarom mislukken eerste exports?
De specificatie noemt de tags, hun historian-instellingen, opgeslagen waarden in UTC, de contextgegevens, de labelbronnen, een assetkoppeling en een manifest. In detail: de taglijst met AF-pad, omschrijving, eenheid, span en zero. Per tag de exceptie- en compressie-instellingen en Step, of in Ignition de sample mode en deadband-instellingen, met de datum van de laatste wijziging. Opgeslagen waarden met kwaliteitsvlaggen of OPC UA-statuscodes, nooit geïnterpoleerd of gemiddeld. UTC-tijdstempels in ISO 8601 met offset.
Dan de context: event frames, of order-, batch-, product- en receptgegevens uit het MES met begin en einde; stopredenen en het dienstrooster; SAP PM- of Ultimo-meldingen voor dezelfde assets met type, begin en einde van de storing, Breakdown-vlag, functionele locatie en equipmentnummer; LIMS-monsters met monsterpunt, monstertijd, uitslagtijd, uitslag en grenzen. Voeg een koppeltabel toe van AF-element naar functionele locatie, MES-lijn en LIMS-monsterpunt, een logboek van sensorvervangingen en kalibraties, en een manifest met rijtellingen per tag per maand, zodat geen afkapping onopgemerkt blijft.
De drie redenen waarom een eerste export onbruikbaar is, in de volgorde waarin wij ze controleren. Eén: geïnterpoleerde of gemiddelde waarden op een grof raster met onbekende compressie, zodat niemand gemeten van berekend kan onderscheiden. Twee: tags zonder assetsleutel, zodat storings- en labgegevens niet te koppelen zijn. Drie: lokale tijdstempels zonder offset, zodat het oktoberuur dubbel staat, het maartuur ontbreekt en koppelingen met SAP PM een half jaar lang een uur verschuiven. De pijplijn die dit laadt en controleert is data engineering, en het is het grootste deel van het project.
Wie doet wat tussen het OT-team, de integrator en Crux Digits?
Uw OT-team en integrator zijn eigenaar van de historian, de instellingen, de conduits en de exportroute; daar komen wij niet aan. Uw IT-afdeling of ICT-partner beheert de landingsplek en de toegang, onderhoud is eigenaar van SAP PM of Ultimo, kwaliteit van het LIMS.
Crux Digits doet het datawerk van export tot werkend model. Wij schrijven de exportspecificatie voor uw fabriek, toetsen de eerste export daaraan (rijtellingen, gaten, kwaliteitsvlaggen, UTC, compressie per tag), bouwen met uw engineers de assetkoppeling en de labelset, en bouwen en testen daarna het model, met vastgelegd wat het wel en niet kan zien. Als compressie het signaal heeft verwijderd dat de use case nodig heeft, zeggen wij dat voordat er een model wordt gebouwd, en krijgt uw OT-team een wijzigingsverzoek voor de tags die ertoe doen. De code en de pijplijn zijn van u.
Hoe wij toegepaste AI-projecten in vaste stappen uitvoeren, leest u op toegepaste AI en ML voor het middenbedrijf.
Laatst bijgewerkt: 26 oktober 2026.
De AI-audit & strategie: in één tot twee weken een gerangschikte lijst van use cases met rendement, en een plan dat van u is.
AI-audit & strategie →


