Automatische Ausführungsreihenfolge nach Datenfluss

Die Ausführungsreihenfolge in Programmierbausteinen ist in textbasierenden und netzwerkbasierenden Editoren eindeutig determiniert. Im CFC-Editor können Sie die Elemente frei positionieren, die Ausführungsreihenfolge ist zunächst nicht eindeutig. Sie wird deshalb von TwinCAT nach dem Datenfluss und bei mehreren Netzwerken nach der topologischen Position der Elemente festgelegt. Die oberen werden vor den unteren und die linken vor den rechten Elementen und Netzwerken einsortiert. Der Programmierbaustein wird dadurch zeit- und zyklusoptimiert abgearbeitet.

Sie können sich im Chart über die zeitliche Abfolge der Elemente informieren und kurzzeitig die Ausführungsreihenfolge einblenden lassen. Wenn Sie Netzwerke mit Rückkopplungen programmieren, können Sie ein Element in der Rückkopplungsschleife als Startpunkt festlegen.

Sie können außerdem die Abfolge der Abarbeitung in einem CFC-Objekt bei Bedarf explizit bearbeiten. Dafür ändern Sie den Wert der Eigenschaft Explicit Execution Ordervom Standardwert False zu True. Im Expliziten Ausführungsreihenfolge-Modus haben Sie die Möglichkeit, die Ausführungsreihenfolge mit Menübefehlen zu bearbeiten.

Datenfluss

Die zeitliche Abfolge, welche Daten wann und wie in welchen Programmierobjekten gelesen oder beschrieben werden, wird allgemein als Datenfluss bezeichnet. Ein Programmierbaustein kann beliebig viele Datenflüsse verarbeiten, die auch unabhängig voneinander ausgeführt werden können.

Ausführungsreihenfolge anzeigen lassen

Im standardmäßig aktivierten automatischen Datenfluss-Modus wird die Ausführungsreihenfolge eines CFC-Objekts automatisch ermittelt. Sie können sich die Ausführungsreihenfolge im CFC-Editor kurzzeitig einblenden lassen.

1. Erstellen Sie ein neues Projekt und fügen Sie ein Standard-SPS-Projekt hinzu.
2. Erstellen Sie den Funktionsbaustein FB_Sample in der Implementierungssprache ST mit Eingängen und Ausgängen.
FUNCTION_BLOCK FB_Sample
VAR_INPUT
    nIn1 : INT;
    nIn2 : INT;
    sIn1 : STRING := ‘Name’;
    bIn1 : BOOL;
END_VAR
VAR_OUTPUT
    nOut : INT;
    sOut : STRING;
    bOut : BOOL;
END_VAR
VAR
END_VAR
nOut := nIn1 + nIn2;

sResult := sIn1;

IF bIn1 THEN
bOut := TRUE;
END_IF
3. Erstellen Sie das Programm Execute_CFC in der Implementierungssprache CFC.
PROGRAM Execute_CFC 
VAR
    fbSample1 : FB_Sample;
    fbSample2 : FB_Sample;
    nResult1  : INT;
    nResult2  : INT;
    bResult   : BOOL;
END_VAR
Automatische Ausführungsreihenfolge nach Datenfluss 1:

Neu erstellte Programmierobjekte in CFC haben den automatischen Datenfluss-Modus aktiviert. Die Ausführungsreihenfolge des Programmierobjekts wird intern optimal festgelegt.

4. Wählen Sie den Befehl Ausführungsreihenfolge > Ausführungsreihenfolge anzeigen im Menü CFC.
Die Ausführungsreihenfolge des Objekts ist eingeblendet. Die Bausteine und Ausgänge sind dementsprechend nummeriert und geben die zeitliche Abfolge der Abarbeitung wieder. Sobald Sie erneut in den CFC-Editor klicken, wird die Nummerierung ausgeblendet.
Automatische Ausführungsreihenfolge nach Datenfluss 2:

Ausführungsreihenfolge für Netzwerke mit Rückkopplungen festlegen

1. Erstellen Sie ein CFC-Programm, das eine Rückkopplung enthält.
Automatische Ausführungsreihenfolge nach Datenfluss 3:
2. Selektieren Sie ein Element innerhalb der Rückkopplung.
Das selektierte Element ist rot hervorgehoben.
3. Wählen Sie den Befehl Ausführungsreihenfolge > Startpunkt der Rückkopplung setzen im Menü CFC.
Zur Laufzeit wird dieser Baustein als erster abgearbeitet. Der Startbaustein der Rückkopplung ist festgelegt und mit dem Symbol Automatische Ausführungsreihenfolge nach Datenfluss 4: dekoriert. Die Ausführungsreichenfolge ist neu sortiert und das selektierte Element erhält die 0 (allgemein die niedrigste Nummer in der Rückkopplung).
Automatische Ausführungsreihenfolge nach Datenfluss 5:
4. Selektieren Sie den Startbaustein nochmals.
5. Wählen Sie den Befehl Ausführungsreihenfolge > Startpunkt der Rückkopplung setzen im Menü CFC.
6. Der Baustein ist als Startbaustein abgewählt. Die Ausführungsreihenfolge ist intern festgelegt.
Automatische Ausführungsreihenfolge nach Datenfluss 6:
7. Wählen Sie den Befehl Ausführungsreihenfolge > Ausführungsreihenfolge anzeigen im Menü CFC.
Die Ausführungsreihenfolge nach Datenfluss wird angezeigt.
Automatische Ausführungsreihenfolge nach Datenfluss 7:

Ausführungsreihenfolge explizit festlegen

Die automatisch festgelegte Ausführungsreihenfolge nach Datenfluss bewirkt eine zeit- und zyklusoptimierte Ausführung des Programmierbausteins. Sie benötigen somit während des Entwicklungsprozesses keine Information über die intern verwaltete Ausführungsreihenfolge.

Im Expliziten Ausführungsreihenfolge-Modus passen Sie die Ausführungsreihenfolge in Eigenverantwortung an und müssen die Konsequenzen und Effekte selbst beurteilen. Auch deshalb wird die Ausführungsreihenfolge ständig eingeblendet.

Sie können die automatisch festgelegte Ausführungsreihenfolge eines CFC-Objekts explizit ändern, wenn Sie die Eigenschaft Explicit Execution Order aktiviert haben.

1. Selektieren Sie ein CFC-Objekt im Projektbaum.
2. Öffnen Sie das Kontextmenü und wählen Sie den Befehl Eigenschaften.
3. Setzen Sie die Option Excplicit Execution Order unter CFC auf True. 
Der Explizite Ausführungsreihenfolge-Modus ist aktiviert. Im CFC-Editor sind die Netzwerke nummeriert. Unter Ausführungsreihenfolge im Menü CFC stehen verschiedene Befehle für die Bearbeitung der Ausführungsreihenfolge zur Verfügung.
4. Öffnen Sie das CFC-Objekt.
5. Selektieren Sie ein nummeriertes Element und wählen Sie den Befehl Ausführungsreihenfolge > An den Anfang.
Die Ausführungsreihenfolge ist neu sortiert und das selektierte Element hat die Nummer 0.

Siehe auch: