FB_BA_PIDControlSequence

PID-Sequenzregler als Bestandteil einer Sequenz.
Mit Erhalt der Freigabe bEn = TRUE wird dem übergeordneten Kontrollbaustein FB_BA_SequenceLinkBase mitgeteilt, dass der Sequenzregler betriebsbereit für die Sequenzsteuerung ist.
Der Datenaustausch zwischen den Sequenzreglern FB_BA_SeqCtrl und dem Kontrollbaustein FB_BA_SequenceLinkBase geschieht über die Struktur stSeqLink.
![]() | Die Eingangsvariable bHold am Funktionsbaustein FB_BA_SeqCtrl ist ohne Funktion! |
Ausgabewert fPresentValue
Der Funktionsbaustein ermittelt abhängig von den Freigaben bEn und stSequenceLink.bEnSeqLink, dem Wirksinn eActionPgm / eActionRm und der Sequenznummer nActvSeqCtrl / nMyNum den daraus resultierenden Wert am Ausgang fPresentValue.
bEn | stSequenceLink.bEnSeqLink | eActionPgm/eActionRm | nActvSeqCtrl/nMyNum | fPresentValue |
|---|---|---|---|---|
TRUE | FALSE | E_BA_Action.eReverse |
| fMaxOutputPgm / fMaxOutputRm |
TRUE | FALSE | E_BA_Action.eDirect |
| fMinOutputPgm / fMinOutputRm |
FALSE | FALSE |
|
| 0 |
TRUE | TRUE | E_BA_Action.eReverse | nActvSeqCtrl > nMyNum | fMinOutputPgm / fMinOutputRm |
TRUE | TRUE | E_BA_Action.eReverse | nActvSeqCtrl < nMyNum | fMaxOutputPgm / fMaxOutputRm |
TRUE | TRUE | E_BA_Action.eDirect | nActvSeqCtrl < nMyNum | fMinOutputPgm / fMinOutputRm |
TRUE | TRUE | E_BA_Action.eDirect | nActvSeqCtrl > nMyNum | fMaxOutputPgm / fMaxOutputRm |
TRUE | TRUE |
| nActvSeqCtrl = nMyNum | FB_BA_Loop.fPresentValue |
Fehlererkennung
Die unten aufgeführten Fehlermeldungen werden durch den FB_BA_SeqCtrl erkannt.
Das x in den Textmeldungen steht für eine nummerische Angabe eines Sequenzreglers.
Die Fehlermeldungen werden in der Entwicklungsumgebung von TwinCAT 3 in dem Fenster "Fehlerliste" ausgegeben. Dieses kann unter dem Menüpunkt Ansicht aktiviert werden.
Die Fehlertexte werden über die Properties ErrorParamMaxSeqCtrl und ErrorSeqNumMultiple ausgegeben.
![]() | Globaler Parameter Tc3_BA2.BA_Param.nMaxSeqCtrl < 1 Diese Meldung ist die einzige, welche die Sequenzsteuerung deaktiviert. |
Deutsch | Englisch |
|---|---|
Globaler Parameter Tc3_BA2.BA_Param.nMaxSeqCtrl < 1 | Global parameter Tc3_BA2.BA_Param.nMaxSeqCtrl < 1 |
Sequenznummer nMyNum = x mehrfach vergeben | Sequence number nMyNum = x assigned multiple times |
Syntax
FUNCTION_BLOCK FB_BA_SeqCtrl EXTENDS FB_BA_Loop
VAR_INPUT
nMyNum : UDINT;
END_VAR
VAR_OUTPUT
fE : REAL;
bSeqActv : BOOL;
nActvSeqCtrl : UDINT;
bIsActvSeqCtrl : BOOL;
bErr : BOOL;
END_VAR
VAR_IN_OUT
stSeqLink : ST_BA_SeqLink;
END_VAR
Eingänge
Name | Typ | Beschreibung |
|---|---|---|
nMyNum | UDINT | Meine Nummer in der Sequenz. Diese Zahl darf nur einmal in einer Sequenzsteuerung vorhanden sein. Eine interne Limitierung lässt nur Werte von 1 - XBA_Param.nMaxSeqCtrl zu. |
Ausgänge
Name | Typ | Beschreibung |
|---|---|---|
fE | REAL | Zeigt die Regelabweichung des Sequenzreglers an. Diese ist abhängig vom Wirksinn des Sequenzreglers. E_BA_Action.eDirect -> fE = fX-fW E_BA_Action.eReverse -> fE = fW-fX |
bSeqActv | BOOL | Der Sequenzregler ist in der Regelsequenz eingebunden. |
nActvSeqCtrl | UDINT | Nummer des aktiven Sequenzreglers. |
bIsActvSeqCtrl | BOOL | Zeigt an, dass der Sequenzregler der aktive in der Sequenzregelung ist. Das Property IsActvSeqCtrl zeigt diese Meldung ebenfalls an. |
bErr | BOOL | Zeigt an, dass ein Fehler erkannt wurde. Detailliertere Informationen zeigen die Properties ErrorParamMaxSeqCtrl und SeqNumMultiple. Unter Fehlererkennung sind weitere Erläuterungen zur Fehleranalyse zu finden. |
/
Ein- Ausgänge
Name | Typ | Beschreibung |
|---|---|---|
stSeqLink | Daten- und Befehlsstruktur zwischen den einzelnen Sequenzreglern FB_BA_SeqCtrl und dem Steuerbaustein FB_BA_SequenceLinkBase. |
Eigenschaften
Name | Typ | Zugriff | Beschreibung |
|---|---|---|---|
ActvSeqCtrl | UDINT | Get | Das Property zeigt die Nummer des aktiven Sequenzcontrollers an. |
ErrorParamMaxSeqCtrl | Get | Das Property zeigt im Fehlerfall den folgenden Text an: "Global parameter Tc3_BA2.BA_Param.nMaxSeqCtrl < 1", siehe BA_Param.nMaxSeqCtrl. Der globale Parameter muss auf jeden Fall angepasst werden, weil aufgrund der falschen Parametrierung die Sequenz stoppt. | |
SeqNumMultiple | Get | Das Property zeigt im Fehlerfall den folgenden Text an: "Sequence number nMyNum = x assigned multiple times". Eine Prüfung der angezeigten Sequenznummer ist erforderlich, weil diese mehrfach in der Sequenz vergeben wurde. | |
IsActvSeqCtrl | BOOL | Get | Der Sequenzregler ist der aktive in der Sequenzsteuerung. |
Voraussetzungen
Entwicklungsumgebung | Erforderliche SPS-Bibliothek |
|---|---|
TwinCAT ab v3.1.4024.56 | Tc3_BA2 ab v5.4.2.0 |
