FB_BA_PlantControl

FB_BA_PlantControl 1:

Der Funktionsbaustein realisiert das sequenzielle Aufstarten einer Anlage.

Beim Starten werden die Aggregate in einer bestimmten Reihenfolge hintereinander eingeschaltet.

Beim Abschalten der Anlage werden die Aggregate in umgekehrter Reihenfolge ausgeschaltet.

Aus den Schritten der Startsequenz und den Profilen mit den spezifischen Freigaben einzelner Aggregate ergibt sich eine Schaltmatrix.

Schaltmatrix

FB_BA_PlantControl 2:

In der vertikal rot eingerahmten Spalte befinden sich die Anlagenschritte.

Die Startsequenz der Anlage beginnt mit dem Element [1] ERC, Energierückgewinnung. Es folgt das Element [2] PreHeater PreRinse, Vorerhitzer Vorspülen usw.

Die Startreihenfolge der Aggregate ist für alle Anlagenprofile gleich.

In dem horizontal grün eingerahmten Bereich befinden sich die Beschreibungen der Anlagenprofile. Mit den Profilen können Aggregate hinsichtlich der projektspezifischen Anforderungen kommandiert werden. Ein Anlagenprofil hat jeweils eine eigene Schrittkette innerhalb der die Kommandierung der Aggregate erfolgt. Die Eingangsvariable nProfile bestimmt das Anlagenprofil bzw. die Spalte in der Steuermatrix.

In dem gelb markierten Bereich befindet sich die Kommandierung des Aggregates ERC (Energierückgewinnung) für das Profil Auto (Normalbetrieb). Da es sich um die binäre Freigabe des Aggregates handelt, ist bValue = TRUE. Mehrstufige Aggregate können mit der Variable nValue und stetige Aggregate mit der Variablen fValue kommandiert werden.

In dem blau eingerahmten Feld befinden sich Variablen zur Parametrierung der Startsequenz. Mit diesen Parametern können für jedes Profil unterschiedliche Timer und Bedingungen für das Hoch- und Runterschalten der Startsequenz definiert werden.

In diesem Beispiel ist bEnFdbUp = TRUE. Somit wird eine Rückmeldung des Aggregates PreHeater erwartet, bevor die Startsequenz hochschaltet und das nächste Aggregat mit dem Index [3] DmpOuA (Außenluftklappe) einschaltet.

Das Aufstarten der Sequenz wird in Abhängigkeit der Eingangsvariablen bStart aktiviert. Eine steigende Flanke an bStart beginnt mit dem Kommandieren des Aggregates mit dem Index [1] und fährt so lange mit dem Startprozess fort, bis die höchste Stufe der Schaltsequenzen erreicht ist.

Im Bild ist das Starten der Sequenz in dem Profil Auto mit dem grünen Pfeil illustriert und beinhaltet 8 Schaltsequenzen.

Eine fallende Flanke an bStart löst das Herunterfahren der Startsequenz in umgekehrter Reihenfolge aus. Im Bild ist diese durch den roten Pfeil dargestellt.

Wird bStart während des Startvorgangs FALSE (fallende Flanke), läuft die Sequenz von dem jeweils gerade aktiven Schritt bis zur vollständigen Abschaltung aller Aggregate wieder herunter.

Im Bild ist diese durch den roten Pfeil dargestellt.

Hinweis

Verriegelung der Aggregate

Wenn während des Rauf- oder Runterfahrens die Umschaltung von einem Profil auf ein anderes erfolgt, werden die Kommandierungen der neuen Profile unmittelbar an die Aggregate ausgegeben bis zum Anlagenschritt nStep. Die Aggregate oberhalb der aktuellen Sequenz (> nStep) bekommen die folgenden Kommandierungen: bValue = FALSE, nValue = 0 und fValue = 0.0

Notwendige Verriegelungen bezüglich der Ein- und Ausschaltreihenfolge sind dadurch nicht immer sicher gewährleistet.

Es ist deshalb durch externe Verrieglungen der Aggregate dafür zu sorgen, dass keine kritischen Schaltzustände entstehen. Alternativ dazu kann die jeweils aktive Betriebsart in ihrer Sequenz zunächst komplett heruntergefahren werden, bevor durch nProfile auf ein neues Profil umgeschaltet wird.

Syntax

FUNCTION_BLOCK FB_BA_PlantCtrl
VAR_INPUT
  bStart                   : BOOL;
  nProfile                 : UDINT;
END_VAR
VAR_INPUT CONSTANT PERSISTENT
  arrStepDescription       : ARRAY [1..MAX(1,BA_Param.nMaxAggregate)] OF T_MaxString;
  arrProfileDescription    : ARRAY [1..MAX(1,BA_Param.nMaxProfile)] OF ST_BA_ProfielDescription;
  arrProfileParameter      : ARRAY [1..MAX(1,BA_Param.nMaxProfile),1..MAX(1,BA_Param.nMaxAggregate)] OF ST_BA_ProfileParameter;
END_VAR
VAR_OUTPUT
  nStep                 : UDINT;
  bUp                   : BOOL;
  bDown                 : BOOL;
  nRemTiUp              : UDINT;
  nRemTiDown            : UDINT;
END_VAR
VAR_IN_OUT
  arrAggregate          : ARRAY [1..MAX(1,BA_Param.nMaxAggregate)] OF ST_BA_Aggregate;
END_VAR

FB_BA_PlantControl 3: Eingänge

Name

Typ

Beschreibung

bStart

BOOL

Eine steigende Flanke startet die Sequenz.

Bei einer fallenden Flanke wird die Sequenz in umgekehrter Reihenfolge heruntergefahren.

nProfile

UDINT

Über den Eingang wird der Steuermatrix das aktuelle, gültige Profil übergeben.

FB_BA_PlantControl 4: Eingänge CONSTANT PERSISTENT

Name

Typ

Beschreibung

arrStepDescription

ARRAY [1..MAX(1,BA_Param.nMaxAggregate)] OF T_MaxString

In dem Array wird der Klartext der Anlagenschritte angegeben. Diese Angabe dient rein der Anzeige.

In der Schaltmatrix deutet der rot eingerahmte Bereich darauf hin.

Initialisierung Klartext Anlagenschritte, siehe Beispiel 1.

arrProfileDescription

ARRAY [1..MAX(1,BA_Param.nMaxProfile)] OF ST_BA_ProfileDescription

In dem Array werden die Profile der Steuermatrix definiert.

In der Schaltmatrix deutet der grün eingerahmte Bereich darauf hin.

Initialisierung der Profil Beschreibung, siehe Beispiel 2.

arrProfileParameter

ARRAY [1..MAX(1,BA_Param.nMaxProfile),1..MAX(1,BA_Param.nMaxAggregate)] OF ST_BA_ProfileParameter

Das zweidimensionale Array beinhaltet alle Parameter für die Kommandierung der Aggregate und die Parametrierung der Schrittketten. Jedes Element des Arrays beinhaltet die Profil-Parameter-Struktur.

In der Schaltmatrix deutet der orange und blau eingerahmte Bereich auf einen Teil des Arrays hin.

Initialisierung der Parameter für das Profil Auto, siehe Beispiel 3.

Beispiele

Beispiel 1: Initialisierung Klartext Anlagenschritte

FB_BA_PlantControl 5:

Beispiel 2: Initialisierung der Profil Beschreibung

FB_BA_PlantControl 6:

Beispiel 3: Initialisierung der Parameter für das Profil Auto

Der erste Index des Arrays steht für das Profil nProfile, der zweite für den Schritt in der Startsequenz respektive für das Aggregat.

FB_BA_PlantControl 7:

FB_BA_PlantControl 8: Ausgänge

Name

Typ

Beschreibung

nStep

UDINT

Mit der Variable wird angezeigt in welchem Schritt sich die Sequenz befindet.

nStep = 0 bedeutet, dass kein Aggregat der Schrittkettensteuerung aktiv ist.

bUp

BOOL

Zeigt an, dass sich die Reihenfolge der Schrittkettensteuerung im steigenden Zustand befindet.

bDown

BOOL

Zeigt an, dass sich die Reihenfolge der Schrittkettensteuerung im fallenden Zustand befindet.

nRemTiUp

UDINT

Countdown Einschaltung in die nächste Stufe [s].

nRemTiDown

UDINT

Countdown Ausschaltung der aktiven Stufe [s].

FB_BA_PlantControl 9: / FB_BA_PlantControl 10: Ein - Ausgänge

Name

Typ

Beschreibung

arrAggregate

ST_BA_Aggregate

Das Array beinhaltet für jedes Aggregat eine bidirektionale Daten- und Kommandostruktur.

Die Reihenfolge der Aggregate in der Schaltmatrix wird durch die Anschlussreihenfolge der Strukturen bestimmt.

Voraussetzungen

Entwicklungsumgebung

Erforderliche SPS-Bibliothek

TwinCAT ab v3.1.4024.55

Tc3_BA2 ab v5.3.19.0