Een trend die we de laatste jaren zien bij het ontwikkelen van PLC-besturingen is dat er steeds meer software ontwikkeld wordt in hogere programmeertalen zoals structured tekst. Een reden van deze verschuiving is dat PLC-besturingen steeds complexer worden met complexere berekeningen. Er is steeds meer behoefte aan dataverwerking en dataontsluiting. Hierdoor neemt de verhouding tussen complexe data gerichte logica en zuivere binaire logica toe. Voor binaire logica werd in het verleden vaak voor ladder of Function Block Diagram (FBD) gekozen. Omdat voor de complexe logica ladder of FBD vaak niet goed geschikt is, heeft het gebruik van talen als Structured tekst de voorkeur en zien wij de verschuiving naar een toenemend gebruik hiervan. Een andere oorzaak van deze verschuiving is dat de huidige generatie schoolverlaters is opgegroeid met talen als Python, C# etc. Daarnaast zien we dat er steeds meer ontwikkelingen worden overgenomen uit de IT-wereld. Denk hierbij bijvoorbeeld aan versiebeheer met GIT. In de IT-wereld bestaat veel tooling die eigenlijk alleen maar goed werkt met tekstuele talen.
Een verdere ontwikkeling die we zien ontstaan is Object Oriënted Programming (OOP). Met name het Codesys/Beckhoff platform is hier erg geschikt voor. Vanuit de ervaring die Gain heeft met het ontwikkelen van standaard software en framework-ontwikkeling blijkt dat OOP hiervoor erg geschikt is. Met OOP is het op een eenvoudige manier mogelijk om een stevige fundering te bouwen voor een framework. Het ontwerpen cq. modeleren van OOP-software vraagt andere tooling voor het ontwerpen. Eén van de belangrijkste tools voor modeleren is de UML-modeleertechniek.
UML staat voor Unified Modeling Language (UML). UML is een visuele modeleertaal welke is ontwikkeld voor specificeren, ontwikkelen en documenteren van software. De eerste versie van UML zag in 1997 het levenslicht. De taal is vervolgens verder ontwikkeld tot versie 2.5.1 die uiteindelijk in 2017 is ontstaan. De taal kent 13 modelleertechnieken met verschillende type diagrammen. De meest gebruikte diagrammen binnen onze wereld van PLC-besturingen zijn:
- Klassendiagram
- State machine diagram
- Sequence diagram
- Timingdiagram
Klassendiagram
Om tot een goed softwareontwerp te komen maken we binnen Gain gebruik van een klassendiagram. Met het klassendiagram is het mogelijk om de verschillende control modules, equipment modules, units etc. te modeleren. Daarnaast is het mogelijk om de relaties tussen de verschillende objecten weer te geven. Ook is het mogelijk om een duidelijk beeld te geven van de overervingen en de interface die gebruikt worden. Een voorbeeld van een klassendiagram ziet er als volgt uit:
State machine diagram
Een andere veel gebruikte diagram is de State Machine Diagram (SMD). Deze diagram is de UML-variant van een Grafcet diagram. Een voorbeeld van een SMD ziet er als volgt uit:
Voordeel van een SDM is dat je vrijer bent met tekenen. Bij Grafcet wordt altijd van linksboven naar rechtsonder getekend. Bij SDM hoeft dit in principe niet maar wordt het wel geadviseerd. Daarnaast is het eenvoudiger om de transities tussen de verschillende states te tekenen. Ook heb je de mogelijkheid om eenvoudig substates toe te voegen.
Sequence diagram
Om op de eenvoudige manier de communicatie of interactie tussen verschillende modules, PLC’s of bijvoorbeeld een HMI en PLC vast te leggen kan een sequence diagram gebruikt worden. Hieronder is een voorbeeld gegeven welke de interactie tussen twee PLC’s beschrijft:
Timingdiagram
Een laatste voorbeeld is het timingdiagram zoals deze bekend is binnen UML.
In de wereld van plc-besturingen is het timingdiagram over het algemeen een bekend en veel gebruikte diagram om de tijdsafhankelijkheid tussen bepaalde signalen weer te geven. Het mooie is dat deze diagramvorm ook door de UML standaard wordt ondersteund en er daardoor veel tooling beschikbaar is om snel een timingdiagram te ontwerpen.
Tot slot
UML wordt steeds meer als standaard gebruikt voor het modeleren van PLC-besturingen. Het mooie van deze techniek is dat de standaard duidelijk beschreven is in een norm (www.uml.org). Daarnaast is er heel veel tooling aanwezig voor het ontwerpen van de diagrammen. Tools die wij vaak binnen Gain gebruiken zijn:
- io
- Umlet
- PlantUML
- Enterprise Architect (Sparx systems)
Daarnaast bevat Codesys inmiddels ook tooling voor het maken van klassendiagrammen en state machine diagrammen.
Mocht u behoefte hebben na het lezen van dit artikel om ook met UML te gaan modeleren kijk dan zeker naar de training die wij, speciaal gericht op de machinebouw, hierin geven: zie Praktisch UML | Gain Automation Technology
geplaatst: januari 2024
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.