FB_BACnetLoopSeq1202
BACnet Sequenz-Regler. Im Vergleich zum FB_BACnetLoopSeq1201 lässt dieser Baustein das Beschreiben folgender BACnet-Properties aus der SPS heraus nicht zu:
- Notification Class
- Minimum Output
- Maximum Output
Funktionsbeschreibung
Dieser Baustein bildet den Baustein FB_BA_SeqCtrl 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 internen FB_BA_SeqCtrl. Es ist möglich, die wichtigsten 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 hinein 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.
Wie bei dem "normalen" Sequenzregler vom Typ FB_BA_SeqCtrl, welcher eine reine PLC-Lösung darstellt, funktioniert die BACnet-Version ebenfalls nur mit einem Sequenz-Link-Baustein FB_BA_SeqLink.
PLC-Variable | Bemerkung | BACnet-Property (Property ID) |
---|---|---|
bEnActn | Freigabe zum Beschreiben des ReglerWirksinns |
|
bActn | Property-Wert ReglerWirksinn | 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) |
Ein-Ausgänge
VAR_INPUT
usiMyNum : USINT;
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;
lrYSeqInit : LREAL;
bSync : BOOL;
lrSync : LREAL;
lrNz : LREAL;
udiDampConst : UDINT;
udiMinToMax : UDINT;
udiMaxToMin : UDINT;
uiCycCl : UINT;
usiMyNum: Ordnungszahl des Sequenzreglers
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]
lrYSeqInit: Start-Synchronisationswert. Ist dieser Regler derjenige, der bei Aktivierung der Regelsequenz als erster freigegeben wird, so wird dieser Regler mit diesem Wert am Ausgang gestartet.
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;
bStaSeqCtrlActv : BOOL;
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.
bStaSeqCtrlActv: Sequenzregler ist freigegeben und betriebsbereit (nicht im Fehlerzustand).
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;
stSeqLink : ST_BA_SeqLink;
fbDvc : FB_BACnet_Device;
stComnMsg: Referenz auf die Verbindungsstruktur zum Melde-Sammelbaustein FB_BA_ComMsg.
stSeqLink: Daten- und Befehlsstruktur zwischen den einzelnen Sequenzreglern und dem Steuerbaustein FB_BA_SeqLink.
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 |