FB_VenetianBlindEx1Switch
Beschreibung
Jalousiebaustein mit der gleiche Funktionalität wie der FB_VenetianBlindEx() jedoch mit einen Eingang bSwitch zum Hoch- und Heruntertasten.
Es stehen vier verschiedene Arten zur Verfügung, wie die Jalousie angesteuert werden kann:
- Durch eine positive Flanke an den Eingängen bUp oder bDown werden die Ausgänge bBlindUp oder bBlindDown gesetzt. Diese bleiben so lange anstehen, bis die Zeit tDriveTime + 10% abgelaufen ist oder bis ein anderer Befehl an den Baustein gegeben wird. Durch eine positive Flanke am Eingang bStop werden beide Ausgänge unmittelbar zurückgesetzt.
- Mit den Eingang bSwitch, an dem üblicherweise ein Taster angeschlossen ist, kann die Jalousie hoch- bzw. heruntergetastet werden, wobei die Ausgänge im Gegensatz zum FB_VenetianBlindEx()sofort in Selbsthaltung gehen. Die Funktionalität der Taste wechselt dabei immer von Fahren, Stoppen, Fahren in entgegen gesetzter Richtung, Stoppen und wieder Fahren. Die Ausgänge bleiben maximal für die Zeitdauer tDriveTime + 10% anstehen oder bis ein neuer Befehl an den Baustein gegeben wird. Für die Zeit tSwitchOverDeadTime ist ein Umschalten verriegelt, s.u. .
- In bestimmten Anwendungen kann es sinnvoll sein, wenn der Bediener die Stellung der Jalousie schrittweise ändern kann. Bei jeder positiven Flanke am Eingang bStepUp oder bStepDown wird der entsprechende Ausgang für die Zeit tStepTime gesetzt. Für tStepTime hat sich ein Wert von 200ms bewährt.
- Gegenüber dem Baustein FB_VenetianBlind() kann mit diesem Baustein auch eine absolute Position angefahren werden. Hierzu wird ein Prozentwert an den Eingang nSetPosition angelegt und anschließend eine positive Flanke auf den Eingang bPosition gegeben.
Durch den Parameter tSwitchOverDeadTime kann verhindert werden, dass ein unmittelbarer Richtungswechsel den Antriebsmotor zerstört. In den meisten Fällen liegt dieser Wert zwischen 0,5sec und 1,0sec. Den genauen Wert erfahren sie beim Antriebshersteller.
Sicherheitsposition
Das Fahren in die Sicherheitsposition (z.B. bei starkem Wind oder bei Wartungsarbeiten am Fenster) kann durch Setzen des Eingangs bSafetyPosition erreicht werden. Für die Zeit tDriveTime + 10% wird der Ausgang bBlindUp gesetzt und der Ausgang bBlindDown zurückgesetzt. Die Bedienung der Jalousie ist so lange gesperrt, wie der Eingang bSafetyPosition aktiv ist.
Beschattungsposition
Bei überdurchschnittlicher Sonneneinstrahlung kann die Jalousie in die Beschattungsposition gefahren werden. Hierzu wird nach dem Anlegen einer positiven Flanke an den Eingang bShadowPosition die Jalousie auf die Position nShadowSetPosition gefahren. Anschließend wird für die Zeit tShadowTurnAroundTime die Jalousie wieder nach Oben gefahren. Hierdurch wird eine komplette Verdunkelung des Raumes verhindert. Wurde beim Anfahren der Beschattungsposition schon nach Oben gefahren, so wird die Jalousie für die Zeit tDriveSwitchOverTime - tShadowTurnAroundTime nach Unten gefahren. Es wird also der gleiche Winkel eingestellt, als wenn die Jalousie zum Verdunkeln nach Unten gefahren wäre.
Beim Richtungswechsel wird eine Pause von der Dauer tSwitchOverDeadTime eingehalten. Das Anfahren der Beschattungsposition kann jederzeit durch einen neuen Befehl unterbrochen werden.
Anfahren einer absoluten Position
Da in den meisten Fällen eine Jalousie keine Rückmeldung über die aktuelle Position zurückgibt, kann diese nur anhand der Fahrdauer berechnet werden. Die Genauigkeit ist davon abhängig, wie konstant die Geschwindigkeit der Jalousie ist. Außerdem sollten die Geschwindigkeitsunterschiede zwischen Auf- und Zufahren möglichst gering sein. Die Positionen werden immer in Prozent angegeben. Dabei entspricht 0% ganz oben und 100% ganz unten. Wird ein Wert größer 100 angegeben, so wird dieser im Baustein auf 100 begrenzt. |
Ermitteln der Parameter
Als erstes müssen bestimmte Parameter der Jalousie ermittelt werden. Zum Einen ist dieses die Fahrzeit. Also die Zeit, die benötigt wird, um die gesamte Strecke der Jalousie zu fahren. Zum Zweiten muß die Zeit ermittelt werden, die für ein Richtungswechsel benötigt wird. Während eines Richtungswechsel ändert sich der Winkel der einzelnen Lamellen. Die Fahrdauer wird an den Parameter tDriveTime übergeben. Die Dauer für einen Richtungswechsel an tDriveSwitchOverTime.
Baustein referenzieren
Da die aktuelle Position der Jalousie nur berechnet werden kann, summieren sich während des Betriebes die Ungenauigkeiten. Um die Abweichungen zu begrenzen, referenziert sich der Baustein möglichst häufig selbstständig. Dieses geschieht, wenn die Jalousie ganz nach Oben oder ganz nach Unten gefahren wird und der entsprechende Ausgang selbstständig zurückgesetzt wird. Also nach Ablauf der Zeit tDriveTime + 10%.
VAR_INPUT
bUp : BOOL;
bDown : BOOL;
bStop : BOOL;
bSwitch : BOOL;
bStepUp : BOOL;
bStepDown : BOOL;
tStepTime : TIME := t#200ms;
bPosition : BOOL;
nSetPosition : USINT;
bShadowPosition : BOOL;
nShadowSetPosition : USINT := 80;
tShadowTurnAroundTime : TIME := t#0s;
bSafetyPosition : BOOL;
tDriveTime : TIME := t#60s;
tDriveSwitchOverTime : TIME := t#200ms;
tSwitchOverDeadTime : TIME := t#400ms;
bUp: Ausgang bBlindUp setzen und Ausgang bBlindDown zurücksetzen. Der Ausgang bBlindUp bleibt in Selbsthaltung.
bDown: Ausgang bBlindDown setzen und Ausgang bBlindUp zurücksetzen. Der Ausgang bBlindDown bleibt in Selbsthaltung.
bStop: Ausgang bBlindUp und bBlindDown zurücksetzen.
bSwitch: Schateingang zum Tasten der Jalousie, siehe Beschreibung oben. Wechselt in seiner Funktionalität von von Fahren, Stoppen, Fahren in entgegen gesetzter Richtung, Stoppen und wieder Fahren. Der jeweist angesteuerte Ausgang geht dabei sofort in Selbsthaltung.
bStepUp: Ausgang bBlindDown zurücksetzen und Ausgang bBlindUp für die Zeit tStepTime setzen.
bStepDown: Ausgang bBlindUp zurücksetzen und Ausgang bBlindDown für die Zeit tStepTime setzen.
tStepTime: Wird die Jalousie mit den Eingängen bStepUp oder bStepDown gesteuert, so bleiben die Ausgänge für diese Zeitdauer anstehen. Wird eine Zeitdauer von 0 angegeben, so werden die Ausgänge nicht gesetzt.
bPosition: Jalousie auf eine vorgegebene Position fahren.
nSetPosition: Position (0%-100%) auf die die Jalousie gefahren werden soll, nachdem an dem Eingang bPosition eine positive Flanke angelegt wurde. 0% entspricht ganz Oben, 100% entspricht ganz Unten.
bShadowPosition: Die Beschattungsposition wird angefahren (siehe unten).
nShadowSetPosition: Beschattungsposition (0%-100%) auf die die Jalousie gefahren werden soll, nachdem an dem Eingang bShadowPosition eine positive Flanke angelegt wurde.
tShadowTurnAroundTime: Nach dem Erreichen der Beschattungsposition wird für die Zeitdauer tShadowTurnAroundTime die Jalousie nach Oben gefahren.
bSafetyPosition: Sicherheitsposition wird angefahren. Hierfür wird für die Zeit tDriveTime + 10% die Jalousie hochgefahren. Solange der Eingang ansteht, ist die Bedienung der Jalousie gesperrt.
tDriveTime: Fahrdauer der Jalousie von ganz Oben nach ganz Unten. Wird kein Eingang betätigt, so werden nach der Zeitdauer tDriveTime + 10% die Ausgänge zurückgesetzt. Wird eine Zeitdauer von 0 angegeben, so werden die Ausgänge nicht automatisch zurückgesetzt. Das Anfahren der Jalousie auf absolute Positionen ist dann nicht möglich.
tDriveSwitchOverTime: Zeitdauer, die die Jalousie für einen Richtungswechsel benötigt.
tSwitchOverDeadTime: Verweildauer beim Richtungswechsel. Während dieser Zeit sind beide Ausgänge zurückgesetzt.
VAR_OUTPUT
bBlindUp : BOOL;
bBlindDown : BOOL;
nActualPosition : USINT;
bCalibrated : BOOL;
bBlindUp: Die Jalousie fährt hoch.
bBlindDown: Die Jalousie fährt runter.
nActualPosition: Aktuelle Position in Prozent.
bCalibrated: Gibt an, ob die Jalousie kalibriert ist.