FB_BACnetLoop1201

Universeller BACnet PID-Regler (große Version)

FB_BACnetLoop1201 1:

Funktionsbeschreibung

Dieser Baustein bildet den Baustein FB_BA_PIDCtrl als Loop-Objekt im BACnet ab. Das Loop-Objekt auf der BACnet-Seite hat dabei im Wesentlichen die Aufgabe, Parameter und Werte aus der PLC heraus darzustellen und in die PLC zu übertragen. Die Reglerlogik liegt allein in der PLC im untergeordneten FB_BA_PIDCtrl. Es ist möglich, die wesentlichen Parameter von beiden Seiten - PLC und BACnet - zu verändern wobei die letzte Änderung immer die gültige ist. Die Übertragung dieser Parameter erfolgt aus der PLC heraus per ADS und in die PLC per zyklischem Interface. PLC-seitig haben alle Parameter zusätzlich einen Enable-Eingang: Ist der betreffende Enable-Eingang erstmalig gesetzt (steigende Flanke), so wird der am Parameter-Eingang stehende Wert in jedem Fall übertragen, im weiteren Verlauf – bei gesetztem Enable – nur noch bei Werteänderung, um so den ADS-Verkehr zu mindern. Ist der Enable-Eingang nicht gesetzt, so erfolgt keine Übertragung.

PLC-Variable

Bemerkung

BACnet-Property (Property ID)

bEnActn

Freigabe zum Beschreiben des ReglerWirksinns

 

bActn

Property-Wert ReglerWirksinn
bActn=TRUE, BACnet direct → ReglerWirksinn: E=X-W (Kühlen)
bActn=FALSE, BACnet reverse → ReglerWirksinn: E=W-X (Heizen)

Action (2)

bEnPropConst

Freigabe zum Beschreiben der Proportionalitätskonstante (K-Faktor)

 

rPropConst

Property-Wert Proportionalitätskonstante (K-Faktor)

ProporttionalConstant (93)

bEnIntgConst

Freigabe zum Beschreiben der Integrationszeit (I-Anteil)

 

rIntgConst

Property-Wert Integrationszeit [s] (I-Anteil)

IntegralConstant (49)

bEnDervConst

Freigabe zum Beschreiben der Vorhaltezeit (D-Anteil)

 

rDervConst

Property-Wert Vorhaltezeit [s] (D-Anteil)

DerivativeConstant (26)

bEnEvtEn

Freigabe zum Beschreiben des Bitmusters EventEnable

 

stEvtEn

Property-Wert Bitmuster EventEnable

EventEnable (35)

bEnErrLmt

Freigabe zum Beschreiben des Meldewerts "Maximalwert Regelabweichung"

 

rErrLmt

Property-Wert Meldewert "Maximalwert Regelabweichung"

ErrorLimit (34)

bEnTiDly

Freigabe zum Beschreiben der Meldeverzögerung [s]

 

udiTiDly

Property-Wert Meldeverzögerung [s]

TimeDelay (113)

bEnNotiCla

Freigabe zum Beschreiben der Meldeklasse

 

udiNotiCla

Property-Wert Meldeklasse

NotificationClass (17)

bEnMinOut

Freigabe zum Beschreiben der Minimalausgabe am Reglerausgang

 

rMinOut

Property-Wert Minimalausgabe am Reglerausgang

MinimumOutput (68)

bEnMaxOut

Freigabe zum Beschreiben der Maximalausgabe am Reglerausgang

 

rMaxOut

Property-Wert Maximalausgabe am Reglerausgang

MaximumOutput (61)

Ein-Ausgänge

VAR_INPUT

bEn          : BOOL;
bEnActn      : BOOL;
bActn        : BOOL;
bEnPropConst : BOOL;
rPropConst   : REAL;
bEnIntgConst : BOOL;
rIntgConst   : REAL;
bEnDervConst : BOOL;
rDervConst   : REAL;
bEnEvtEn     : BOOL;
stEvtEn      : ST_BACnet_EventTransitionBits;
bEnErrLmt    : BOOL;
rErrLmt      : REAL;
bEnTiDly     : BOOL;
udiTiDly     : UDINT;
bEnNotiCla   : BOOL;
udiNotiCla   : UDINT;
bEnMinOut    : BOOL;
rMinOut      : REAL;
bEnMaxOut    : BOOL;
rMaxOut      : REAL;
bSync        : BOOL;
lrSync       : LREAL;
lrNz         : LREAL;
udiDampConst : UDINT;
udiMinToMax  : UDINT;
udiMaxToMin  : UDINT;
uiCycCl      : UINT;

bEn: Regleraktivierung

bEnActn / bActn: Freigabe/Property-Wert Reglerwirksinn: „direct“ oder „reverse“

bEnPropConst / rPropConst: Freigabe/Property-Wert Proportionalitätskonstante (K-Faktor)

bEnIntgConst / rIntgConst: Freigabe/Property-Wert Integrationszeit [s] (I-Anteil)

bEnDervConst / rDervConst: Freigabe/Property-Wert Vorhaltezeit [s] (D-Anteil)

bEnEvtEn / stEvtEn: Freigabe/Property-Wert Bitmuster EventEnable

bEnErrLmt / rErrLmt: Freigabe/Property-Wert Meldewert Maximalausgabe

bEnTiDly / udiTiDly: Freigabe/Property-Wert Meldeverzögerung [s]

bEnNotiCla / udiNotiCla: Freigabe/Property-Wert Meldeklasse

bEnMinOut / rMinOut: Freigabe/Property-Wert Maximalausgabe am Reglerausgang

bEnMaxOut / rMaxOut: Freigabe/Property-Wert Minimalausgabe am Reglerausgang

bSync: Setzen des Ausgangs auf lrSync

lrSync: Synchronisationswert, auf den die Stellgröße bei einer steigenden Flanke am Eingang bSync gesetzt wird.

lrNz: Neutrale Zone

udiDampConst: Dämpfungszeit des D-Anteiles [s]

udiMinToMax: Steigungsbegrenzung des Reglerausgangs für Anstieg: udiMinToMax [s] bezogen auf eine Änderung von lrMinOut auf rMaxOut.

udiMaxToMin: Steigungsbegrenzung des Reglerausgangs für Abfall: udiMaxToMin [s] bezogen auf eine Änderung von lrMaxOut auf rMinOut.

uiCycCl: Aufrufzyklus des Bausteins als Vielfaches der Zykluszeit. Ein Nulleintrag wird automatisch als uiCycleCall =1 gewertet.
Beispiel: tTaskCycleTime = 20ms, uiCtrlCycleCall =10 -> Der Regelalgorithmus wird alle 200ms aufgerufen. Damit werden aber auch nur alle 200ms die Ausgänge aktualisiert.

VAR_OUTPUT

rPrVal     : REAL;
rX         : REAL;
rW         : REAL;
bStaActn   : BOOL;
rStaYMin   : REAL;
rStaYMax   : REAL;
bStaOvrrd  : BOOL;
bStaOoServ : BOOL;
bStaFlt    : BOOL;
bStaInAlm  : BOOL;
bOpLp      : BOOL;
bOthFlt    : BOOL;
stStaFlg   : ST_BACnet_StatusFlags;
dwObjId    : DWORD;
bErr       : BOOL;
udiErrId   : UDINT;
udiErrArg  : UDINT;

rPrVal: Stellwert - Reglerausgang

rX: Aktuell gültiger Istwert aus dem BACnet gelesen.

rW: Aktuell gültiger Sollwert aus dem BACnet gelesen.

bStaActn: Zeigt den Zustand des Wirksinns an.

bStaYMin: Zeigt den unteren Wert der Regler-Ausgangsbegrenzung an.

bStaYMax: Zeigt den oberen Wert der Regler-Ausgangsbegrenzung an.

bStaOvrrd: Zeigt den Zustand des Statusflags „Overridden“ des Loop-Objekts an.

bStaOoServ: Zeigt den Zustand des Statusflags „OutOfService“ des Loop-Objekts an.

bStaFlt: Zeigt den Zustand des Statusflags „Fault“ des Loop-Objekts an.

bStaInAlm: Zeigt den Zustand des Statusflags „InAlarm“ des Loop-Objekts an.

bOpLp: Zeigt den Zustand „OpenLoop“ des Loop-Objekt-Properties “Reliability” (Zuverlässigkeit) an.

bOthFlt: Zeigt den Zustand „OtherFault“ des Loop-Objekt-Properties “Reliability” (Zuverlässigkeit) an.

stStaFlg: Ausgabestruktur des BACnet-Status

dwObjId: BACnet-Objekt-ID des Loop-Objekts

bErr: Zeigt allgemein einen Fehler im Baustein an. Die Ursache kann in BACnet, im ADS-Datenaustausch oder auch an falscher Parametrierung liegen.

udiErrId / udiErrArg: Enthält die Fehlernummer und das Fehlerargument. Siehe Fehlercodes.

VAR_IN_OUT

stComnMsg : ST_BA_ComnMsg;
fbDvc     : FB_BACnet_Device;

stComnMsg: Referenz auf die Verbindungsstruktur zum Melde-Sammelbaustein FB_BA_ComMsg.

fbDvc: Referenz auf den Baustein des BACnet-Device-Objekts

Voraussetzungen

Entwicklungsumgebung

Zielsystem

erforderliche Bibliothek

erforderliches Supplement

TwinCAT 2.11 R3/x64

PC/CX

TcBA-Bibliothek ab V1.0.0

TS8040 | TwinCAT Building Automation ab V1.0.0