FB_HVACFixedLimit

Dieser Funktionsbaustein stellt einen Grenzwertschalter dar, dessen Ausgangssignal in Abhängigkeit der Zeitverzögerungen tDelayHighLimit / tDelayLowLimit, des Modus bModeFixedLimit, der Grenzwerte rHighLimit / rLowLimit und des Eingangssignals rInputValue geschaltet wird.
VAR_INPUT
eDataSecurityType : E_HVACDataSecurityType;
bSetDefault : BOOL;
bEnable : BOOL;
rInputValue : REAL;
bReset : 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. |
bSetDefault: Mit einer steigenden Flanke an dieser Eingangsvariablen werden die Default-Werte der VAR_IN_OUT Variablen übernommen.
bEnable: Freigabe des Bausteins, wenn bEnable = TRUE ist.
rInputValue: Eingangssignal
bReset: Eingang zur Quittierung der falschen Parameterangabe über eine steigende Flanke.
VAR_OUTPUT
bEvent : BOOL;
bEdgeHighLimit : BOOL;
bEdgeLowLimit : BOOL;
bInvalidParameter : BOOL;
bEvent: Ausgangssignal, welches in Abhängigkeit der Zeitverzögerungen tDelayHighLimit / tDelayLowLimit, des Modus bModeFixedLimit, des Eingangssignals rInputValue und der Grenzwerte rHighLimit / rLowLimit geschaltet wird.
bEdgeHighLimit: Ist für einen SPS-Zyklus TRUE nach dem das Eingangssignal rInputValue die Variable rHighLimit für die Zeitdauer von tDelayHighLimit überschritten hat.
bEdgeLowLimit: Ist für einen SPS-Zyklus TRUE nach dem das Eingangssignal rInputValue die Variable rLowLimit für die Zeitdauer von tDelayLowLimit unterschritten hat.
bInvalidParameter: Zeigt an, dass ein falscher Parameter an einer der Variablen rHighLimit, rLowLimit, tDelayHighLimit oder tDelayHighLimit anliegt. Eine falsche Parameterangabe führt nicht zum Stillstand des Bausteines, siehe Beschreibung der Variablen. Nach Behebung der falschen Parameterangabe muss die Meldung bInvalidParameter mit bReset quittiert werden.
VAR_IN_OUT
bModeFixedLimit : BOOL;
rHighLimit : REAL;
rLowLimit : REAL;
tDelayHighLimit : TIME;
tDelayLowLimit : TIME;
bModeFixedLimit: Ist bModeFixedLimit = TRUE, dann wird die Ausgangsvariable bEvent TRUE, wenn das Eingangssignal rInputValue die Variable rHighLimit für die Zeitdauer von tDelayHighLimit überschritten hat. Ist bEvent = TRUE, dann ist bEdgeHighLimit für einen SPS-Zyklus gesetzt. Unterschreitet das Eingangssignal rInputValue die Variable rLowLimit für die Zeitdauer von tDelayLowLimit, dann wird bEvent FALSE und bEdgeLowLimit für einen SPS-Zyklus gesetzt.
Ist bModeFixedLimit = FALSE, dann wird die Ausgangsvariable bEvent TRUE, wenn das Eingangssignal rInputValue die Variable rLowLimit für die Zeitdauer von tDelayLowLimit unterschritten hat. Ist bEvent = TRUE, dann ist bEdgeLowLimit für einen SPS-Zyklus gesetzt. Überschreitet das Eingangssignal rInputValue die Variable rHighLimit für die Zeitdauer von tDelayHighLimit, dann wird bEvent FALSE und bEdgeHighLimit für einen SPS-Zyklus gesetzt.
Die Variable wird persistent gespeichert. Voreingestellt auf 1.
rHighLimit: Oberer Grenzwert.
Liegt ein nicht korrekter Variablenwert an, dann wird, wenn vorhanden, der letzte, gültige Variablenwert genommen. Wenn kein gültiger, letzter Wert vorliegt, dann wird mit dem Default-Wert weitergearbeitet. bInvalidParameter wird bei falscher Parameterangabe gesetzt, der Funktionsbaustein arbeitet normal weiter.
Die Variable wird persistent gespeichert. Voreingestellt auf 22.
rLowLimit: Unterer Grenzwert.
Liegt ein nicht korrekter Variablenwert an, dann wird, wenn vorhanden, der letzte, gültige Variablenwert genommen. Wenn kein gültiger, letzter Wert vorliegt, dann wird mit dem Default-Wert weitergearbeitet. bInvalidParameter wird bei falscher Parameterangabe gesetzt, der Funktionsbaustein arbeitet normal weiter.
Die Variable wird persistent gespeichert. Voreingestellt auf 18.
tDelayHighLimit: Schaltverzögerung [s] beim Überschreiten des oberen Grenzwertes.
Liegt ein nicht korrekter Variablenwert an, dann wird, wenn vorhanden, der letzte, gültige Variablenwert genommen. Wenn kein gültiger, letzter Wert vorliegt, dann wird mit dem Default-Wert weitergearbeitet. bInvalidParameter wird bei falscher Parameterangabe gesetzt, der Funktionsbaustein arbeitet normal weiter.
Die Variable wird persistent gespeichert. Voreingestellt auf 1s.
tDelayLowLimit: Schaltverzögerung [s] beim Unterschreiten des unteren Grenzwertes.
Liegt ein nicht korrekter Variablenwert an, dann wird, wenn vorhanden, der letzte, gültige Variablenwert genommen. Wenn kein gültiger, letzter Wert vorliegt, dann wird mit dem Default-Wert weitergearbeitet. bInvalidParameter wird bei falscher Parameterangabe gesetzt, der Funktionsbaustein arbeitet normal weiter.
Die Variable wird persistent gespeichert. Voreingestellt auf 1s.
Verhalten der Ausgangsgröße

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 |