Wat is een State Machine?

 

(Februari, 2020)

Na de korte introductie in de vorige nieuwsbrief over hoe de functie Regelen en Simuleren in TMX werkt, leggen we dit keer een wat geavanceerder concept uit dat regelmatig in Regelingen wordt toegepast: een State Machine.

Martijn: “De definitie van een State Machine is een model voor het gedrag van een onderstation waarbij de Regeling bestaat uit verschillende States, de overgangen tussen die States en de bijbehorende acties. Een State Machine heeft een gelimiteerd aantal States. Dat is een hele mond vol maar als je het principe begrijpt dan kan dit een Regeling echt veel eenvoudiger maken.”

Wanneer gebruik je een State Machine?
“Je gebruikt een State Machine als er duidelijke States van de installatie te definiëren zijn. Denk aan de status van een pomp, een stuwstand of bepaalde scenario’s die een Regeling moet volgen.”

Hoe implementeer je die verschillende States in een Regeling?
Hoe verwerk je dan die States in de praktijk in een Regeling? Martijn: “Dat is niet zo moeilijk: de verschillende States van een proces kunnen we in een Regeling uit elkaar houden door in de Regeling gebruik te maken van een hulpvariabele (aangeduid met de letter V). Door het toekennen van een waarde aan de hulpvariabele kunnen we deze waarde gebruiken als State. Bijvoorbeeld: als de hulpvariabele de waarde ‘1’ heeft dan is er sprake van de opstartfase, ‘2’ is gestopt, en ‘3’ is gestart. Je kunt zelf zoveel States definiëren als je wilt waardoor het heel flexibel werkt.”

Een State Machine heeft een gelimiteerd aantal States maar je kunt er zoveel definiëren als je wilt. Is dit niet tegenstrijdig? “Nee. Het aantal States is gelimiteerd doordat er geen andere States kunnen ontstaan dan die je zelf hebt gedefinieerd. Je kunt zelf bepalen hoeveel States er zijn maar er kunnen geen andere States ontstaan dan de gedefinieerde.”

“We zullen dit verduidelijken aan de hand van een praktijkvoorbeeld.” legt Martijn uit. “Neem een verkeerslicht. Er zijn vijf States te onderscheiden. Natuurlijk heb je het rode, groene en oranje licht maar die branden nooit tegelijk. Dat zijn dus de eerste drie States die je kunt definiëren. Maar ook kan het verkeerslicht ‘uitgeschakeld’ zijn of oranje knipperen.

Een State Machine kun je in de documentatie van de Regeling ook heel mooi weergeven. De States kun je namelijk als blokken in een diagram zetten. Tussen de verschillende States kunnen we de reden zetten waarom een State naar een volgend stadium moet. Met een pijl geven we aan van welke State naar welke State gegaan wordt. De pijlen die verwijzen naar dezelfde State geven aan dat er een reden is om in diezelfde State te blijven. In Figuur 1 is te zien hoe dat voor ons voorbeeld van het verkeerslicht eruit ziet.” Martijn vervolgt enthousiast: “Dit versimpelt je Regeling en maakt hem beter leesbaar en om het te documenteren. Omdat de Regeling iedere seconde (of sneller) opnieuw uitgevoerd wordt neem je ook moeiteloos de status mee naar de volgende Regelslag.”

Verschillende ‘States’ van een verkeerslicht en de overgangen.

Figuur 1. Verschillende ‘States’ van een verkeerslicht en de overgangen.
Wilt u weten hoe de verkeerslicht Regeling er uitgewerkt kan uitzien, klik dan hier.

 

Zijn er nog andere tips?
Nog twee handige tips van Martijn: “Door de States kun je bij het simuleren erg makkelijk het gedrag van de Regeling volgen. Het kan ook handig zijn om de State te laten registreren door het onderstation. Je kunt de waarde van de hulpvariabele die de Toestand bevat opslaan in een analoge ingang. Dan heb je altijd achteraf inzicht welke States door de Regeling zijn doorlopen en kun je ook eenvoudig de State in je States diagram (zoals figuur 1) opnemen.”

TMX trainingen
Meer weten over Regelingen? Ook in 2020 geven we weer diverse Trainingen over dit onderwerp. In de TMX Training Regelen Basistraining leert u wat een Regeling is en hoe deze is opgebouwd. In de tweedaagse Training Regelingen Schrijven leert u vanuit niets een volledige Regeling te schrijven. Aan het eind van de eerste Trainingsdag krijgt u een opdracht mee. De uitwerking wordt tijdens de tweede Trainingsdag besproken.
De traning Regelen Basistraining vindt plaats op 15 september 2020 en de tweedaagse Training Regelingen Schrijven op 24 september en 1 oktober 2020. Voor meer informatie

https://www.tmx.nl/services-support/tmx-trainingen-haal-eruit-wat-erin-zit/