Skip to main content

Schritt 6: Implementierung

Schalter

Für die Implementierung der Funktion für das Modul Switch wird die Methode CallPrioMediumStart von Module verwendet und mit der eigenen Implementierung überschrieben. Diese Funktion wird gewählt, weil das Modul Room eine Task MEDIUM deklariert, Dies bedeutet nämlich, dass die Methode CallPrioMediumStart des Funktionsbausteins Switch automatisch in jedem Zyklus der mittlerern Task aufgerufen wird. Genauere Informationen können dem Beispielprojekt selber entnommen werden. Die Hauptfunktion des Schalters ist die Unterscheidung zwischen Schalten und Dimmen. Nach dem Drücken des Schalters startet ein Timer mit einer Zeit, welche durch Anwenderparameter vorgegeben werden kann. Wenn der Timer abgelaufen ist und der Schalter immer noch gedrückt ist, wird die Dimmerfunktion verwendet, was auch durch die Variable XPushLong angezeigt wird. Die Variable xPush wird TRUE, wenn der Schalter nur kurz gedrückt wird. Für beide Variablen xPushLong und xPush werden sowohl im Funktionsbaustein Switch als auch im Interface ISwitch Eigenschaften hinzugefügt, so dass sie vom Eltern-Lichtfunktionsbaustein benutzt werden können.

Licht

Auch der Funktionsbaustein Light überschreibt die Methode CallPrioMediumStart. Abhängig von der Eingangsvariablen der zugehörigen Variablen wird das Licht auf "an“ oder "aus“ gedimmt oder einfach nur geschaltet. Für den Dimmer wird der Geschwindigkeitswert des deklarierten Parameters rSpeed verwendet. Nach Erreichen des Maximums oder Minimums des Dimmwertes wird das Dimmen beenddet. Wenn das Licht in einem gedimmten Zustand ist und der Schalter gedrückt wird, wird das Licht ausgeschaltet. (Die vollständige Implementierung kann im Beispielprojekt gesehen werden)

Programmcode überprüfen

Nach der Implementierung sollten die Deklarationen durch Ausführen des Befehls Übersetzen überprüft werden. Wenn kein Fehler erscheint, ist die Deklaration in Ordnung.

Schritt 7: Module konfektionieren