FB_HVACAnalogOutputEx/FB_HVACAnalogOutputEx2

Dieser Funktionsbaustein dient zur Ansteuerung stetiger Stellorgane wie beispielsweise Ventile oder Klappen mit einer Stellungsrückmeldung.
Im Vergleich zu dem FB_HVACAnalogOutput ist in diesem Funktionsbaustein eine Skalierungsfunktion integriert. Die Funktion lautet: y=m*x+b.
Der Unterschied zwischen den Bausteinen FB_HVACAnalogOutputEx und FB_HVACAnalogOutputEx2ist lediglich der, das bei FB_HVACAnalogOutputEx2nach Ansprechen von bFrost der Wirksinn abgefragt wird. Ist der Wirksinn invers wird rY auf den kleinsten Wert gesetzt.
Anwendungsbeispiel:
Klappenstellantrieb Arbeitsbereich 2-10V mit der KL4404 (Signalspannung 0-10Volt)
rX1 = 0 / iY1 = 6553
rX2 = 100 / iY2 = 32767
VAR_INPUT
eDataSecurityType : E_HVACDataSecurityType;
bSetDefault : BOOL;
bEnable : BOOL;
rSetpoint : REAL;
bCtrlVoltage : BOOL;
eCtrlModeAnalogOutput: E_HVACAnalogOutputMode;
rYManual : REAL;
rFeedb : REAL;
bFrost : 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 Bausteins, wenn bEnable = TRUE ist. Ohne Freigabe des Bausteins wird am Ausgang rY der Wert Null ausgegeben.
rSetpoint: Mit der Variablen rSetpoint wird dem Funktionsbaustein der Sollwert für den Analogausgang übergeben.
bCtrlVoltage: Die Steuerspannung steht an, wenn die Variable bCtrlVoltage TRUE ist. Bei einem Ausfall der Steuerspannung wird die Rückmeldungskontrolle deaktiviert damit keine Fehlalarme entstehen.
eCtrlModeAnalogOutput: Enum, das die Betriebsart festlegt (siehe E_HVACAnalogOutputMode).
TYPE E_HVACAnalogOutputMode :
(
eHVACAnalogOutputMode_Auto_BMS := 0,
eHVACAnalogOutputMode_Manual_BMS := 1,
eHVACAnalogOutputMode_Auto_OP := 2,
eHVACAnalogOutputMode_Manual_OP := 3
);
END_TYPE
rYManual: Analoger Eingangswert, der in Handbetrieb an den Ausgang rY weitergeleitet wird.
rFeedb: Analoge Stellungsrückmeldung vom Stellorgan.
bFrost: Dieser Eingang dient der Frostschutzfunktion eines Lufterhitzers. Sobald der Eingang bFrost TRUE ist, wird rY auf die maximale Größe (rRangeHigh) und iYTerminal auf 32767 gesetzt. Der Ausgang rY und iYTerminal bleiben solange gesetzt bis der Eingang bFrost wieder FALSE ist.
Bei FB_HVACAnalogOutputEx2 wird nach Ansprechen von bFrost der Wirksinn abgefragt. Ist der Wirksinn invers wird rY auf den kleinsten Wert gesetzt.
bReset: Quittierungseingang bei einer Störung.
VAR_OUTPUT
rY : REAL;
iYTerminal : INT;
eStateModeAnalogOutput : E_HVACAnalogOutputMode;
bManualMode : BOOL;
byState : BYTE;
bErrorFeedb : BOOL;
bErrorGeneral : BOOL;
byError : BYTE;
bInvalidParameter : BOOL;
rY: Zeigt die aktuelle Größe des Stellsignals in % an (0%..100%).
iYTerminal: Stellt die Größe des Ausgangssignals skaliert auf den Wertebereich von 0 bis 32767 dar.
eStateModeAnalogOutput: Enum, das die Betriebsart anzeigt (siehe E_HVACAnalogOutputMode).
bManualMode: Der Analogausgang befindet sich im manuellen Betriebsmodus.
byState: Statusbyte über den Betriebszustand des Funktionsbausteines.
byState.0 := bEnable;
byState.1 := bManualMode;
byState.2 := bFrost;
byState.7 := bCtrlVoltage;
bErrorFeedb: Fehler Rückführsignal.
bErrorGeneral: Ist eine Sammelmeldung aller Störungen des Funktionsbausteins.
byError: Liefert alle Fehlermeldungen und Warnungen.
byError.1 := bInvalidParameter
byError.2 := bErrorGeneral
byError.3 := bErrorFeedb
bInvalidParameter: TRUE, wenn bei der Plausibilitätsüberprüfung ein Fehler aufgetreten ist. Die Meldung muss mit bReset quittiert werden.
VAR_IN_OUT
rX2 : REAL;
rX1 : REAL;
iY2 : INT;
iY1 : INT;
bDirection : BOOL;
bEnableFeedbCtrl : BOOL;
rHysteresisFeedbCtrl : REAL;
tDelayFeedbCtrl : TIME;
rX2: Oberer Grenzwert an der X-Achse (-32767..32767). Die Variable wird persistent gespeichert.
rX1: Unterer Grenzwert an der X-Achse (-32767..32767). Die Variable wird persistent gespeichert.
rY2: Oberer Grenzwert an der Y-Achse (0..32767). Die Variable wird persistent gespeichert.
rY1: Unterer Grenzwert an der Y-Achse (0..32767). Die Variable wird persistent gespeichert.
bDirection: Mit der Variablen bDirection wird das Ausgangssignal von rY invertiert. FALSE entspricht dem direkten Wirksinn. Die Variable wird persistent gespeichert.
bEnableFeedbCtrl: Stetige Stellantriebe besitzen oft eine Stellungsrückmeldung. Mittels der Stellungsrückmeldung wird die Funktion des Stellantriebs überwacht. Die Überwachung der Stellungsrückmeldung ist aktiviert, wenn Die Variable bEnableFeedbCtrl TRUE ist. Die Variable wird persistent gespeichert.
rHysteresisFeedbCtrl: Bedingt durch die Verfahrzeit typischer Antriebe in der Heizungs- und Klimatechnik ist bei einem Sollwertsprung für die Position des Stellantriebs, das Rückführsignal nacheilend. Mit der Variablen rHysteresisFeedbCtrl wird ein Bereich festgelegt innerhalb dessen der Positionssollwert rY des Stellorgans vom Rückführsignal abweichen darf (0..32767). Die Variable wird persistent gespeichert.
tDelayFeedbCtrl: Ist die Abweichung zwischen der Soll- und Istposition des Stellantriebs größer als +/- rHysteresisFeedbCtrl, dann wird das Ansprechen des Ausgangs bErrorFeedb um die Zeit des Timers tDelayFeedbCtrl verzögert (0s..50s). Die Variable wird persistent gespeichert.
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 |