FB_VenetianBlindEx1Switch

FB_VenetianBlindEx1Switch 1:

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 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

FB_VenetianBlindEx1Switch 2:

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.