Übung 7.5

Steuerung der Raumbeleuchtung in Gebäuden

In Gebäuden soll die Steuerung der Raumbeleuchtung objektorientiert programmiert werden.

Hinweis: Um Methoden und Properties mit CoDeSys in Funktionsbausteinen einfügen zu können, muss u.U. im Menü Tools/Options/Features.
der Button "Predefined Feature Sets" auf  "Professional" eingestellt werden.
Lösung:

Die Lösung ist auch dokumentiert im Artikel von Werner: "Object-Oriented Extensions for IEC 61131", IEEE Industrial Electronics Magazine, 2009.

Insgesamt werden die nebenstehenden Module angelegt (s. auch Projekt U7_5_Gebaeude.project):
 
a) Der folgende Funktionsbausten LightRoom schaltet die Lampe in einem Raum ein oder aus:

FUNCTION_BLOCK LightRoom IMPLEMENTS Room
VAR_OUTPUT
  LIGHT:BOOL;
END_VAR

METHOD ON
  LIGHT:=TRUE;

METHOD OFF
  LIGHT:=FALSE;

Insgesamt werden die nebenstehenden Module angelegt (s. auch Projekt U7_5_Gebaeude.project):
 
a) Der folgende Funktionsbausten LightRoom schaltet die Lampe in einem Raum ein oder aus:

FUNCTION_BLOCK LightRoom IMPLEMENTS Room
VAR_OUTPUT
  LIGHT:BOOL;
END_VAR

METHOD ON
  LIGHT:=TRUE;

METHOD OFF
  LIGHT:=FALSE;

b. Der folgende Funktionsbausten LightRoom2 schaltet zwei Lampen in einem Raum ein oder aus.
Durch das Schlüsselwort EXTENDS wird die Vererbung aus dem Funktionsbaustein Lightroom angegeben,
durch den Befehl SUPER^ werdend ie Methdoen ON und OFF aus Lightroom übernommen.

FUNCTION_BLOCK LightRoom2 EXTENDS LightRoom
VAR_OUTPUT
  LIGHT2:BOOL;
END_VAR

METHOD ON
  SUPER^.ON();
  LIGHT2:=TRUE;

METHOD OFF
  SUPER^.OFF();
  LIGHT2:=FALSE;

c. Die Schnittstelle Room umfasst wie abgebildet die Methoden ON und OFF.

d) Der Funktionsbaustein RoomControl schaltet die Lampen eines Raums ab 20:15 Uhr automatisch ein und ab 06:15 Uhr
automatisch aus:

FUNCTION_BLOCK RoomControl
VAR_INPUT
    RM: Room;
    Daytime: TOD;
END_VAR
IF Daytime>=TOD#20:15 OR Daytime<TOD#6:15 THEN
    RM.ON();
ELSE
    RM.OFF();   
END_IF

e) Für jeden Raum muss zunächst ein Funktionsbaustein (Lightroom oder Lightroom2) instanziiert werden. Die Lichtsteuerung
kann dann polymoprh erfolgen. Durch die Schnittstelle Room kann entweder wie im Fall von Raum1 eine Lampe  entsprechend
der Tageszeit angesteuert werden oder mit demselben Baustein auch ein Raum mit 2 Lampen (Raum2).

Speicherprogrammierbare Steuerungen für die Fabrik- und Prozessautomation

4. Auflage erschienen im Hanser Verlag, 2015