Veel organisaties lopen vast bij het aanpassen van verouderde besturingssoftware. De betrouwbaarheid daalt, terwijl elke wijziging meer kopzorgen oplevert. Om concurrerend te blijven is voortdurende doorontwikkeling van machines essentieel. Maar een volledige herbouw is kostbaar en risicovol. Ook Sanovo liep tegen dit dilemma aan bij de besturingssoftware van haar eiersorteermachines. Brisq Automation koos daarom voor een innovatieve aanpak: moderniseren zonder volledige herbouw.
De uitdaging: complexe legacy en nieuwe eisen
De besturingssoftware van de machines van Sanovo is in de jaren ’90 ontwikkeld en in de loop der jaren organisch gegroeid. Functionaliteit werd steeds toegevoegd waar nodig, met als resultaat een grote, monolithische PLC-codebase van meer dan 200.000 regels. Hoewel het systeem zijn werk deed, bracht deze opzet duidelijke beperkingen met zich mee:
- Wijzigingen vergden veel tijd, doordat gedrag verspreid door de codebase lag.
- Kleine aanpassingen konden gemakkelijk nieuwe fouten introduceren.
- Documentatie was beperkt en niet altijd actueel.
- Parallel ontwikkelen met meerdere engineers was nauwelijks mogelijk.
De directe aanleiding voor modernisering was de komst van een nieuwe machinevariant met een dubbele infeed. De bestaande software was volledig opgebouwd rond één infeed, waardoor diepgaande aanpassingen in de hoofdlogica en timingmechanismes onvermijdelijk waren. Tegelijkertijd moest de software backward compatible blijven met alle bestaande machinevarianten (100–600) én na elke wijziging direct inzetbaar zijn binnen parallel lopende projecten. Continu werkende software was daarbij een harde randvoorwaarde; risico’s moesten tot een minimum worden beperkt.
De aanpak: gecontroleerd moderniseren in stappen
Een volledige herbouw werd bewust uitgesloten. Die zou kostbaar en risicovol zijn en verborgen functionaliteit uit de bestaande software kunnen missen. Daarnaast zou vereiste kennis opnieuw moeten worden opgebouwd. Daarom koos Brisq voor een stapsgewijze moderniseringsaanpak binnen de bestaande codebase. Geen big bang, maar gecontroleerde vooruitgang met continu werkende software.
Brisq bracht structuur aan door logische functionele onderdelen te identificeren en deze af te bakenen met duidelijke verantwoordelijkheden en interfaces. De aanpak bestond onder andere uit:
- Encapsulation om afhankelijkheden te beperken en gedrag te isoleren.
- Lean documentation, gericht op kernfunctionaliteit, interacties en hoofdgedrag.
- Toepassing vanhet Template Method Pattern om structuur en gedrag te standaardiseren.
- Introductie van automatische unit tests per module.
Parallel aan het modulaire ontwerp werd de software continu getest op bestaande machines, zodat functionaliteit na iedere stap volledig operationeel bleef.
De grootste uitdaging lag in de zogenaamde main module, waarin kritische timinglogica zat voor onder andere servo-aansturing, detectie van vuile eieren en de timing van valmomenten en uitval via luikjes. In samenwerking met de oorspronkelijke ontwikkelaar werd deze logica zorgvuldig opgesplitst en ondergebracht binnen verschillende lagen van de nieuwe hiërarchie, zonder het gedrag van de machine te veranderen.
Het resultaat: schaalbaar, beheersbaar en toekomstvast
De gekozen aanpak leverde duidelijke voordelen op:
- Continu werkende software
Doordat modules afzonderlijk werden ontwikkeld en geïntegreerd, bleef de software na iedere stap volledig operationeel. Dit verlaagde risico’s en maakte een flexibele planning mogelijk.
- Behoud van bestaande functionaliteit
Door bestaand gedrag zorgvuldig over te nemen, bleven ook niet-gedocumenteerde maar essentiële functies behouden. Bewuste wijzigingen of verwijderingen vonden gecontroleerd plaats, met afstemming richting de eindgebruiker.
- Altijd in sync met lopende projecten
Omdat binnen de bestaande repository werd gewerkt, bleven alle parallelle projecten continu op elkaar afgestemd. Grote integraties achteraf waren niet nodig.
- Flexibiliteit in prioriteiten
De modulaire structuur maakt het mogelijk om functionaliteiten te versnellen, uit te stellen of te herprioriteren zonder verstoring van lopende werkzaamheden.
- Kennisontwikkeling binnen het team
Brisq begeleidde Sanovo bij een geleidelijke overgang naar objectgeoriënteerde technieken. Waar aanvankelijk terughoudendheid bestond, kwam er steeds meer begrip en gewenning door praktische toepassing, zoals het gebruik van strategy patterns in opvolgende projecten, en zag men steeds meer de voordelen.
Samenwerken aan duurzame modernisering
Dit project laat zien dat verouderde besturingssoftware geen blokkade hoeft te zijn voor innovatie. Met een doordachte aanpak, technische diepgang en oog voor risico’s is modernisering mogelijk zonder stilstand of volledige herbouw.
Brisq Automation heeft voor Sanovo bestaande code geherstructureerd en tegelijk een toekomstbestendige softwarebasis gecreëerd: modulair, onderhoudbaar en schaalbaar naar nieuwe machinevarianten. Dankzij de combinatie van modularisatie, lean documentation en beproefde design patterns, bedient deze basis zowel de nieuwe als bestaande machinevarianten. De aanpak vergrootte de wendbaarheid, minimaliseerde risico’s en versterkte het ontwikkelteam in moderne softwareprincipes. Een krachtig voorbeeld voor machinebouwers en industriële automatiseerders die willen blijven doorontwikkelen zonder onnodige risico’s.
Wil jij ook samen met Brisq werken aan technische of industriële automatiseringsoplossingen? Neem dan contact met ons op.