FB_BA_SequenceLinkBase

FB_BA_SequenceLinkBase 1:

Dieser Baustein stellt die übergeordnete Verbindung einer Sequenzregelung dar.

Datenaustausch Sequenzregelung

Der Datenaustausch zwischen den Sequenzreglern FB_BA_SeqCtrl und dem FB_BA_SequenceLinkBase geschieht über die Struktur stSeqLink.

FB_BA_SequenceLinkBase 2:

Startverhalten der Sequenz

Eine TRUE-Signal am Eingang bEn aktiviert die komplette Sequenzregelung. Der Baustein wird zunächst denjenigen Sequenzregler aktiv schalten, welcher an nNumStartCtrl benannt ist. Alle anderen Sequenzregler richten Ihren Ausgabewert nach der Rangordnung des aktiven Reglers.

Ist der an nNumStartCtrl angegebene Sequenzregler nicht betriebsbereit, so wird mit dem Enum eNoStartCtrlFound die Vorgehensweise definiert, um einen neuen Startregler zu finden. Somit ist gewährleistet, dass die Sequenz immer startet.

Umschalten in der Sequenz

Erreicht ein Sequenzregler seinen Maximal- oder Minimalwert, so wird je nach Regler-Wirksinn auf den nächsten Regler in der Rangfolge umgeschaltet, sofern der Istwert den Sollwert des nächsten Reglers unterschreitet bzw. überschreitet.

Dabei werden 4 Fälle unterschieden:

Das Umschalten auf einen anderen Sequenzregler kann durch die Zeitangabe nSwiOverTi verzögert werden.

Betriebsbereitschaft der Sequenzregler

Verliert ein Regler in der Sequenz seine Betriebsbereitschaft (fehlende Freigabe bEn), so ist er für die gesamte Sequenz nicht mehr verfügbar.

Handelt es sich dabei nicht um den vorher aktiven Regler, so kann es, je nachdem welche Stellgröße dieser Regler ausgegeben hat, zu einer Temperaturänderung kommen, die durch die Reglersequenz nach Möglichkeit wieder ausgeglichen wird.

Handelt es sich jedoch um den aktiven Sequenzregler, so wird mit der Enumeration eNoEnableSeqCtrl die Vorgehensweise definiert, um einen neuen, aktiven Sequenzregler zu finden.

Erlangt ein Sequenzregler seine Betriebsbereitschaft im laufenden Prozess, so wird der Regler der Sequenz hinzugefügt. Je nach Wirksinn E_BA_Action und eigener Sequenznummer nMyNum wird er in die Reglersequenz eingereiht und seinen Minimal- bzw. Maximalwert ausgeben. Die daraus resultierende Temperaturänderung wird durch die Reglersequenz nach Möglichkeit wieder ausgeglichen.

Fehlererkennung

Die unten aufgeführten Fehlermeldungen werden durch den FB_BA_SequenceLinkBase erkannt.

Das x in den Textmeldungen steht für eine numerische Angabe eines Sequenzreglers.

Die Fehlermeldungen werden in der Entwicklungsumgebung von Tc3 in dem Fenster "Fehlerliste" ausgegeben. Dieses kann unter dem Menüpunkt Ansicht aktiviert werden.

Ausgabe der Fehlertexte über das Property StateText ausgegeben.

Die Enumeration eState zeigt zusätzlich die Meldungen an.

FB_BA_SequenceLinkBase 3:

Globaler Parameter Tc3_BA2.BA_Param.nMaxSeqCtrl < 1

Diese Meldung ist die einzige, welche die Sequenzsteuerung deaktiviert.

Deutsch

Englisch

Der nächste Sequenzsollwert ist kleiner als sein Vorgänger: x

Next sequence setpoint is smaller than its predecessor: x

Globaler Parameter Tc3_BA2.BA_Param.nMaxSeqCtrl < 1

Global parameter Tc3_BA2.BA_Param.nMaxSeqCtrl < 1

Mehrfache Wirkrichtung "eActn" in der Sequenzsteuerung

Multiple direction of action "eActn" of the sequence controller

Startsequenzregler ist nicht freigegeben: nNumStartCtrl = x

Start sequence controller is not enabled: nNumStartCtrl = x

Kein Sequenzregler ist betriebsbereit

No sequence controller is operational

Sequenznummer mehrfach vergeben: x

Sequence number assigned multiple times: x

Syntax

FUNCTION_BLOCK FB_BA_SequenceLinkBase
VAR_INPUT
  bEn                                     : BOOL;
  nNumStartCtrl                           : UDINT;
  {attribute 'parameterUnit':= 's'}
  nSwiOverTi                              : UDINT(0..1800);
END_VAR
VAR_OUTPUT
  bSeqCtrlOperational                     : BOOL;
  nActvSeqCtrl                            : UDINT;
  fActvSeqCtrl_Y                          : REAL;
  fActvSeqCtrl_X                          : REAL;
  fActvSeqCtrl_W                          : REAL;
  bActvSeqCtrlIsMaxLimit                  : BOOL;
  bActvSeqCtrlIsMinLimit                  : BOOL;
  bErr                                    : BOOL;
  eState                                  : E_BA_StateSeqLink;
  {attribute 'parameterUnit':= 's'}
  nRemTiSwiOvrTi                          : UDINT;
END_VAR
VAR_IN_OUT
  stSeqLink                               : ST_BA_SeqLink;
END_VAR
VAR_INPUT CONSTANT
  fHys                                    : REAL := 0.2;
  eNoStartCtrlFound                       : E_BA_NoStartCtrlFound := E_BA_NoStartCtrlFound.eLastActionReverse;
  eNoEnableSeqCtrl                        : E_BA_NoEnableSeqCtrl := E_BA_NoEnableSeqCtrl.eNextAction;
END_VAR

FB_BA_SequenceLinkBase 4: Eingänge

Name

Typ

Beschreibung

bEn

BOOL

Mit Erhalt der Freigabe des Funktionsbausteins wird die Sequenzsteuerung aktiviert. Zuvor müssen aber die Sequenzregler ihre Freigabe erhalten haben.

nNumStartCtrl

UDINT

Ordnungszahl des Sequenzreglers, welcher bei der Aktivierung der Sequenz der Startregler sein soll.

Eine interne Limitierung lässt nur Werte von 1 - BA_Param.nMaxSeqCtrl zu.

nSwiOverTi

UDINT

Das Umschalten auf einen anderen Sequenzregler kann durch die Zeitangabe verzögert werden.

Eine interne Limitierung lässt nur Werte von 0 - 1800 Sekunden zu.

FB_BA_SequenceLinkBase 5: Ausgänge

Name

Typ

Beschreibung

bSeqCtrlOperational

BOOL

Die Sequenzsteuerung ist betriebsbereit bzw. läuft.

nActvSeqCtrl

UDINT

Die Ausgangsvariable zeigt die Nummer des aktiven Sequenzcontrollers an.

fActvSeqCtrl_Y

REAL

Stellgröße des aktiven Sequenzreglers.

fActvSeqCtrl_X

REAL

Istwert des aktiven Sequenzreglers.

fActvSeqCtrl_W

REAL

Sollwert des aktiven Sequenzreglers.

bActvSeqCtrlIsMaxLimit

BOOL

Die obere Ausgabebegrenzung des aktiven Sequenzreglers ist erreicht.

Wurde noch nicht auf den nächsten Sequenzregler weitergeschaltet, so wird bActvSeqCtrlIsMaxLimit erst auf FALSE gesetzt, wenn fActvSeqCtrl_Y unterhalb von (fActvSeqCtrl_Y - fHys) gefallen ist.

bActvSeqCtrlIsMinLimit

BOOL

Die untere Ausgabebegrenzung des aktiven Sequenzreglers ist erreicht.

Wurde noch nicht auf den nächsten Sequenzregler weiter geschaltet, so wird bActvSeqCtrlIsMinLimit erst auf FALSE gesetzt, wenn fActvSeqCtrl_Y oberhalb von (fActvSeqCtrl_Y + fHys) gestiegen ist.

bErr

BOOL

Zeigt an, dass ein Fehler erkannt wurde.

Detailliertere Informationen zeigen das Property StateText an. Zusätzlich zeigt das Enum eState weitere Informationen an.

Unter Fehlererkennung sind weitere Erläuterungen zur Fehleranalyse zu finden.

eState

E_BA_StateSeqLink

Die Enumeration zeigt den Status des FB_BA_SequenceLinkBase und der Sequenzregelung an.

nRemTiSwiOvrTi

UDINT

Countdown der Umschaltung auf den nächsten Sequenzregler [s].

FB_BA_SequenceLinkBase 6: / FB_BA_SequenceLinkBase 7: Ein- Ausgänge

Name

Typ

Beschreibung

stSeqLink

ST_BA_SeqLink

Daten- und Befehlsstruktur zwischen den einzelnen Sequenzreglern FB_BA_SeqCtrl und dem Steuerbaustein FB_BA_SequenceLinkBase.

FB_BA_SequenceLinkBase 8: Eingänge CONSTANT

Name

Typ

Beschreibung

fHys

REAL

Dieser Hysteresewert legt eine Hysterese um die obere und untere Ausgabebegrenzung bActvSeqCtrlIsMaxLimit / bActvSeqCtrlIsMinLimit des aktiven Sequenzreglers.

Eine interne Limitierung lässt nur Werte von 0 - 2 zu.

eNoStartCtrlFound

E_BA_NoStartCtrlFound

Wenn während des laufenden Prozesses der aktive Sequenzregler seine Betriebsbereitschaft verliert, dann wird mit der Enumeration die Vorgehensweise definiert, um einen neuen, aktiven Sequenzregler zu finden.

eNoEnableSeqCtrl

E_BA_NoEnableSeqCtrl

Ist der Startregler an dem Eingang nNumStartCtrl nicht vorhanden oder freigegeben, so wird mit der Enumeration die Vorgehensweise definiert, um einen neuen Startregler zu finden.

FB_BA_SequenceLinkBase 9: Eigenschaften

Name

Typ

Zugriff

Beschreibung

FirstActvSeqCtrl

UDINT

Get

Das Property zeigt die Nummer des ersten, betriebsbereiten Sequenzreglers an.

FirstActvSeqCtrlWithActionDirect

UDINT

Get

Das Property zeigt die Nummer des ersten, betriebsbereiten Sequenzreglers mit dem Wirksinn E_BA_Action.eDirect an.

LastActvSeqCtrl

UDINT

Get

Das Property zeigt die Nummer des letzten, betriebsbereiten Sequenzreglers an.

LastActvSeqCtrlWithActionReverse

UDINT

Get

Das Property zeigt die Nummer des letzten, betriebsbereiten Sequenzreglers mit dem Wirksinn E_BA_Action.eReverse an.

NextActionActvSeqCtrl

UDINT

Get

Je nach Wirksinn des aktiven Sequenzreglers nActvSeqCtrl wird hier der nächste, betriebsbereite Sequenzregler angezeigt.

Wirksinn Kühlen/Direct: nächster betriebsbereiter Sequenzregler mit dem Wirksinn Kühlen/Direct (nach 5 würde 6 oder höher kommen). Wenn keiner gefunden wird, dann wird E_BA_NoEnableSeqCtrl.eLastSeqNum umgesetzt.

Wirksinn Heizen/Reverse: vorheriger betriebsbereiter Sequenzregler mit dem Wirksinn Heizen/Reverse (nach 5 würde 4 oder niedriger kommen). Wenn keiner gefunden wird, dann wird E_BA_NoEnableSeqCtrl.eFirstSeqNum umgesetzt.

NextActvSeqCtrl

UDINT

Get

Das Property zeigt die Nummer des nächsten betriebsbereiten Sequenzreglers nach dem letzten aktiven an (nach 5 würde 6 oder höher kommen).

PreviousActvSeqCtrl

UDINT

Get

Das Property zeigt die Nummer des vorherigen, betriebsbereiten Sequenzreglers nach dem letzten aktiven an (nach 5 würde 4 oder niedriger kommen).

ActvSeqCtrl

UDINT

Get

Das Property zeigt die Nummer des aktiven Sequenzcontrollers an, siehe nActvSeqCtrl.

ActvSeqCtrl_ControlValue

REAL

Get

Das Property zeigt die Stellgröße des aktiven Sequenzreglers an, siehe fActvSeqCtrl_Y.

ActvSeqCtrl_IsMaxLimit              

BOOL

Get

Das Property zeigt an, dass die obere Ausgabebegrenzung des aktiven Sequenzreglers erreicht ist, siehe bActvSeqCtrlIsMaxLimit.

ActvSeqCtrl_IsMinLimit

BOOL

Get

Das Property zeigt an, dass die untere Ausgabebegrenzung des aktiven Sequenzreglers erreicht ist, siehe bActvSeqCtrlIsMinLimit.

ErrorParamMaxSeqCtrl

T_MaxString

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.

ErrorStartSeqCtrlNotOperable

T_MaxString

Get

Das Property zeigt im Fehlerfall den folgenden Text an: "Start sequence controller is not enabled: nNumStartCtrl = x".

Eine Prüfung des Startsequenzreglers, welcher mit der Eingangsvariablen nNumStartCtrl angegeben wurde, ist erforderlich.

MultiDirectionActionSeqCtrl

T_MaxString

Get

Das Property zeigt im Fehlerfall den folgenden Text an: Multiple direction of action "eActn" of the sequence controller: x.

Mehrfache Wirkrichtung der Sequenz Regler. Es wird immer vom Sequenzregler mit der kleinsten Nummer auf den nächstgrößeren geschaut. Eine Änderung der Wirkrichtung ist möglich.

NextSeqSpIsSmaller

T_MaxString

Get

Das Property zeigt im Fehlerfall den folgenden Text an: "Next sequence setpoint is smaller than its predecessor: x".

Eine Prüfung der Sollwerte der Sequenzregler nach aufsteigender Reihenfolge ist erforderlich.

NoSeqCtrlIsOperational

T_MaxString

Get

Das Property zeigt im Fehlerfall den folgenden Text an: "No sequence controller is operational".

Eine Prüfung der Betriebsbereitschaft der Sequenzregler ist erforderlich.

SeqNumMulti

T_MaxString

Get

Das Property zeigt im Fehlerfall den folgenden Text an: "Sequence number assigned multiple times: x".

Eine Prüfung der angezeigten Sequenznummer ist erforderlich, weil diese mehrfach in der Sequenz vergeben wurde.

Voraussetzungen

Entwicklungsumgebung

Erforderliche SPS-Bibliothek

TwinCAT ab v3.1.4024.56

Tc3_XBA ab v5.6.1.0