FanControl

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:

Scope
Name
Type
Initial

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