FanControl
FanControl (FB)
FanControl (FB)FUNCTION_BLOCK FanControl
Kurzbeschreibung
Regelung eines drehzahlvariablen Ventilators ( Regelgrößen z.B. absoluter Druck, Differenzdruck) Zusatzfunktionen: Handübersteuerungen, Reparaturschalter, Betriebsstundenzähler, Betriebsüberwachung, Luftmangelüberwachung, Grenzwertüberwachungen Typische Anwendung: Regelung eines Ventilators mit Frequenzumrichter
Darstellung

Funktionsbeschreibung
Allgemeines
Dieser Funktionsbaustein regelt einen drehzahlvariablen Ventilator mittels eines stetigen Stellsignals rHA. Die generelle Freigabe des Ventilators erfolgt über die Anforderung xEn und das Freigabesignal xHB. Die Drehzahlregelung erfolgt mittels eines frei parametrierbaren PI-Reglers, dem der Sollwert rSetPoint und der Istwert rActValue zugeführt werden und daraus das Stellsignal des Reglers erzeugt. Es kommen im Wesentlichen folgende Funktionsbausteine zur Anwendung:
ControlPI
ManBin
ManNum
TwoPointFun
Ramp
CTime
AirShortage
OperatingHours
Freigabe - Ventilator vor Handübersteuerung xAB
Die Freigabe - Ventilator vor Handübersteuerung xAB wird aktiviert ( = TRUE ), falls gleichzeitig folgende Bedingungen erfüllt sind: Fall 1: &#xNAN;xEn = TRUE &#xNAN;xMSwitch = TRUE xAlarmControl = FALSE Fall 2: &#xNAN;xEn = TRUE &#xNAN;xMSwitch = TRUE xAlarmControl = TRUE &#xNAN;xAlarm = FALSE In allen übrigen Situationen ist die Freigabe - Ventilator vor Handübersteuerung xAB nicht aktiviert ( = FALSE ).
Freigabe - Ventilator nach Handübersteuerung xHB
Die Freigabe - Ventilator nach Handübersteuerung xHB entspricht der Freigabe - Ventilator vor Handübersteuerung xAB, zusätzlich erweitert um ein Handübersteuermodul. Die Freigabe kann generell nur dann erfolgen, falls die Zwangssperrung des Ventilators nach Handübersteuerung nicht aktiv ( xForce = FALSE ) und die Sammelstörmeldung 2 nicht aktiv ( = FALSE ) sind.
xAB
eManModeB
xHB
Hinweise
FALSE
eMANBIN.Auto
FALSE
Handübersteuermodul in Automatik
TRUE
eMANBIN.Auto
TRUE
Handübersteuermodul in Automatik
X
eMANBIN.ManOn
TRUE
Handübersteuermodul in Handbetrieb Ein
X
eMANBIN.ManOff
FALSE
Handübersteuermodul in Handbetrieb Aus
Legende: X = beliebig
Meldung des Reparaturschalters xMSwitch
xMSwitch = TRUE: Reparaturschalter wurde nicht ausgelöst ( Normalzustand ) &#xNAN;xMSwitch = FALSE: Reparaturschalter wurde ausgelöst ( Fehlerzustand )
Zwangssperrung des Ventilators nach Handübersteuerung xForce
xForce = FALSE: keine Zwangssperrung ( Normalzustand ) &#xNAN;xForce = TRUE: Zwangssperrung ( Ausnahmezustand )
Betriebsstunden und Einschaltvorgänge udiOperatingHours und udiCountFb
Die Anzahl der Betriebsstunden und der Einschaltvorgänge werden erfasst ( = Zählprozess aktiv ), falls die Betriebsmeldung des Ventilators xFb aktiv ist und gleichzeitig die Sammelstörmeldung 2 nicht aktiv ist ( = FALSE ). Die Ergebnisse stehen an den Zählerausgängen udiOperatingHours und udiCountFb zur Verfügung.
Schreibzugriff auf die Zählerstände
Über den Pfad ‘Instanzname._OperatingHours.udiOperatingHours’ bzw. ‘Instanzname._OperatingHours.udiCountFb’ ist ein Schreibzugriff auf die beide Zählerstände möglich.\
Voraussetzung für den Einsatz des Funktionsbausteins FanControl
Zur korrekten Funktion ist der Einsatz des Funktionsbausteins TimeRead2 erforderlich.
Datum / Uhrzeit des letzten Betriebs des Ventilators dtLastFb
Am Ausgang dtLastFb steht während des Zählprozesses das aktuelle Datum / die aktuelle Uhrzeit zur Verfügung. Am Ausgang dtLastFb steht ausserhalb des Zählprozesses das Datum / die Uhrzeit am Ende des letzten Zählprozesses zur Verfügung. Am Ausgang dtLastFb wird vor dem ersten Zählprozess der Initialisierungswert DT#1970-1-1-0.0.0 ausgegeben.
Betriebsüberwachung xAlarmFb
Die Betriebsüberwachung kann durch den Sollwert / Parameter xFbControl freigegeben ( = TRUE ) oder gesperrt ( = FALSE ) werden. Bei gesperrter Überwachung wird die Störmeldung der Betriebsüberwachung xAlarmFb immer gesperrt ( = FALSE ). Bei freigegebener Überwachung wird die Störmeldung der Betriebsüberwachung xAlarmFb aktiviert ( = TRUE ), falls gleichzeitig während einer Mindestzeitdauer udiFbControlTime folgende Zustände gegeben sind: &#xNAN;xHB und xFb = ungleich ( Freigabezustand und Betriebszustand stimmen nicht überein ) &#xNAN;eAOO = HVACTYPES.eManBin.Auto ( Handübersteuerung - Hardware für die Freigabe in Automatik ) xFbControl = TRUE ( Betriebsüberwachung ist freigegeben ) Die Störmeldung der Betriebsüberwachung xAlarmFb wird zurück gesetzt ( = FALSE ), falls mindestens eine der nachfolgenden Bedingungen erfüllt ist: &#xNAN;eAOO = HVACTYPES.eManBin.Auto ( Rückschaltung in den Automatikbetrieb der Handübersteuerung - Hardware ) &#xNAN;xQuit = TRUE ( Rücksetzung der Überwachungen ist aktiv ) xFbControl = FALSE ( Betriebsüberwachung gesperrt )
Luftmangelüberwachung xAlarmPFb
Die Luftmangelüberwachung erfolgt durch die Auswertung der Zustände an den Eingängen xPFb bzw. xFb. Die Störmeldung der Luftmangelüberwachung xAlarmPFb wird aktiviert ( = TRUE ), falls bei freigegebener Überwachung ( xPFbControl = TRUE ) während der Meldeverzögerung der Luftmangelüberwachung udiPFbControlTime permanent der Eingang xPFb nicht aktiv ( = FALSE ) und der Eingang xFb aktiv ( = TRUE ) sind. Die Störmeldung der Luftmangelüberwachung xAlarmPFb wird deaktiviert ( = FALSE ), falls die Bedingungen zur Aktivierung nicht mehr gegeben sind und gleichzeitig die Überwachung gesperrt ist ( xPFbControl = FALSE ) und / oder die Rücksetzung der Störmeldungen ( Überwachungen ) aktiv ist ( xQuit = TRUE ).
Sammelstörmeldung 1 - Ausgang xAlarm
Die Sammelstörmeldung wird aktiviert ( = TRUE ), falls mindestens eine der nachfolgend beschriebenen Bedingungen erfüllt ist. &#xNAN;xAlarmIn = TRUE ( Störmeldung des Ventilators ist aktiv ) &#xNAN;xAlarmFB = TRUE ( Fehler aus der Betriebüberwachung ) &#xNAN;xAlarmPFB = TRUE ( Fehler aus der Luftmangelüberwachung ) &#xNAN;xMSwitch = FALSE ( Reparaturschalter in Stellung Aus ) &#xNAN;xAlarmMaxValue = TRUE ( Maximalwert überschritten ) &#xNAN;xAlarmMinValue = TRUE ( Minimalwert unterschritten ) In allen übrigen Fällen ist die Sammelstörung nicht aktiv ( = FALSE ).
Sammelstörmeldung 2
Die Sammelstörmeldung wird aktiviert ( = TRUE ), falls mindestens eine der nachfolgend beschriebenen Bedingungen erfüllt ist. &#xNAN;xAlarmIn = TRUE ( Störmeldung des Ventilators ist aktiv ) &#xNAN;xAlarmFB = TRUE ( Fehler aus der Betriebüberwachung ) &#xNAN;xAlarmPFB = TRUE ( Fehler aus der Luftmangelüberwachung ) &#xNAN;xMSwitch = FALSE ( Reparaturschalter in Stellung Aus ) &#xNAN;xAlarmMaxValue = TRUE ( Maximalwert überschritten ) In allen übrigen Fällen ist die Sammelstörung nicht aktiv ( = FALSE ).
Rücksetzung der Störmeldungen xQuit
Jede ansteigende Flanke ( FALSE > TRUE ) am Eingang xQuit löscht eventuell vorhandene Störmeldungen der folgenden Überwachungseinrichtungen Luftmangelüberwachung Betriebsüberwachung Minimalwertüberwachung Maximalwertüberwachung
Regelprozess
Allgemeines Der Istwert *rActValue* wird durch eine lineare Kennlinie skaliert und dem PI-Regler zugeführt. Der Sollwert *rSetPont* wird durch eine Signalrampe gefiltert, durch eine lineare Kennlinie skaliert und dem PI-Regler zugeführt. Das Ausgangssignal des PI-Reglers wird durch eine weitere Signalrampe gefiltert und dem Ausgang für das Stellsignal *rHA* zugeführt. Freigabe Die Freigabe des Regelprozesses erfolgt mit einer Zeitverzögerung von **udiWaitControl** nach der aktiven Betriebsmeldung des Ventilators ( *xFb* = TRUE ). Die Sperrung des Regelprozesses erfolgt ohne Zeitverzögerung nach der inaktiven Betriebsmeldung des Ventilators ( *xFb* = FALSE ). Sollwert Der Sollwert wird auf Wert 0.0 fixiert, falls die Freigabe des Ventilators nicht aktiv ist ( *xHB* = FALSE ). Der Sollwert wird vom Eingang *rSetPoint* übernommen, durch eine Signalrampe gefiltert und durch eine durch 2 Punkte definierte lineare Funktion skaliert ( Voraussetzung: *xHB* = TRUE ). Die relevanten Parameter der Signalrampe sind individuell einstellbar ( Maximale Variation = (**rMaxValue** / 5) pro 10s ). Die relevanten Parameter der linearen Funktion sind individuell einstellbar ( Eingangsbereich in Pa: 0.0 - **rMaxValue**, Ausgangsbereich in %: 0.0 - 100.0 ). Istwert Der Istwert wird vom Eingang *rActValue* übernommen und durch eine durch 2 Punkte definierte lineare Funktion skaliert. Die relevanten Parameter der linearen Funktion sind individuell einstellbar ( Eingangsbereich in Pa: 0.0 - **rMaxValue**, Ausgangsbereich in %: 0.0 - 100.0 ). Begrenzung des Stellsignals des PI-Reglers **rYMin** und **rYMax** Das Stellsignal des Reglers ( PI-Regler ) wird durch die einstellbaren Grenzwerte **rYMin** und **rYMax** ( Minimalwertüberwachung nicht aktiv ) bzw. **rSubstitueHA** ( Minimalwertüberwachung aktiv ) begrenzt. Signalrampe des Stellsignals aus dem PI-Regler Das Stellsignal aus dem PI-Regler wird durch eine Signalrampe gefiltert. Die relevanten Parameter der Signalrampe sind individuell einstellbar ( Maximale Variation = **rYRampVariation** pro **rYRampTime** ). Parameter des PI-Reglers Die für das Regelverhalten wesenlichen Parameter können von außen vorgegeben werden. Sie müssen je nach Regelstrecke angepast werden. Es wurde bereits eine sinnvolle Basisparametrierung vorgenommen, die in vielen Anwendungsfällen ausreichend ist. **rYMin** = Unterer absoluter Grenzwert des Regler-Ausgangssignals **rYMax** = Oberer absoluter Grenzwert des Regler-Ausgangssignals **rOffset** = Sollwertversatz - Regler **rKp** = Verstärkungsfaktor - Regler **rTn** = Nachstellzeit - Regler in s **eAction** = Wirksinnn des Reglers ( Invertiert, Direkt ) **rInitValue** = Initialisierungswert für das Stellsignal **rYDisabled** = Stellsgnal bei inaktivem Regler Signale des PI-Reglers Die während des Regelprozesses errechneten Signale ( vor der Signalrampe ) stehen zur Kontrolle des Regelvorgangs zur Verfügung. *rPiDiff* = Regelabweichung am Regler *rPiPartP* = Proportionalanteil am Stellsignal *rPiPartI* = Integralanteil am Stellsignal *xPiLimitActiv* = Status - Grenzwertüberschreitung - Stellsignal ( FALSE = Aus, TRUE = Ein ) Stellsignal des Reglers Bei nicht freigegebenem Regler wird der Ausschaltwert **rYDisabled** zum Ausgang Stellsignal des Reglers übertragen ( Voraussetzung: **ePiManModeN** = eMANNUM.Auto ) und durch die absoluten Grenzwerte begrenzt. Der Integralanteil wird auf 0.0 gesetzt. Bei freigegebenem Regler wird das Stellsignal des Reglers berechnet ( Voraussetzung: **ePiManModeN** = eMANNUM.Auto ) und durch die absoluten Grenzwerte begrenzt. Mit der Grundeinstellung des Wirksinns **eAction** ( = eControlMode.Inverted ) bewirkt ein zu geringer Istwert ( Istwert < Sollwert ) eine stetige Erhöhung des Wertes des Stellsignals des Reglers.
Stellsignal Ventilator vor Handübersteuerung rAA
Das Stellsignal des Ventilators vor Handübersteuerung rAA wird primär vom Ausgangssignal des Reglers nach der Signalrampe übernommen. Dieses Ausgangssignal wird jedoch zusätzlich während der Anforderung des Ventilators ( xHB = TRUE ) durch den unteren absoluter Grenzwert **rYMin* nach unten begrenzt. Im Falle einer Minimalwertunterschreitung ( xAlarmMinValue = TRUE ) wird das Stellsignal vor Handübersteuerung rAA durch den Fixwert rSubstitueHA ersetzt.
Stellsignal Ventilator nach Handübersteuerung rHA
Das Stellsignal des Ventilators nach Handübersteuerung rHA entspricht dem Stellsignal des Ventilators vor Handübersteuerung rAA zusätzlich erweitert um ein Handübersteuermodul.
rAA
eManModeN
rHA
Hinweise
X
eMANNUM.Auto
rAA
Handübersteuermodul in Automatik
X
eMANNUM.Man
eManValue
Handübersteuermodul in Handbetrieb
Legende: X = beliebig
Betriebsart für das Ausgangssignal des Reglers ePIManModeN
Der Parameter ePiManModeN erlaubt die Umschaltung des Ausgangssignals des Reglers vom Automatik- in den Handbetrieb und umgekehrt. Im Handbetrieb übernimmt das Ausgangssignal des Reglers das Ausgangssignal im Handbetrieb ePiManValue.
ePiManModeN
Ausgangssignal
Funktion
eMANNUM.Auto
Signal gemäß Formel / Ausschaltwert
Automatikbetrieb - Ausgangssignal
eMANNUM.Man
ePiManValue
Handbetrieb - Ausgangssignal
Überwachung des Maximaldrucks xAlarmMaxValue
Der Ausgang xAlarmMaxValue wird aktiviert ( = TRUE ), falls während einer Mindestzeitdauer von 10s der aktuelle Istwert rActValue den einstellbaren Maximalwert rMaxValue überschreitet. Der Ausgang xAlarmMaxValue wird deaktiviert ( = FALSE ), falls der aktuelle Istwert rActValue den einstellbaren Maximalwert rMaxValue unterschreitet und gleichzeitig am Eingang xQuit eine ansteigende Flanke ( FALSE > TRUE ) erkannt wird.
Überwachung des Minimaldrucks xAlarmMinValue
Der Ausgang xAlarmMinValue wird aktiviert ( = TRUE ), falls während einer Mindestzeitdauer udiWaitMinValue ( 1.0 - 600.0 s ) folgende Bedingungen gleichzeitig permanent erfüllt sind: &#xNAN;xFb = TRUE ( Ventilator ist in Betrieb ) &#xNAN;eAO = HVACTYPES.eManNum.Auto ( Betriebsart der Handübersteuerung - Hardware für das Stellsignal im Automatikbetrieb ) &#xNAN;rHA > rMinHAValue ( Stellsignal ist grösser als der Minimalwert ) &#xNAN;rActValue < rMinValue ( Istwert ist kleiuer als der Minimalwert ) Es wurde keine ansteigende Flanke ( FALSE > TRUE ) am Eingang xQuit erkannt Der Ausgang xAlarmMinValue wird deaktiviert ( = FALSE ), falls die Bedingungen für die Aktivierung nicht mehr erfüllt sind und gleichzeitig am Eingang xQuit eine ansteigende Flanke ( FALSE > TRUE ) erkannt wird.
Sammelmeldung Automatikbetrieb xAuto
Die Sammelmeldung Automatikbetrieb xAuto wird aktiviert ( = TRUE ), falls folgende Bedingungen gleichzeitig erfüllt sind:\
Eingang eAOO = HVACTYPES.eManBin.Auto
Eingang eAO = HVACTYPES.eManNum.Auto
Sollwert / Parameter eManModeB = eMANBIN.Auto
Sollwert / Parameter eManModeN = eMANNUM.Auto
Sollwert / Parameter ePiManModeN = eMANNUM.Auto
CODESYS
InOut:
Input
xEn
BOOL
Input
xForce
BOOL
FALSE
Input
xFb
BOOL
Input
xPFb
BOOL
Input
xMSwitch
BOOL
TRUE
Input
xAlarmIn
BOOL
Input
eAOO
eManBin
eManBin.Auto
Input
eAO
eManNum
eManNum.Auto
Input
rPoti
REAL
Input
rU
REAL
Input
xQuit
BOOL
FALSE
Input
rActValue
REAL
Input
rSetPoint
REAL
Output
xHB
BOOL
Output
xAB
BOOL
Output
rHA
REAL
Output
rAA
REAL
Output
xAlarmFb
BOOL
Output
xAlarmPFb
BOOL
Output
xAlarmMinValue
BOOL
Output
xAlarmMaxValue
BOOL
Output
dtLastFb
DT
Output
udiOperatingHours
UDINT
Output
udiCountFb
UDINT
Output
xAlarm
BOOL
Output
xAuto
BOOL
Output
rPiDiff
REAL
Output
rPiPartP
REAL
Output
rPiPartI
REAL
Output
xPiLimitActiv
BOOL
Input Const
rMaxValue
REAL
490
Input Const
rSubstituteHA
REAL
30
Input Const
udiWaitMinValue
UDINT
60
Input Const
rMinHAValue
REAL
20
Input Const
rMinValue
REAL
20
Input Const
tYRampTime
TIME
TIME#1m0s0ms
Input Const
rYRampVariation
REAL
30
Input Const
udiWaitControl
UDINT
30
Input Const
rYMax
REAL
100
Input Const
rYMin
REAL
20
Input Const
rTn
REAL
60
Input Const
rKp
REAL
1
Input Const
rOffset
REAL
0
Input Const
rInitValue
REAL
20
Input Const
rYDisabled
REAL
0
Input Const
eAction
eControlMode
eControlMode.Inverted
Input Const
ePiManValue
REAL
Input Const
ePiManModeN
eMANNUM
eMANNUM.Auto
Input Const
udiPFbControlTime
UDINT
60
Input Const
xPFbControl
BOOL
TRUE
Input Const
xAlarmControl
BOOL
TRUE
Input Const
udiFbControlTime
UDINT
60
Input Const
xFbControl
BOOL
TRUE
Input Const
rManValue
REAL
Input Const
eManModeN
eMANNUM
eMANNUM.Auto
Input Const
eManModeB
eMANBIN
eMANBIN.Auto
Methods:
mQuit
mResetOperatingHours
Structure:
mQuit (Method)
mResetOperatingHours (Method)
Zuletzt aktualisiert

