Wereld van Digital Twins en Programmable Logic Controllers (PLC’s)
Omdat de wereld steeds complexer wordt met producten die bestuurd worden door uiteenlopende software-implementaties, moeten testmethoden het wel kunnen bijhouden.
Digital twins bieden een prachtige mogelijkheid voor het simuleren van fysieke producten zelfs voordat het werkelijke product überhaupt bestaat. Omdat productontwikkeling in dit soort digitale omgevingen plaatsvindt, moeten in deze omgevingen tools en methoden aanwezig zijn die producten kunnen testen en bij voorkeur ook nog op een effectieve manier. Het testen van een product door een menselijke operator is natuurlijk mogelijk, maar in veel gevallen niet haalbaar. Mensen hebben de neiging fouten te maken, de herhaalbaarheid is niet identiek en natuurlijk is de snelheid van het testen doorgaans lager, en dan hebben we het nog niet eens over het werk zelf, dat behoorlijk eentonig kan zijn als dezelfde producten herhaaldelijk moeten worden getest. Om deze redenen biedt automatisering een oplossing voor het testen van software. Met geautomatiseerd testen heeft de software-ontwerpindustrie een krachtige tool in handen die de productkwaliteit op een hoog niveau kan houden.
Tegenwoordig zijn veel industriële machines afhankelijk van PLC-technologie (Programmable Logic Controller). PLC's zijn in vele industriële sectoren in talloze verschillende toepassingen aanwezig. Uiteindelijk komt het ontwikkelen van PLC-software vrij dicht in de buurt van traditionele softwareontwikkeling, hoewel dit misschien geen vaardigheden op het gebied van coderen van de ontwikkelaar vereist. Met betrekking tot kwaliteit bestaat bij beide hetzelfde probleem van het hoge niveau – softwareregressie. Softwareregressie verwijst naar een probleem of bug in het programma dat eerder wel heeft gewerkt maar niet langer werkt als gevolg van de ontwikkeling van nieuwe functies. Deze nieuwe functies hebben doorgaans, om verschillende redenen, de werking van de oudere delen van de softwarecode aangetast. Het belangrijkste doel van het geautomatiseerd testen van software is om deze regressiebugs op te sporen door constant verschillende testen uit te voeren. Enkele andere gebieden waarin het geautomatiseerd testen van software zeer krachtig kan werken, zijn niet-functionele testscenario's, zoals het testen van prestaties of belasting.
Het geautomatiseerd testen van software is geschikt voor vele gebieden
De kracht van moderne geautomatiseerde tools en technologieën voor het testen van software ligt in het feit dat ze in uiteenlopende omgevingen kunnen worden geïntegreerd. Etteplan biedt bijvoorbeeld ontwerpdiensten voor software en hardware en oplossingen op het gebied van automatiseringstechnologieën voor geïntegreerde, cloud-, internet-, mobiele en industriële toepassingen. Daarom is het voor ons logisch dat we ongeacht het technologische gebied de best mogelijke regressietestwerkwijzen toepassen.
Een poosje geleden zijn we op zoek gegaan naar de beste manier om het testen van PLC-software te automatiseren en deze testen in een digital twin-simulator uit te voeren. Zodra we wisten dat onze digital twin-partner Mevea een API (Application Programming Interface) in zijn product aanbiedt en dat deze een geschikte demomachine in zijn simulator beschikbaar heeft, een graafmachine om precies te zijn, was het snel duidelijk dat we een demo wilden bouwen voor het geautomatiseerd testen van de PLC-software die de graafmachine bestuurt.
Graafmachine in een digital twin-simulator
Met behulp van Python-scripts en Robot Framework stelden we een testprocedure op die de besturingscommando's voor de graafmachine automatisch naar in de PLD-hardware draaiende PLC-software stuurt en vervolgens vanuit de simulator controleert of de gegeven besturingscommando's tot de juiste respons bij het gesimuleerde graafmachinemodel leiden. Deze oplossing biedt de mogelijkheid om een menselijke tester door een computer te vervangen en zo het testen zeer betrouwbaar, effectief en snel te maken.
Automatisering gaat zelfs nog verder
Soms vereist het geautomatiseerd testen van software nog eens extra automatisering om volledig autonome processen mogelijk te maken. Stelt u zich eens voor dat u een PLC-automatiseringsontwikkelaar bent die PLC-programma's ontwerpt. Bij traditionele softwareontwikkeling houdt de ontwerper de verschillende codeversies onder versiebeheer. Om de nieuwe versies van de code te kunnen traceren, wordt standaard een soort CI/CD-proces (Continuous Integration / Continuous Delivery) of tool toegepast. Het doel van deze tool is het automatiseren van verschillende processtappen, zoals het bouwen, gericht programmeren en het inzetten van de nieuwe codeversies. Natuurlijk kan geautomatiseerd testen ook slechts een stap in een dergelijk proces zijn.
Op dezelfde manier als bij traditionele softwareontwikkeling kan het ontwerpen van PLC-software ook van dit soort CI/CD-werkwijzen en tools profiteren. Dus wellicht wordt het volgende doel van onze demo het geautomatiseerd programmeren van een nieuwe PLC-softwareversie voor PLC-hardware nadat de nieuwe programmaversie op een locatie beschikbaar is gekomen met aanvullend het geautomatiseerd uitvoeren van testen.
Hoe zou u van dit soort geautomatiseerde processen en technologieën kunnen profiteren? Laat het ons weten en we helpen u met alle plezier!