
Object-Oriented Programming in PLC-software: waarom het steeds vaker wordt toegepast
In de afgelopen jaren zijn PLC-projecten behoorlijk veranderd. Machines en installaties worden steeds complexer en de hoeveelheid software neemt alleen maar toe. PLC-software moet daarom niet alleen goed functioneren, maar ook beheersbaar, onderhoudbaar en schaalbaar blijven.
In de softwarewereld is Object-Oriented Programmeren (OOP) al decennialang een veelgebruikte manier om complexe systemen op te bouwen. Concepten zoals encapsulatie, overerving en polymorfisme helpen om software overzichtelijk te houden en functionaliteit beter herbruikbaar te maken.
Binnen de industriële automatisering heeft OOP echter relatief laat zijn intrede gedaan. Met de komst van de IEC 61131-3 standaard (3e editie) en moderne PLC-platformen zoals Beckhoff TwinCAT 3, Codesys en Simatic AX werd het mogelijk om OOP binnen PLC-omgevingen toe te passen.
Hoewel deze platformen uitgebreide OOP-functionaliteit bieden, blijkt het toepassen ervan in de praktijk vaak lastiger dan verwacht. Veel PLC-programmeurs zijn gewend aan meer traditionele programmeerstructuren. Het toepassen van objectgeoriënteerde principes vraagt daarom vaak om een andere manier van denken.
OOP binnen PLC’s
Met de moderne PLC-platformen zijn OOP-concepten inmiddels volledig ondersteund. Denk aan zaken zoals classes, interfaces, overerving en methodes.
In de PLC-wereld vertalen deze concepten zich vaak naar functieblokken die als classes functioneren. Zo’n functieblok bevat niet alleen variabelen, maar ook methodes en properties. Daarmee kun je gedrag en data netjes scheiden.
Dat klinkt misschien abstract, maar in de praktijk zorgt het vooral voor een betere structuur in de software.
Van losse logica naar modules
Een voorbeeld dat bijna iedere PLC-programmeur zal herkennen is de aansturing van een klep of motor. In een traditionele opzet wordt voor varianten de logica voor zo’n component vaak meerdere keren gekopieerd en aangepast. Iedere klep heeft bijvoorbeeld zijn eigen stukje code met open- en sluitlogica, foutdetectie en statusinformatie. Zolang het om een paar varianten gaat werkt dat prima. Maar wanneer er veel varianten zijn wordt het al snel lastig om alles overzichtelijk te houden. Daarnaast zie je ook vaak functionaliteit wat in iedere control module terugkomt. Als je dit iedere keer kopieer wordt het onderhoud vrij lastig.
Met Object-Oriented Programming kan dit op een andere manier worden aangepakt. We maken eerst een basis module, bijvoorbeeld voor een klep. In deze module zit de generieke functionaliteit: openen, sluiten, status bepalen en eventuele foutafhandeling. Vervolgens kunnen we hier varianten op maken. Denk bijvoorbeeld aan een klep met meerdere feedbacksignalen of een variant met analoge positie-terugkoppeling. Deze varianten bouwen voort op dezelfde basis en voegen alleen de specifieke logica toe die voor die uitvoering nodig is.
Het resultaat is dat veel functionaliteit slechts één keer wordt geschreven, maar op meerdere plekken gebruikt kan worden.
Software die meegroeit met de installatie
Een groot voordeel van deze manier van werken is dat software beter kan meegroeien met een installatie. Wanneer er later nieuwe varianten of uitbreidingen nodig zijn, hoeft de basisstructuur vaak niet aangepast te worden. In plaats daarvan kan er eenvoudig een nieuwe uitbreiding worden gemaakt die voortbouwt op bestaande functionaliteit. Dat maakt projecten niet alleen overzichtelijker, maar ook beter onderhoudbaar. Engineers die later aan een project werken kunnen daardoor sneller begrijpen hoe de software is opgebouwd.
Even wennen voor PLC-programmeurs
Tegelijkertijd merken we dat OOP voor veel PLC-programmeurs in het begin even wennen is. Traditionele PLC-programma’s zijn sterk gebaseerd op de bekende scan-cyclus: inputs lezen, logica uitvoeren en outputs schrijven. Object-Oriented Programming voegt daar een extra softwarestructuur bovenop. Dat vraagt om een andere manier van denken. Je bent minder bezig met losse stukjes logica en meer met de architectuur van het systeem.
Wanneer die omschakeling eenmaal gemaakt is, blijkt deze manier van werken in grotere projecten juist veel rust en overzicht te geven.
Onze ervaring in PLC-projecten
Binnen Gain passen we deze manier van werken inmiddels in veel projecten toe. Op basis van die ervaring hebben we in de loop der jaren een eigen softwareframework ontwikkeld voor Beckhoff-systemen. Dat framework helpt ons om PLC-software modulair op te bouwen en sneller nieuwe projecten op te starten.
Om die reden hebben we het framework ook beschikbaar gemaakt op GitHub, zodat anderen het vrij kunnen gebruiken.
Gain-Automation-Technology/Gain-Standard-Beckhoff-Framework
Geplaatst April 2026
Heeft dit blog je geïnspireerd?
Wil je werken bij Gain of weten of wij ook jou kunnen helpen bij jouw verbetertraject? Neem gerust contact met ons op.


