Skip to main content

Schritt 4: Erzeugen des Submoduls "Light"

Wie vorher für den Schalter (Switch) und den einfachen Schalter (SwitchSimple) muss für das Modul Light“ eine Moduldeklaration Light, ein Funktionsbaustein Light und ein Interface ILight angelegt werden. Das Modul wird vom Funktionsbaustein implementiert, welcher seinerseits das Interface ILight implementiert.

Um das Modul Light unterhalb des Moduls Room hinzufügen zu können, muss die Moduldeklaration vonRoom mit der Sektion Slots erweitert werden. In dieser Sektion wird eine Untersektion Slot_Multi deklariert, welche Lights genannt wird und welche Module des Tyjps Light aufnehmen kann. Die Anzahl der Lichter, welche zu einem Raum hinzugefügt werden muss oder kann, wird durch den Parameter Cardinality definiert (in unserem Beispiel zwischen 1 und 3 Lichter). Weiterhin müssen zwei Variablen definiert werden: Variable (pLights, welche die Funktionsbausteininstanzen der Licht-Module des Raumes beschreibt), und Var_Count (uiNumberOfLights, welche die Anzahl der Lichter des Raumes beschreibt).

Abbildung 54. Definition der Sektion Slots
Definition der Sektion Slots


Die Variablen pLights und uiNumberOfLights müssen zum Funktiosbaustein der Module „Lights“ hinzugefügt werden, wobei uiNumberOfLights ein UINT und pLights vom Typ POINTER TO ILight ist. Mit dieser Definition können nur Module zum Slot Lights hinzugefügt werden, deren Funktionsblöcke auch das Interface ILight implementieren.

Abbildung 55. Deklaration im Funktionsbaustein Room
Deklaration im Funktionsbaustein Room


Das gleiche Slot-Kozept, welches für die Module Room“ verwendet wurde, wird nun für das Modul Light verwendet. Somit beinhaltet die Deklaration von Light einen Slot mit einem Switch, weshalb dieser Slot kein Multi-Slot, sondern ein einfacher Slot ist. Die zusätzlichen Parameter des Moduls Light sind die Geschwindigkeit des Dimmers rSpeed und die maximale Helligkeit uiMaxValue. Abschließend muss noch ein Ausgang definiert werden, welcher die Helligkeit des damit verbundenen Lichts repräsentiert. Alle Parameter, Slots und Ausgänge müssen auch als Variablen zum Funktionsbaustein des Moduls Light hinzugefügt werden.

Abbildung 56. Deklaration des Moduls Light
Deklaration des Moduls Light


Abbildung 57. Deklaration des Funktionsbausteins Light
Deklaration des Funktionsbausteins Light


Abbildung 58. Testliste und Bildersammlung
Testliste und Bildersammlung


Schritt 5: Erzeugen des Submoduls „Light simple“