Ausführungsreihenfolge in CFC

Überblick

Die Reihenfolge bei der Ausführung der Elemente in POUs wird eindeutig in text- und netzwerkbasierten Editoren festgelegt. Im CFC-Editor können Sie die Elemente allerdings völlig frei positionieren, sodass die Ausführungsreihenfolge ursprünglich nicht eundeutig ist. Aus diesem Grund legt EcoStruxure Machine Expert die Ausführungsreihenfolge per Datenfluss und im Fall mehrere Netzwerke über die topologische Position der Elemente fest. Die Elemente werden von oben nac unten und von links nach rechts sortiert, um eine eindeutige Ausführungsreihenfolge zu erhalten.

Die chronologische Reihenfolge der Elemente im Diagramm kann in EcoStruxure Machine Expert durch die temporäre Anzeige der Ausführungsreihenfolge ausgewiesen werden. Für Netzwerke mit Rückmeldung können Sie ein Element als Startpunkt in der Rückmeldungsschleife definieren.

EcoStruxure Machine Expert ab V2.0 ermöglicht Ihnen die explizite Bearbeitung der Ausführungsreihenfolge in einem CFC-Objekt durch Auswahl von Expliziter Ausführungsreihenfolge-Modus auf der Registerkarte CFC-Ausführungsreihenfolge des CFC-Objekts Eigenschaften.

Datenfluss

Im Allgemeinen beschreibt der Begriff Datenfluss, welche Daten, wann und wie in welchen Programmierobjekt in chronologischer Reihenfolge gelesen und geschrieben werden sollen. Eine POU kann eine willkürliche Anzahl von Datenflüssen verarbeiten. Diese Datenflüsse können ebenfalls unabhängig voneinander ausgeführt werden.

Anzeigen der Ausführungsreihenfolge

Standardmäßig ist Automatischer Datenfluss-Modus auf der Registerkarte CFC-Ausführungsreihenfolge des CFC-Objekts Eigenschaften ausgewählt, d. h. die Ausführungsreihenfolge eines CFC-Objekts wird automatisch festgelegt.

Gehen Sie vor wie folgt, um die Ausführungsreihenfolge vorübergehend im CFC-Editor anzuzeigen:

Schritt

Aktion

Kommentar

1

Erstellen Sie ein neues Projekt ausgehend von der Vorlage Standardprojekt und geben Sie einen Namen ein.

Beispielname: Minimal

2

Fügen Sie den Funktionsbaustein FB_DOIt mit Ein- und Ausgängen in der ST-Implementierungssprache ein.

Beispiel:

FUNCTION_BLOCK FB_DoIt
VAR_INPUT
iAlfa : INT;
iBravo: INT;
sCharlie : STRING := 'Charlie';
xItem : BOOL;
END_VAR
VAR_OUTPUT
    iResult : INT;
    sResult : STRING;
    xResult : BOOL;
END_VAR
VAR
END_VAR
iResult := iAlfa + iBravo;
IF xItem = TRUE THEN
xResult := TRUE;
END_IF

3

Erstellen Sie den Funktionsbaustein ExecuteCFC in der CFC-Implementierungssprache.

Beispiel:

PROGRAM ExecuteCFC
VAR
fb_DoIt_0: FB_DoIt;
fb_DoIt_1: FB_DoIt;
iFinal_1: INT;
iFinal_0: INT;
xFinal: BOOL;
END_VAR

Kurz zuvor in CFC erstellte Programmierobjekte haben die Option Automatischer Datenfluss-Modus ausgewählt. Die optimale Ausführungsreihenfolge der Programmierobjekte wird intern festgelegt.

4

Führen Sie den Befehl CFC > Ausführungsreihenfolge > Ausführungsreihenfolge anzeigen.

Ergebnis: Die Ausführungsreihenfolge des Objekts wird angezeigt: Die Felder und Eingänge werden in Übereinstimmung mit der chronologischen Ausführungsreihenfolge nummeriert. Diese temporäre Anzeige wird ausgeblendet, sobald Sie erneut in den CFC-Editor klicken.

Manuelles Bestimmen der Ausführungsreihenfolge in Rückmeldungsnetzwerken

Gehen Sie vor wie folgt, um manuell die Ausführungsreihenfolge in Rückmeldungsnetzwerken zu bestimmen:

Schritt

Aktion

Kommentar

1

Erstellen Sie ein CFC-Programm mit Rückmeldung.

Beispiel: Die POU PrgPositiveFeedback zählt.

PROGRAM PrgPositiveFeedback
VAR
    iResult: INT;
END_VAR

2

Wählen Sie in der Rückmeldung ein Element aus.

Ergebnis: Das ausgewählte Element wird rot hervorgehoben.

3

Führen Sie den Befehl CFC > Ausführungsreihenfolge > Startpunkt der Rückkopplung setzen aus.

Ergebnis: Dem ausgewählten Element wird die Nummer 0 zugewiesen (die niedrigste Nummer der Rückmeldung) und durch das Symbol gekennzeichnet. Zur Laufzeit wird diese POU zuerst verarbeitet.

Gehen Sie vor wie folgt, um diese Nummerierung wieder aufzuheben:

  1. Wählen Sie die als Start-POU festgelegte POU aus.

  2. Führen Sie den Befehl CFC > Ausführungsreihenfolge > Startpunkt der Rückkopplung setzen aus.

Ergebnis: Die POU ist nicht mehr als Start-POU definiert und die Ausführungsreihenfolge wird intern festgelegt.

Um die Ausführungsreihenfolge nach Datenfluss anzuzeigen, führen Sie den Befehl CFC > Ausführungsreihenfolge > Ausführungsreihenfolge anzeigen aus.

Manuelles Festlegen der Ausführungsreihenfolge

Die Standardeinstellung Automatischer Datenfluss-Modus gibt automatisch die Reihenfolge der CFC-Objekte vor, um eine hinsichtlich Zeit und Zyklus optimierte Ausführung zu erzielen. Wenn dieser Modus aktiviert ist, brauchen Sie sich während des Entwicklungsprozesses nicht um die Festlegung der Ausführungsreihenfolge zu kümmern.

HINWEIS: Der Modus Expliziter Ausführungsreihenfolge-Modus ermöglicht Ihnen die manuelle Festlegung der Ausführungsreihenfolge. Beachten Sie hierbei, dass es in Ihrer Verantwortung liegt, die Ausführungsreihenfolge anzupassen und alle Folgen und Auswirkungen zu bewerten. Zu Ihrer Unterstützung wird die Ausführungsreihenfolge permanent angezeigt.

Gehen Sie vor wie folgt, um die Ausführungsreihenfolge manuell festzulegen:

Schritt

Aktion

Ergebnis

1

Klicken Sie in der Baumstruktur Geräte oder POUs mit der rechten Maustaste auf ein CFC-Objekt und führen Sie den Befehl Eigenschaften aus.

Das Dialogfeld Eigenschaften wird geöffnet.

2

Wählen Sie die Registerkarte CFC-Ausführungsreihenfolge aus.

In der Liste Ausführungsreihenfolge wird der ausgewählte Modus angezeigt.

3

Wählen Sie in der Liste Ausführungsreihenfolge die Option Expliziter Ausführungsreihenfolge-Modus aus.

4

Klicken Sie auf OK, um Ihre Eingabe bzw. Auswahl zu bestätigen und das Dialogfeld zu schließen.

  • Der Modus Expliziter Ausführungsreihenfolge-Modus wird aktiviert.

  • Die Netzwerke im CFC-Editor sind nummeriert.

  • Im Menü CFC > Ausführungsreihenfolge stehen Ihnen folgende Befehle zur Auswahl:

5

Öffnen Sie ein CFC-Objekt.

6

Wählen Sie ein nummeriertes Element aus und führen Sie den Befehl CFC > Ausführungsreihenfolge > An den Anfang aus.

Die Ausführungsreihenfolge wird neu sortiert und dem ausgewählten Element die Nummer 0 zugewiesen.