FB_BARSunblindWeatherProtection

FB_BARSunblindWeatherProtection 1:

Der Witterungsschutz hat bei der Jalousiesteuerung die höchste Priorität (siehe Übersicht) und soll sicherstellen, dass die Jalousie weder durch Eis, noch durch Wind beschädigt wird.

Die Witterungsschutzautomatik hat die Aufgabe, die Jalousie vor zwei unmittelbar bevorstehenden Gefahren zu schützen und sie dafür in eine sichere Position zu fahren:

In beiden Gefahr-Fällen wird die Jalousie in die Schutzposition gefahren die durch uiPositionProtection (Höhenposition in Prozent) und iAngleProtection (Lamellenwinkel in Grad) vorgegeben wird.

VAR_INPUT

eDataSecurityType    : E_HVACDataSecurityType;
bEnable              : BOOL;
lrWindSpeed          : LREAL;
lrOutsideTemperature : LREAL;
bRainSensor          : BOOL;

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 und bActive steht auf FALSE. Das bedeutet, dass über die Prioritätssteuerung eine andere Funktionalität die Jalousieansteuerung übernimmt.

lrWindSpeed: Windgeschwindigkeit. Die Einheit der Eingabe ist beliebig, jedoch ist es wichtig, dass es keine Werte kleiner als 0 gibt, und die Werte mit zunehmender Geschwindigkeit größer werden.

lrOutsideTemperature: Außentemperatur in Grad Celsius.

bRainSensor: Eingang für einen Niederschlagssensor.

VAR_OUTPUT

stSunblind                  : ST_BARSunblind;
bIceAlarm                   : BOOL;
udiRemainingTimeIceAlarm    : UDINT;
bStormAlarm                 : BOOL;
uiRemainingTimeStormDetect  : UINT;
uiRemainingTimeStormAlarm   : UINT;
bError                      : BOOL;
udiErrorId                  : UDINT;

stSunblind: Ausgabestruktur der Jalousiestellungen, siehe ST_BARSunblind.

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

bIceAlarm: Zeigt den Vereisungsalarm an.

udiRemainingTimeIceAlarm: Bei aufkommenden Vereisungsfall (bIceAlarm=TRUE) wird dieser Sekundenzähler auf die Enteisungszeit gesetzt. Sobald die Temperatur über dem eingetragenen Frostpunkt (lrFrostTemperature) liegt, werden hier die verbleibenden Sekunden bis zur Entwarnung (bIceAlarm=FALSE) angezeigt. Solange kein Herunterzählen der Zeit stattfindet, steht dieser Ausgang auf 0.

bStormAlarm: Zeigt den Sturmalarm an.

uiRemainingTimeStormDetect: Im unkritischen Fall zeigt dieser Sekundenzähler konstant die Alarmverzögerungszeit uiDelayStormUpcoming an. Liegt die gemessene Windstärke lrWindSpeed über dem Aktivierungsgrenzwert lrWindSpeedStormUpcoming, so werden die Sekunden bis zum Alarm heruntergezählt. Solange kein Herunterzählen der Zeit stattfindet, steht dieser Ausgang auf 0.

uiRemainingTimeStormAlarm: Sobald der Sturmalarm ausgelöst wird, zeigt dieser Sekundenzähler zunächst konstant die Deaktivierungsverzögerungszeit uiDelayStormAbating des Sturmalarmes an. Sinkt die gemessene Windstärke lrWindSpeed unter den Deaktivierungsgrenzwert lrWindSpeedStormAbating, so werden die Sekunden bis zur Entwarnung (bStormAlarm=FALSE) heruntergezählt. Solange kein Herunterzählen der Zeit stattfindet, steht dieser Ausgang auf 0.

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_BARSunblindWeatherProtection 2:

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.

lrFrostTemperature       : LREAL;
lrWindSpeedStormUpcoming : LREAL;
lrWindSpeedStormAbating  : LREAL;
uiDeiceTime              : UINT;
uiDelayStormUpcoming     : UINT;
uiDelayStormAbating      : UINT;
uiPositionProtection     : UINT;
iAngleProtection         : INT;

lrFrostTemperature: Vereisungstemperatur-Grenzwert in Grad Celsius. Dieser Wert darf nicht größer als 0 sein. Anderenfalls wird ein Fehler ausgegeben.

lrWindSpeedStormUpcoming: Windgeschwindigkeits-Grenzwert zur Aktivierung des Sturmalarmes. Dieser Wert darf nicht kleiner als 0 sein und muss oberhalb des Wertes für die Deaktivierung liegen. Anderenfalls wird ein Fehler ausgegeben. Die Einheit der Eingabe muss die gleiche sein wie die des Einganges lrWindSpeed. Ein Wert größer als dieser Grenzwert löst nach der eingetragenen Zeit uiDelayStormUpcoming den Alarm aus.

lrWindSpeedStormAbating: Windgeschwindigkeits-Grenzwert zur Deaktivierung des Sturmalarmes. Dieser Wert darf nicht kleiner als 0 sein und muss unterhalb des Wertes für die Aktivierung liegen. Anderenfalls wird ein Fehler ausgegeben. Die Einheit der Eingabe muss die gleiche sein wie die des Einganges lrWindSpeed. Ein Wert kleiner oder gleich diesem Grenzwert setzt nach der eingetragenen Zeit uiDelayStormAbating den Alarm zurück.

uiDeiceTime: Zeit zum Abtauen der Jalousie nach Vereisung (in Minuten). Danach wird der Vereisungsalarm zurückgesetzt.

uiDelayStormUpcoming: Verzögerungszeit zur Auslösung des Sturmalarmes in Sekunden.

uiDelayStormUpcoming: Verzögerungszeit zum Rücksetzen des Sturmalarmes in Sekunden.

uiPositionProtection: Höhenposition der Jalousie in % im Schutzfall.

iAngleProtection: Lamellenwinkel der Jalousie in Grad im Schutzfall.

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