Development 3OT Software Technology
Beckhoff

De 3OT-softwarebibliotheek die ons sneller laat bouwen​

Bij 3OT hebben we meer dan 20 jaar ervaring met PLC-software en hardwareprojecten. We hebben allerlei soorten installaties voorbij zien komen. Wat ons opviel, is dat we vaak dezelfde dingen opnieuw programmeerden. Daarom hebben we dit aangepakt, en het is nu één van de grootste troeven van 3OT.

Inhoud

Elk project betekent dubbel werk

Elk automatiseringsproject heeft iets gemeen: een reeks sensoren, motoren, pompen en meer werken samen in een proces. Daarbij worden de sensoren uitgelezen om te bepalen wat we gaan doen met de motoren. We mogen bijvoorbeeld pas beginnen mixen als de tank een bepaald gewicht of niveau heeft bereikt, of we moeten sneller pompen op basis van de snelheid van een andere machine.

Naast het proces goed laten verlopen, is het ook belangrijk om acties te stoppen. Bijvoorbeeld, als de tank leeg is, moet de pomp stoppen om schade te voorkomen. Dit kan mechanische schade zijn, maar ook het voorkomen van bijvoorbeeld het overvullen van een tank en het lekken van schadelijke stoffen.

Om met al deze “edge cases” rekening te houden, moet de programmeur de nodige logica schrijven in de PLC-code. Dit voorkomt onvoorziene situaties en zorgt voor veilige opvang als deze zich voordoen. Dit is echter niet altijd vanzelfsprekend en leidt vaak tot chaotische en ingewikkelde code.

Dus het gaat niet alleen over het proces, maar ook over het beschermen van de installatie en de veiligheid!

Waarom een gestandaardiseerde bibliotheek maken?

Zoals hierboven genoemd, zijn alle delen met elkaar verbonden (het niveau van de tank en de pomp) met complexe logica. Maar ook in elk component kunnen zich onregelmatigheden voordoen. Bijvoorbeeld, een klep kan verstopt raken of een sensor kan ontkoppeld zijn, wat een waarschuwing voor de operator vereist. Met deze vereisten is het een uitdagende taak om de code voor een PLC-project ordelijk en overzichtelijk te houden.

3OT is deze uitdaging aangegaan en heeft een modulaire aanpak bedacht voor onze PLC-projecten, zodat we deze gestructureerd en herbruikbaar kunnen opbouwen. Hierdoor hoeven we niet steeds weer opnieuw vanaf nul te beginnen. We kunnen rekening houden met alle situaties die zich kunnen voordoen in een installatie, zowel intern (geblokkeerde klep) als extern (laag tankniveau waardoor de pomp niet kan draaien).

Het plan

Na lang nadenken zijn we tot de volgende aanpak gekomen. We beginnen altijd met een basisopzet, de boilerplate die nodig is om projecten op te starten. Hierbij maken we gebruik van GIT, services in Docker-containers en een standaardbibliotheek met implementaties van alle apparaten die we willen bedienen (zoals kleppen, motoren en sensoren). Hierdoor kunnen we sneller configureren en opleveren.

Uiteraard zijn er altijd projectspecifieke vereisten die we niet in de standaardbibliotheek kunnen opnemen, maar die we wel kunnen onderbrengen in applicatiespecifieke bibliotheken.

Het resultaat

100+ modules, duizenden regels code en een paar jaar later is onze bibliotheek beter dan ooit. Projecten worden nu in een razendsnel tempo opgestart. Waar voorheen de ins en outs van PLC-code beheerd moesten worden, kunnen we nu in een paar uur, met slechts een beetje programmeerkennis, complexe projecten opzetten, simuleren en deployen.

We hebben zelfs ons team uitgebreid om de opzet van grote projecten voor te bereiden! Daarnaast is alle code in elk project gestandaardiseerd, wat het onderhoud en de complexiteit van de code sterk vermindert.

Wil je meer weten over onze aanpak of onze uitgebreide bibliotheken? Aarzel niet om contact met ons op te nemen.