Softwareontwikkeling voor hightech machines
Vrijdag 28 maart 2025

Bij VerAutomation kregen we de unieke kans om de software te ontwikkelen voor Hightech machines, een innovatieve machine ontworpen voor het aanbrengen van een materiaal laag. Dit artikel geeft inzichten in de technische kant van dit uitdagende project.
Klant: Hightech machinebouwer
Platform: Lenze
Controllers: Lenze C520, Lenze C250-S (Safety PLC)
Software: PLC Designer 3,28, Ignition V8.1
IO: 31 Ehtercat Slaves, 40 DI, 52 DO, 140 AI, 4 AO, 2 High Speed DO,
Uitdagingen: complexiteit van configuratie, dynamische hardware aanpassing, motion control lineaire aandrijving, recept flexibiliteit
Modulariteit en Flexibiliteit
De machines zijn ontworpen met een modulaire benadering, waardoor laboratoriumexperimenten moeiteloos kunnen opschalen naar grootschalige productie. Het systeem is flexibel en kan worden aangepast of geüpgraded om aan specifieke processen te voldoen.
Deze modulaire aanpak vereist een flexibele software. In plaats van meerdere softwareversies te ontwikkelen voor elke nieuwe machine, hebben we één softwareversie gecreëerd die kan worden gedownload en geconfigureerd voor elke machine zonder uitgebreide aanpassingen.
Op dit moment ondersteunt elke machine ongeveer 40 verschillende configuraties, afhankelijk van de aanwezige hardware, zoals:
- 1, 2, 3 of 4 gelijktijdige proces stappen
- Verschillende types nabehandeling
- Verschillende types reststof verwerking
- Met of zonder thermische behandeling
Deze opzet stelt de machinebouwer in staat om eenvoudig aan klantbehoeften te voldoen en systemen veelzijdig en efficiënt te houden. Dit vermindert onderhoudskosten en maakt snelle implementatie mogelijk.
Lenze Controllers en EtherCAT-configuratie
Voor de aansturing kozen we voor de Lenze C520-controller, gecombineerd met de Lenze C250-S Safety PLC. EtherCAT diende als bussysteem met 32 slaves, allemaal geconfigureerd met Lenze’s Modulaire Machineconfiguratie (MMC). MMC maakt dynamische (her-)toewijzing van EtherCAT-slaves mogelijk zonder dat fysieke aanpassingen van apparaten nodig zijn.
MMC identificeert unieke EtherCAT-slaves met het secundaire stationadres, onafhankelijk van hun positie in het netwerk. Dit adres wordt bij ingebruikname toegewezen en opgeslagen in het EEPROM-geheugen van de slave. De toewijzing kan handmatig of via een configuratiebestand op de PLC worden uitgevoerd.
Om de groeiende complexiteit van onze configuraties te beheren, kozen we voor een configuratiebestand op de PLC en ontwikkelden we Excel-tools (VBA en macro’s) om dit proces te stroomlijnen. Aangezien elk nieuw apparaat het aantal mogelijke configuraties verdubbelt – van 37 naar 74 – was deze aanpak cruciaal.
Het configuratiebestand specificeert welke EtherCAT-nodes in elke configuratie aanwezig zijn. Tijdens het opstarten:
- Controleert het systeem op aanwezigheid van de benodigde nodes.
- Wijst het secundaire station adressen toe aan de gedetecteerde nodes.
- Initialiseert de EtherCAT-bus met alleen de benodigde nodes.
Hierdoor konden we een enkele softwareversie ontwikkelen die werkt voor elke configuratie, zelfs als een EtherCAT-apparaat niet fysiek aanwezig is in het netwerk.
Visualisatie en Logging met Ignition
Ignition werd ingezet voor de visualisatie. Deze visualisaties passen zich dynamisch aan, afhankelijk van het configuratiebestand, waarbij elementen worden weergeven of verborgen gebaseerd op de aanwezigheid van apparaten. Dit betekent dat we slechts één Ignition-project hoeven te beheren.
Om herbruikbare objecten, zoals kleppen en motoren te maken, gebruikten we faceplates en templates, aangevuld met dynamische tags via UDT’s (Used-Defined Types). Door aangepaste eigenschappen en parameters te gebruiken, konden we tagpaden dynamisch construeren met behulp van placeholders zoals {ParentClass}, {Instance} en {TagName}. Dit elimineert de noodzaak om meerdere pagina’s te maken voor vergelijkbare objecten met verschillende tags.
Daarnaast beheert Ignition:
- Historian Logging: voor registratie van trends en gegevens en procesanalyse.
- Audit Logging: voor het bijhouden van gebruikersacties.
- Receptbeheer: voor het flexibel beheren en implementeren van procesparameters.
Modulaire opbouw en Finite State Machines
Onze software volgt de S88-principes. Elke Unit, Equipment Module (EM’s) en Control Module (CM’s) heeft specifieke verantwoordelijkheden om horizontale afhankelijkheden te minimaliseren. Finite state machines (FSM’s) besturen Units en EM’s, met beschrijvende namen voor staten en overgangen. Door gebruik van FSM’s zorgen we voor stabiele overgangen tussen verschillende staten, met time-outs die alarmen genereren:
- Informatie
- Waarschuwing
- AlarmControlledStop
- AlarmDirectStop
Deze indeling van categorieën zorgt voor gepaste reacties bij afwijking en verhoogt de veiligheid en betrouwbaarheid van het systeem.
Aandrijvingen en Motion Control
Wij kozen voor Lenze I550-aandrijvingen voor de frequentie gestuurde motoren. Voor lineaire bewegingen implementeerden we een Tecnotion TM12S lineaire aandrijving, aangedreven door een Lenze I950-servo. Dankzij de absolute positiemelding van de Sick TTK70-encoder was homing slechts eenmaal nodig en konden we de poolpositie-identificatie (PPI) uitvoeren.
De Safe Limited Speed- en Safe Stop-modi werden geïmplementeerd via Safety over EtherCAT (FSoE), wat de veiligheid verhoogt tijdens operaties zoals het laden van onderlagen. Door gebruik te maken van vaste snelheden, versnellingen en parameters zoals lengte van de onderlaag, kunnen we de start- en eindposities optimaliseren om een consistente snelheid te bereiken bij het bewegen onder het proces. Hierdoor is dynamische aanpassing van de slag van de onderlaag mogelijk, waardoor we op basis van de parameters dichterbij of verder weg van het proces kunnen starten. Hierdoor worden onnodige bewegingen geminimaliseerd en kunnen we de slag van de onderlaag verminderen en verwerkingstijd besparen.
Receptbeheer
Het systeem werkt met een flexibel receptbeheer, met drie receptheaders en maximaal 10 regels per header. Elke regel specificeert bijv. snelheid, aantal cycli en type behandeling of materiaal en wordt regel voor regel verwerkt door de machine. Dit biedt flexibiliteit bij het construeren van lagen. Deze aanpak maakt zowel kleine recepten met enkele tientallen cycli als complexere configuraties mogelijk. Dit creëert een bijna eindeloze variëteit voor test- en onderzoeksdoeleinden mogelijk.
Door actieve stromen en materialen in een bypass-modus te plaatsen, wordt efficiëntie geoptimaliseerd en de noodzaak om de leiding door te spoelen geëlimineerd. Hierdoor wordt kostbare tijd bespaard bij het wisselen tussen receptregels.
Toekomstige ontwikkelingen
Hoewel nog niet volledig object georiënteerd, implementeert VerAutomation steeds meer OOP-principes, zoals encapsulatie en abstractie, om de codekwaliteit en duidelijkheid te verhogen. Blijf ons volgen voor toekomstige updates!