SCADA-app voor Siemens PLC's

SCADA-app voor Siemens PLC's: van data tot inzicht

Een tijdje geleden stonden we voor de uitdaging om een bestaande productielijn beter te monitoren. De Siemens PLC (S7-1500) produceerde massa's data via OPC UA, maar die bleef grotendeels onbenut. Geen realtime inzicht, geen historiek, geen OEE. Typisch probleem in veel fabrieken. Dus bouwden we er een SCADA-applicatie rond.

SCADA dashboard
SCADA dashboard

Hoe het werkt

De backend is een FastAPI-applicatie in Python die via OPC UA rechtstreeks met de Siemens PLC communiceert. Ze leest onder andere baanposities, alarmen, proceswaarden en zone-statussen uit. Die data gaat naar een PostgreSQL-database, opgesplitst in een auth-database en een datadatabase. Omdat we te maken hebben met tijdreeksen — denk aan duizenden meetpunten per uur — hebben we de databankbewerkingen stevig geoptimaliseerd voor performantie.

De frontend is gebouwd met Nuxt 4 en Nuxt UI. Ze toont dashboards met OEE-berekeningen, uptime/downtime, alarmoverzichten en historische grafieken. Alles live via Server-Sent Events, geen pagina nodig om de data te verversen. Er zit ook een signage-weergave op, voor schermen in de fabriekshal.

OEE dashboard
OEE-dashboard met realtime data

OEE-berekeningen

De OEE wordt per zone berekend en opgeslagen in meerdere granulariteiten: per uur, per shift (ochtend/nacht/dag), per dag, week, maand en jaar. Zowel effectief (echte productietijd) als volgens het uurrooster. De formule is klassiek: beschikbaarheid × prestatie × kwaliteit. Alle ruwe data — alarmduurtijden, baanpassages, up/down-signalen — wordt uit de database gehaald en verwerkt door een rekenmodule die bewust framework-onafhankelijk is gehouden.

Alarmoverzicht
Alarmoverzicht en historiek

Drie modi

De applicatie kent drie manieren van werken. In PLC-modus leest ze live data van de echte Siemens PLC. In simulatiemodus draait ze een ingebouwde simulator, handig voor testdoeleinden of als er nog geen fysieke PLC aangesloten is. En in de gemengde modus genereert ze zelf data én schrijft ze die terug naar de PLC, zodat je het hele systeem end-to-end kunt testen.

Beveiliging

Er is een gebruikerssysteem met rollen (admin, manager, operator).

Signage weergave
Signage-weergave voor de fabriekshal

Waar het draait

De productieversie draait op een embedded device dat in de kast naast de PLC past.

Paul Becue

Manager BQ Systems

Sociale media, telefoon, email en kaart