FB_BARSunblindScene

FB_BARSunblindScene 1:

Dieser Baustein stellt eine Erweiterung der Handbedienung FB_BARSunblindSwitch um eine Szenen-Speicher- und Aufruf-Funktionalität dar. Damit lässt sich die Jalousieansteuerung FB_BARSunblindActuator bzw. die Rollladenansteuerung FB_BARRollerblind sowohl im Handbedienmodus ansteuern, als auch zuvor gespeicherte Positionen (Szenen) direkt anfahren. Es können bis zu 21 Szenen gespeichert werden.

Struktur des Jalousie-Positioniertelegramms stSunblind.

TYPE ST_BARSunblind:
STRUCT
     uiPosition      : UINT;
     iAngle          : INT;
     bManUp          : BOOL;
     bManDown        : BOOL;
     bManualMode     : BOOL;
     bActive         : BOOL;
END_STRUCT
END_TYPE

Betriebsweise

Der Funktionsbaustein steuert über die Befehlseingänge bSwitchUp und bSwitchDown den Jalousiebaustein FB_BARSunblindActuator bzw. den Rollladenbaustein FB_BARRollerblind im Handbetrieb an, wobei bSwitchUp Vorrang hat. Die Befehle werden an die jeweiligen Kommandos bManUp und bManDown des Positioniertelegramms weiter gereicht. Ist ein Befehlseingang länger als die eingetragene Zeit uiSwitchOverTime (in ms) aktiviert, so geht der entsprechende Steuerbefehl in Selbsthaltung. Ein erneutes Aktivieren eines Befehlseinganges löscht diese Selbsthaltung wieder.
Eine steigende Flanke an bSaveScene speichert die aktuelle Position und den Lamellenwinkel in die unter usiSelectedScene angewählte Szene. Dieser Vorgang ist jederzeit möglich, auch während einer aktiven Positionierung. Mit bInvokeScene wird die angewählte Szene aufgerufen, das heißt, die gespeicherten Werte von Position und Winkel angefahren.

Verknüpfung an Jalousiebaustein

Der Szenenanwahlbaustein kann, wie der "normale" Handbedienbaustein FB_BARSunblindSwitch, entweder über eine voran gestellte Prioritätssteuerung FB_BARSunblindPrioritySwitch oder aber direkt an den Jalousiebaustein angeschlossen werden. Die Verbindung erfolgt dabei über das Positioniertelegramm stSunblind. Des Weiteren benötigt der Szenenbaustein die aktuelle Position aus dem Jalousiebaustein der Referenz-Jalousie:

Verwendung einer Prioritätssteuerung:

FB_BARSunblindScene 2:

Direkte Beschaltung:

FB_BARSunblindScene 3:

VAR_INPUT

eDataSecurityType  : E_HVACDataSecurityType;
bEnable            : BOOL;
usiSelectedScene   : USINT;
bSwitchUp          : BOOL;
bSwitchDown        : BOOL;
bInvokeScene       : BOOL;
bSaveScene         : BOOL;
uiSetpointPosition : UINT;
iSetpointAngle     : INT;

eDataSecurityType:Wenn eDataSecurityType:= eHVACDataSecurityType_Persistent ist, werden die persistenten VAR_IN_OUT-Variablen des Funktionsbausteins bei einer Wertänderung im Flash des Rechners abgelegt. Dafür ist es zwingend erforderlich den Funktionsbaustein FB_HVACPersistentDataHandling einmalig im Hauptprogramm, das zyklisch aufgerufen wird, zu instanziieren. Ansonsten wird der instanziierte FB intern nicht freigegeben.

Eine Wertänderung kann vom Gebäudeleitsystem, einem lokalen Bediengerät oder von einem Schreibzugriff von TwinCAT aus erfolgen. Beim Neustart des Rechners werden die gesicherten Daten automatisch vom Flash in den RAM zurück gelesen.

Anwendungsbeispiel: example_persistent.zip

Bei eDataSecurityType:= eHVACDataSecurityType_Idle werden die persistent deklarierten Variablen nicht spannungsausfallsicher gespeichert.

Hinweis

Eine sich zyklisch ändernde Variable darf niemals mit der IN_OUT-Variablen eines Funktionsbausteins verbunden werden, wenn eDataSecurityType:= eHVACDataSecurityType_Persistent ist. Es würde zu einem frühzeitigen Verschleiß des Flashspeichers führen.

bEnable: Steht dieser Eingang auf FALSE, so ist der Baustein ohne Funktion. Im Positioniertelegramm stSunblind werden für Position und Winkel jeweils 0 ausgegeben - bManualMode und bActive stehen jeweils auf FALSE. Das bedeutet für eine Beschaltung mit Prioritätssteuerung, dass eine andere Funktionalität die Jalousieansteuerung übernimmt. Eine direkte Beschaltung hingegen lässt die Jalousie direkt auf Position 0, also ganz nach oben fahren, da der Aktorbaustein das Bit bActive selbst nicht auswertet.

usiSelectedScene : Angewählte Szene, welche entweder gespeichert (bSaveScene) oder aufgerufen (bInvokeScene) werden soll.

bSwitchUp: Befehlseingang Jalousie hoch.

bSwitchDown: Befehlseingang Jalousie herunter.

bInvokeScene: Angewählte Szene aufrufen.

bSaveScene: Angewählte Szene speichern.

uiSetpointPosition: Sollposition in %, welche in der gewählten Szene gesichert werden soll. Ist mit der Ist-Position des Aktorbausteins FB_BARSunblindActuator bzw. FB_BARRollerblind der Referenz-Jalousie/Rolllade zu verknüpfen, um dadurch eine vorher manuell angefahrene Position speichern zu können.

iSetpointAngle: dto. Lamellenwinkel in Grad.

VAR_OUTPUT

stSunblind              : ST_BARSunblind;
bActive                 : BOOL;
uiPositionActScene      : UINT;
iAnglePositionActScene  : INT;
bError                  : BOOL;
udiErrorId              : UDINT;

stSunblind : Positioniertelegramm, siehe ST_BARSunblind.

bActive : Entspricht dem Boole´schen Wert bActive im Jalousie-Telegramm ST_BARSunblind und dient zur reinen Anzeige, ob der Baustein ein aktives Telegramm sendet.

uiPositionActScene : Zeigt die gespeicherte relative Jalousiehöhenposition in % der aktuell angewählten Szene an.

iAnglePositionActScene : dto. Lammellenwinkel in Grad.

bError : Dieser Ausgang wird auf TRUE geschaltet, wenn die eingetragenen Parameter fehlerhaft sind.

udiErrorId : Enthält den Fehlercode, sollten die eingetragenen Werte fehlerhaft sein. Siehe Fehlercodes.

FB_BARSunblindScene 4:

Sollte ein Fehler anstehen, so wird diese Automatik deaktiviert und Position und Winkel auf 0 gesetzt. Das bedeutet, dass bei Verwendung einer Prioritätssteuerung automatisch eine andere Funktion niedrigerer Priorität (siehe Übersicht) die Steuerung der Jalousie übernimmt. Bei direkter Beschaltung hingegen wird die Jalousie auf Position/Winkel 0 fahren.

VAR_IN_OUT

Damit die eingetragenen Parameter über einen Steuerungsausfall hinweg erhalten bleiben ist es erforderlich, sie als In-Out-Variablen zu deklarieren. Im Programm wird ihnen dann eine Referenz-Variable zugewiesen. Jede Änderung des Wertes dieser Referenz-Variablen wird im Funktionsbaustein persistent gespeichert und nach einem Steuerungsausfall und -wiederanlauf zurück in die Referenz-Variable geschrieben. Wären die Parameter nur als Eingangsvariablen deklariert, so könnten sie eine Referenzvariable nicht beschreiben.
Anwendungsbeispiel: example_persistent.zip.

uiSwitchOverTime : UINT;
arrBlindScenes   : ARRAY[0..20] OF ST_BARSunblindScene;

uiSwitchOverTime : Zeit in Millisekunden bis bei dauerhaft aktiviertem Befehlseingang der entsprechende Handbefehl im Positioniertelegramm stSunblind in Selbsthaltung geht.

arrBlindScenes : Tabelle mit den Szeneneinträgen vom Typ ST_BARSunblindScene. Es können bis zu 21 Szenen gespeichert werden: 0..20.

Voraussetzungen

Entwicklungsumgebung

erforderliche Bibliothek

Erforderliche Function

TwinCAT 3.1 ab Build 4022.16

Tc2_HVAC V3.3.1.0

TF8000 | TC3 HVAC V1.0.0.0