Een goede regeling is compact en begrijpelijk

(December, 2019)

Regelmatig krijgen we de vraag: “Hoe schrijf ik nou een goede regeling voor een LMX onderstation?” Een goede regeling is compact en daardoor niet moeilijk om te begrijpen: de LMX krijgt informatie via verschillende ingangen en stuurt via de regeling uitgangen aan. Ook is de regeltaal niet moeilijk om te leren. Toch vergt het schrijven van een goede regeling de nodige aandacht. In deze aflevering van ‘Uitgelicht’ vertelt Martijn Vonk hier meer over.

Er zijn drie fasen in het schrijven van een regeling: het opstellen van de functionele omschrijving, het schrijven van de code en het testen van de regeling.

Fase 1: Het opstellen van de functionele omschrijving
“Voordat je een regeling gaat schrijven is het belangrijk om exact te weten wat de regeling moet gaan doen”, aldus Martijn. “Ik denk dat het opstellen van de functionele eisen waaraan de regeling moet voldoen het belangrijkste deel is van het schrijven van een regeling. Dat klinkt misschien wat raar maar als je de eisen niet vooraf helder vastlegt en later zaken gaat wijzigen, dan ontstaat er snel een onoverzichtelijk geheel wat leidt tot een lagere kwaliteit van de regeling.”

Er bestaan verschillende technieken om de functionaliteit van een regeling te specificeren. Martijn: “In de praktijk blijkt dat een goede omschrijving in helder Nederlands net zo goed is en het heeft als voordeel dat alle betrokkenen zonder kennis dit kunnen lezen van formele specificatiemethodes dit ook begrijpen. Begin altijd met het vastleggen van de hoofdfunctionaliteit. Eventuele andere functies kunnen vervolgens worden toegevoegd. Ook is het handig om aan het document een I/O-lijst toe te voegen waarin de benodigde in- en uitgangssignalen en setpoints zijn vastgelegd.”

Martijn vervolgt: “Als dit allemaal duidelijk is dan kan er nagedacht gaan worden over de “wat….als”vragen. Zijn er situaties die nooit voor mogen voor komen? Zijn er situaties die kritisch zijn? Wat als er sprake is van bijzondere zaken zoals het wegvallen van de netspanning?
Wanneer ook dit vastligt dan is precies duidelijk wat de regeling moet doen of juist moet voorkomen en kan het daadwerkelijk schrijven van de regeling beginnen.”

Fase 2: Het schrijven van de code
Om een regeling te schrijven wordt gebruik gemaakt van een eenvoudige programmeertaal. De geprogrammeerde regeling wordt telkens opnieuw uitgevoerd door het onderstation. Dit wordt ook wel een ‘regelslag’ genoemd. Bij de LMX400 wordt een regelslag iedere seconde opnieuw uitgevoerd.

If Ai1 > 5 Then Du1:= 1

In bovenstaand voorbeeld wordt digitale uitgang Du1 ingeschakeld als de afgelezen waarde van Analoge ingang Ai1 groter is dan 5. Maar hoe wordt die uitgang dan ooit weer uitgeschakeld? Daar voegen we een tweede regelcode voor toe:

If Ai1 <= 0 Then Du1:= 0

Als Analoge ingang Ai1 kleiner is dan of gelijk aan 0 dan wordt Digitale uitgang 1 uitgeschakeld (0).

Martijn: “We horen dat veel klanten hun regelingen na verloop van tijd aanpassen; bijvoorbeeld om deze te optimaliseren aan de hand van de ervaringen in de praktijk of omdat omstandigheden veranderen. Bij een goed ontworpen en geschreven regeling kunnen wijzigingen eenvoudig doorgevoerd worden. Je kunt ook eenvoudig commentaar opnemen in een regeling zodat het lezen en begrijpen door jou zelf of een collega beter gaat. Uitbreidingen op wijzigingen zijn dan eenvoudiger aan te brengen. We laten in het voorbeeld hieronder zien hoe je commentaar kunt toevoegen,”

Di1:= Du1      
‘ Digitale ingang 1 volgt de waarde van Digitale Uitgang 1

If Du1 And Ai1<55 Then Ai3:= Ai3 + 0.5
‘ Als Digitale uitgang 1 aan is (niet 0 is) en Analoge ingang 1 is kleiner dan 55 dan krijgt Analoge ingang 3 de waarde van Analoge ingang 3 plus 0.5

If Not Du2 Or Di1 And T2=0 Then T2:= 3600 
‘ Als Digitale uitgang 2 uit is (0 is) of Digitale ingang 1 is aan (niet 0 is) en Timer 2 is 0 dan krijgt Timer 2 de waarde 3600
‘ Timers zijn aftelklokjes (kookwekkers zonder belletje)

Fase 3: Het testen van de regeling
“Je kunt de regeling na het schrijven vanuit de hoofdpost direct verzenden naar het onderstation en op locatie gaan kijken of het goed werkt, aldus Martijn. TMX heeft echter een handige functionaliteit voor het testen van regelingen: Simulatie.  Met Simulatie kun je binnen de TMX-hoofdpost omgeving een regeling voor een onderstation testen. Je kunt hiermee niet alleen de normale werking van een regeling controleren maar ook eenvoudig testen hoe de regeling reageert op bijzondere situaties.”

Simulatie wordt aan de regeling toegevoegd door een ‘@’-teken aan het begin van de regel te zetten. Door het @-teken weten het onderstation en de TMX hoofdpost dat dit regels zijn die in de praktijk niet uitgevoerd moeten worden.
Eens proberen hoe het werkt? Voer dan onderstaande simulatieregels gecombineerd met de eerste twee voorbeeldregels uit op een testlocatie in TMX.

@ Ai1:= Ai1 + 0.1
‘Iedere regelslag verhoogt de waarde van Analoge ingang 1 met 0.1

@ Ai1:= Ai1 – 0.5 * Du1
‘ Iedere regelslag verlaagt de waarde van Analoge ingang 1 met 0.5 maal de waarde van Digitale uitgang 1 (is de digitale uitgang uit dan is de waarde hiervan 0)

Tot slot: een regeling moet doen waarvoor hij ontworpen is. Martijn: “Goede regelingen herken je eenvoudig. Deze zijn compact, logisch van opbouw, hebben een goede opmaak en zijn voldoende van commentaarregels voorzien.”

Twee nieuwe cursussen over Regelen
Wilt u meer informatie over regelen of bent u geïnteresseerd in een training? TMX biedt in 2020 twee nieuwe trainingen aan: de training Regelen Basistraining (1 dag) en de training Regelingen schrijven (2 dagen). Meer informatie over deze trainingen kunt u begin 2020 terugvinden op onze website. De trainingen zijn los van elkaar te volgen.

Naast de trainingen is ook veel informatie over regelen terug te vinden in de help van de TMX hoofdpost en via de uitgebreide handleiding over regelen. Voor meer informatie over de trainingen kunt u ook contact opnemen met onze Sales afdeling via 078 6100 300 of via sales@tmx.nl.