FB_HVACCirculationPump

Dieser Funktionsbaustein dient zur Steuerung von Pumpen in der HLK-Technik.
VAR_INPUT
eDataSecurityType : E_HVACDataSecurityType;
bSetDefault : BOOL;
bEnable : BOOL;
bAuto : BOOL;
eCtrlModeActuator : E_HVACActuatorMode;
rOutsideTemp : REAL;
rValvePosition : REAL;
bFeedbPump : BOOL;
bPumpProtec : BOOL;
bAntiBlocking : BOOL;
bManSwitch : BOOL;
bCtrlVoltage : BOOL;
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: Wenn die Variable TRUE ist, werden die Default-Werte der VAR_IN_OUT Variablen übernommen.
bEnable: Freigabe des Bausteines, wenn bEnable = TRUE ist.
bAuto: Eingang für die Anforderung aus dem Automatikprogramm. Die Anforderung wird vom eCtrlModeActuator übersteuert.
eCtrlModeActuator: Enum, das die Betriebsart festlegt (siehe E_HVACActuatorMode).
rOutsideTemp: Eingang zur Übergabe des Außentemperaturwertes.
rValvePosition: Befindet sich in dem hydraulischen Kreis der Pumpe ein Regelventil, dann muss hier die Stellung des Regelventils angelegt werden.
bFeedbPump: Dieser Eingang dient zur Anzeige der Betriebsmeldung in einem Visualisierungssystem und zur Überwachung der Pumpenfunktion.
bPumpProtec: Am Eingang bPumpProtec wird eine Störmeldung der Pumpe angeschlossen. Eine Störung der Pumpe steht an, wenn der Eingang bPumpProtec FALSE ist. Bei einer anstehenden Störung wird der Ausgang bPump FALSE. Ein erneuter Anlauf der Pumpe ist nur nach einer Quittierung am Eingang bReset möglich.
bAntiBlocking: Eingang zur Übergabe der Antiblockieranforderung, d.h. bei TRUE ist die Anforderung aktiv.
bManSwitch: Besitzt die Pumpe im Schaltschrank einen Hand- / Notschalter, dann kann dieser an den Eingang bManSwitch angeschlossen werden, und somit wird der Status des Hand- / Notschalters überwacht. Bei bManSwitch= FALSE wird der Ausgang bPump gesperrt. Der Ausgang bPump kann nur eingschaltet werden, wenn bManSwitch = TRUE ist (Ruhestromprinzip).
bCtrlVoltage: Zur Meldeschauerunterdrückung wird die Störmeldung von bPumpProtec nur erfasst, wenn der Eingang bCtrlVoltage TRUE ist.
bReset: Quittierungseingang bei einer Störung.
VAR_OUTPUT
bPump : BOOL;
byState : BYTE;
bStateManSwitch : BOOL;
bReqOutsideTemp : BOOL;
bReqValve : BOOL;
eStateModeActuator : E_HVACActuatorMode;
bErrorPumpProtec : BOOL;
bErrorPumpFeedb : BOOL;
bErrorGeneral : BOOL;
byError : BYTE;
bInvalidParameter : BOOL;
bPump: Ausgangsvariable zur Ansteuerung einer Pumpe.
byState: Ausgabe des Pumpenstatus als Byte.
byState.0 := bEnable
byState.1 := bPump
byState.2 := bReqOutsideTemp
byState.3 := bReqValve
byState.4 := bAntiblocking
byState.5 := bFeedbPump
byState.6 := NOT bManSwitch
byState.7 := bCtrlVoltage
bStateManSwitch: Statusmeldung des Hand/Not-Schalter. Ein TRUE signalisiert, dass die Hand/Not-Bedienebene aktiviert ist.
bReqOutsideTemp: Falls die Bedingung zur Anforderung der Pumpe in Abhängigkeit der Außentemperatur TRUE ist, wird die Ausgangsvariable bReqOutsideTemp TRUE.
bReqValve: Falls die Bedingung zur Anforderung der Pumpe in Abhängigkeit der Ventilstellung erreicht ist, wird die Variable bReqValve TRUE.
eStateModeActuator: Zeigt, in welchem Betriebsmodus das Stellorgan ist (siehe E_HVACActuatorMode).
bErrorPumpProtec: Fehler von der Pumpe.
bErrorPumpFeedb: Wenn der Eingang bFeedbPump nach dem Setzen des Ausganges bPump nicht innerhalb der Zeit von tFeedbPumpDelay (tFeedbPumpDelay muss > t#0s sein) auf TRUE geht, dann wird dieses als Störung erkannt und dieser Ausgang wird auf TRUE gesetzt und der Ausgang bPump wird auf FALSE gesetzt. Diese Fehlermeldung muss mit bReset quittiert werden.
bErrorGeneral: Es liegt allgemein ein Fehler an.
byError: Ausgabe der Fehler als Byte.
byError.1 := bInvalidParameter
byError.2 := bErrorGeneral
byError.3 := bErrorPumpProtec
byError.4 := bErrorPumpFeedb
bInvalidParameter: TRUE, wenn bei der Plausibilitätsüberprüfung ein Fehler aufgetreten ist. Die Meldung muss mit bReset quittiert werden.
VAR_IN_OUT
tStopDelay : TIME;
tFeedbPumpDelay : TIME;
rOutsideTempLimit : REAL;
rValvePositionLimit : REAL;
eReqOutsideTemp : E_HVACReqOutsideTemp;
eReqValve : E_HVACReqValve;
tStopDelay: Mit der Zeit tStopDelay [s] wird das Abschalten der Pumpe nach dem Entfall der Einschaltbedingungen verzögert. Die Variable wird persistent gespeichert. Voreingestellt auf 0s.
tFeedbPumpDelay: Die Überwachungsfunktion der Pumpenbetriebsrückmeldung [s] ist nur aktiv, wenn tFeedbPumpDelay > t#0s ist. Bei tFeedbPumpDelay = t#0s ist die Überwachungsfunktion deaktiviert (0s..3600s). Die Variable wird persistent gespeichert. Voreingestellt auf 0s.
rOutsideTempLimit: Wert [°C] oberhalb bzw. unterhalb dessen die Pumpe in Abhängigkeit der Außentemperatur ein- bzw. ausgeschaltet wird (-60°c..60°C). Die Variable wird persistent gespeichert. Voreingestellt auf 10°C.
rValvePositionLimit: Schwellwert für die Stellung eines der Pumpe zugehörigen Regelventils, ab dem die Pumpe automatisch einschalten soll. z.B. Erhitzerpumpe (0%..100%). Die Variable wird persistent gespeichert. Voreingestellt auf 3%.
eReqOutsideTemp: In Abhängigkeit der Außentemperatur kann die Pumpe z.B. zu Frostschutzzwecken bei der Unterschreitung des Temperaturgrenzwertes rOutsideTempLimit zwangsweise eingeschaltet werden. Voraussetzung ist, dass bEnable = TRUE ist und die Pumpe im Automatikbetrieb ist (siehe E_HVACRegOutsideTemp). Die Variable wird persistent gespeichert.
Hinweis | |
Hand-Aus übersteuert die Frostschutzfunktion! |
eReqValve: In Abhängigkeit der Stellung des zur Pumpe gehörigen Ventils kann die Pumpe bei Überschreitung des Schwellwertes von rValvePositionLimit eingeschaltet werden. Die Aktivierung der Einschaltung über die Ventilstellung erfolgt über das ENUM. Außerdem wird mit dem ENUM bestimmt, ob für die Kombination der temperatur- und ventilstellungsabhängigen Einschaltbedingungen eine ODER - bzw. UND - VERKNÜPFUNG gilt (siehe E_HVACRegValve). Die Variable wird persistent gespeichert.
Eine Übersicht aller möglichen Kombinationen zeigt die folgende Tabelle:
eReqOutsideTemp | eReqValve | Funktion | Anwendung |
---|---|---|---|
OTLowerLimit | NoRequest | outsidetemp lower limit |
|
OTLowerLimit | OrValvePosHigherLimit | outsidetemp OR valve higher limit | Heizkreis, Lufterhitzer |
OTLowerLimit | AndValvePosHigherLimit | outsidetemp AND valve higher limit |
|
OTHigherLimit | NoRequest | outsidetemp higher limit |
|
OTHigherLimit | OrValvePosHigherLimit | outsidetemp OR valve higher limit |
|
OTHigherLimit | AndValvePosHigherLimit | outsidetemp AND valve higher limit | Kühlerpumpe |
NoRequest | NoRequest | no request | Primärpumpe |
NoRequest | OrValvePosHigherLimit | valve higher limit |
|
NoRequest | AndValvePosHigherLimit | not valid |
|
Durch die Kombinationen der beiden Variablen eReqOutsideTemp und eReqValve kann dieser Funktionsbaustein den Erfordernissen eines Heizkreises, eines Lufterhitzers, eines Luftkühler oder einer Zubringerpumpe angepasst werden.
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 |