Ansteuerung eines Dachfenstermotors (24V= Motor; z.B. von Velux) über zwei extern Relais (2xUM).
Funktionsübersicht
- Position (Vorgabe über anzufahrende Fensterstellung; 0..100%)
- Profile (abgespeicherte Positionen, z.B. für normales Lüften oder Lüften bei leichtem Regen…)
- Einstellbare maximale Lüftungsdauer; Fenster fährt nach erreichen dieser Zeit automatisch wieder zu.
- Lüftenkommando, um die momentane Lüftzeit zu verlängern/verkürzen, z.B. durch „nachtriggern“ (=Fensteröffnen-Taste bei offenem Fester drücken).
- Parametrierbare Pausenzeit bei Richtungswechsel. Damit wird die mechanische Belastung durch schnelles Richtungsumschalten verringert – sowohl im Motor, als auch im Relais.
Hardwarevoraussetzungen
Knotenhardware mit zwei freien Relaisanschlüssen – wovon mindestens ein Relais 2xUM sein muss, das andere kann auch 2xEIN sein.
Der Anschluss des Motors muss so erfolgen:
Design und Implementationsdetails
Die Statemaschine zur Steuerung des Motors und Anfahren der gewünschten Position entspricht weitgehend der Statemaschine von Appl_Rolladen.
Der Unterschied zu Appl_Rolladen besteht hauptsächlich in den unterschiedlichen Parametern, die die beiden Applikationen verwenden (z.B. Lüftungsdauer gibt es nur bei Dachfenster…).
Das Anfahren der gewünschten Sollposition erledigt eine Statemaschine. Dass zehnmal 1% runterfahren nicht einmal 10% runterfahren entspricht und sich im Laufe der Zeit ein Fehler aufsummiert, wird durch automatisches Nachkalibrieren (bei Fahrten in die Begrenzung, also 0% oder 100%) ausgeregelt.
Die Sollposition kann von außen entweder als absolute Position oder als Kommando zum Hoch- oder Runterfahren geliefert werden. Die normale Verwendung ist jedoch, dass der Statemaschine nur mitgeteilt wird, dass der Hoch- oder Runtertaster gedrückt wurde. Dies geschieht entweder über CAN oder falls Notlauf erkannt wurde (Busausfall) auch über die lokal an dem Knoten angeschlossenen Taster, die dann automatisch zu Dachfensterverfahrtastern werden.
Die Rolladenapplikation steuert zwar zwei Relais an, verwendet hierzu aber nicht die Relaisapplikation, der sie z.B. nur die Steuerkommandos gibt, sondern schaltet die Relais selbst.
DoTable Dachfenster (DoType 0x18)
DoSi | Beschreibung | Typ/ Länge |
Ort | Min/Max /Default |
Auflösung /Einheit |
Datenart |
0x00 | Sollposition |
u8 | RAM |
0/100/0 |
1/% | Ctl, Bw, Br |
0x01 | Istposition |
u8 |
RAM | 0/100/0 |
1/% | Ctl, Bw, Br |
0x02 | Restlüftdauer [s] |
u16 | RAM | 0/18h/0 | 1/s | Ctl, Bw, Br |
0x03 | Fensterfahrzeit für 1% |
u8 | EEP | 0/255 /300ms |
10/ms | Cfg, Bw, Br |
0x04 | Pausenzeit bei Richtungswechsel |
u8 | EEP | 40/255 /400ms |
10/ms | Cfg, Bw, Br |
0x05 | ApplikationAktiv |
u8 | EEP | 0/1/0 | Cfg, Bw, Br | |
0x06 | ProfilAktuell | u8 | RAM | 0/15/0 | Ctl, Bw, Br | |
0x07 | RelativePosVorgabe | u8 | RAM | Liste | Ctl, Bw | |
0x08 | MaxLüftungsdauer | u16 | EEP | 0/18h/0 | 1/s | Cfg, Bw, Br |
0x09 | Aktuelle Lüftungsdauer | u16 | RAM | 0/18h/0 | 1/s | Ctl, Bw, Br |
0x0A | Letzte Lüftungsdauer | u16 | RAM | 0/18h/0 | 1/s | Ctl, Bw, Br |
0x0B | PositionAufZeit [%] [s] | virtuell 3Byte |
RAM | Ctl, Bw, Br | ||
0x0C | Lüftungszeitschritt | u8 | EEP | 0/255/15 | 1/min | Cfg, Bw, Br |
0x0D | Lüftenkommando | u8 | RAM | Liste | Ctl, Bw, Br | |
0x10 | Profil0 Position | u8 | EEP | 0/100/- | 1/% | Cfg, Bw, Br |
… | ||||||
0x1F | Profil15 Position | u8 | EEP | 0/100/- | 1/% | Cfg, Bw, Br |
0x24 | Relaisschaltspiele Versorgungsrelais |
u32 | EEP | 1/- | Lcfg, Bw, Br | |
0x25 | Relaisschaltspiele Richtungsrelais |
u32 | EEP | 1/- | Lcfg, Bw, Br |
Der DotParameter „RelativePosVorgabe“ kennt folgende Kommandos:
0: keine Bewegung
251: Tue so, als sei der Verfahrtaster_Hoch gedrückt
252: Tue so, als sei der Verfahrtaster_Runter gedrückt
253: Abwärtsbewegung starten
254: Aufwärtsbewegung starten
255: Stopp
Der Parameter ist nicht auslesbar.
Der DotParameter „Lüftenkommando“ kennt folgende Kommandos:
201: Restlüftdauer um „Lüftungszeitschritt“ verlängern
202: Restlüftdauer um „Lüftungszeitschritt“ verringern
Der Parameter ist nicht auslesbar.
BoTable Dachfenster (DoType 0x18)
BoIndex: 0x00
Zykluszeit: 5000ms (bei Änderung sofort)
Sperrzeit (Inhibittime): 250ms
Datenlänge: 8Byte
Byte |
Beschreibung |
Byte0 | DF0: Istposition |
Byte1 | DF0:Restlüftdauer (in min!) |
Byte2 | DF0:aktuelle Lüftungsdauer (in min!) |
Byte3 | DF0:Letzte Lüftungsdauer (in min!) |
Byte4 | DF1: Istposition |
Byte5 | DF1:Restlüftdauer (in min!) |
Byte6 | DF1:aktuelle Lüftungsdauer (in min!) |
Byte7 | DF1:Letzte Lüftungsdauer (in min!) |