Sie können im CFC-Editor Programmierbausteine miteinander verdrahten und anschauliche Blockschaltbilder erstellen.
Der Editor unterstützt Sie folgendermaßen:
-
Programmieren mit Elementen und Verbindungslinien
-
Ziehen von Instanzen und Variablen in den Editierbereich
-
Autorouting der Verbindungslinien
-
Automatisches Verknüpfen
-
Fixieren von Verbindungslinien durch Kontrollpunkte
-
Kollisionserkennung
-
Eingabeunterstützung bei Verbindungsmarken
-
Forcen und Schreiben von Werten im Onlinebetrieb
-
Verschieben der Selektion mittels Pfeiltasten
-
Reduzierte Darstellung eines Bausteins ohne unverbundene Anschlüsse
Elemente einfügen und mit Verbindungslinien verschalten
-
Platzieren Sie ein Element „Baustein“ und ein Element „Ausgang“ im Editor.
-
Klicken Sie auf den Ausgang des Elements „Baustein“.
Der Ausgang wird mit einem roten Quadrat gekennzeichnet.
-
Ziehen Sie mit gedrückter Maustaste eine Verbindungslinie vom Bausteinausgang des Elements „Baustein“ zum Bausteineingang des Elements „Ausgang“.
Beim Erreichen des Bausteineingangs ändert der Cursor sein Symbol.
-
Lassen Sie die Maustaste los.
Der Ausgangspin des Bausteins ist mit dem Eingangspin des Ausgangs verdrahtet.
Alternativ können Sie die beiden Pins mit gedrückter [Strg]-Taste selektieren und den Befehl „Selektierte Anschlüsse verbinden“ auswählen.
Instanzen aufrufen
-
Erstellen Sie ein neues Projekt mit der Standardvorlage und geben Sie beispielsweise den Namen
First
ein.Das Projekt
First.project
ist erstellt. -
Erweitern Sie die Applikation mit dem Funktionsbaustein
FB_DOIt
in der Implementierungssprache „ST“ mit Eingängen und Ausgängen.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
-
Selektieren Sie die Applikation und wählen Sie im Kontextmenü den Befehl „Objekt hinzufügen POU“. Wählen Sie die Implementierungssprache „Continous Function Chart (CFC)“ und den Typ
Programm
. Geben Sie beispielsweise den NamenPrgFirst
ein.Betätigen Sie den Dialog mit „OK“.
Das Programm
PrgFirst
ist erstellt und erscheint im Editor. Noch ist es leer. -
Instanzieren Sie Funktionsbausteine und deklarieren Sie Variablen.
PROGRAM PrgFirst VAR iCounter: INT; fbDoIt_1 : FB_DoIt; fbDoIt_2 : FB_DoIt; iOut : INT; sOut: STRING; xOut: BOOL; END_VAR
-
Ziehen Sie ein Element „Baustein“ von der Ansicht „Werkzeuge“ in den Editor.
-
Klicken Sie auf das Feld
???
und geben SieADD
ein.Der Bausteintyp ist
ADD
. Der Baustein fungiert als Addierer. -
Klicken Sie im Deklarationseditor auf die Zeilennummer 3.
Die Deklarationszeile von
iCounter
ist selektiert. -
Klicken Sie in die Selektion und ziehen Sie die selektierte Variable in die Implementierung und fokussieren Sie dort einen Eingang des Bausteins
ADD
.Ein Eingang wurde erzeugt, deklariert und mit dem Baustein verbunden.
-
Klicken Sie nochmals in die Selektion und ziehen Sie die Variable zum Ausgang des Bausteins
ADD
.Ein Ausgang wurde erzeugt, deklariert und mit dem Baustein verbunden.
-
Ziehen Sie von der Ansicht „Werkzeuge“ ein Element „Eingang“ in die Implementierung. Klicken Sie auf dessen Feld
???
und geben Sie1
ein. -
Verbinden Sie den Eingang
1
mit einem Eingang am BausteinADD
.Ein Netzwerk ist programmiert. Zur Laufzeit zählt das Netzwerk die Buszyklen und speichert das Ergebnis in
iCounter
. -
Klicken Sie im Deklarationseditor auf die Zeilennummer 5.
Die Zeile ist selektiert.
-
Klicken Sie in die Selektion und ziehen Sie die selektierte Instanz in die Implementierung.
Die Instanz erscheint als Baustein im Editor. Typ, Name und die Bausteinpins werden entsprechend angezeigt.
-
Ziehen Sie die Instanz
fbDoIt_2
in den Editor. Verschalten Sie die Instanzen untereinander und mit Eingängen und Ausgängen.Beispiel:
Ein Programm in ST mit gleicher Funktionalität könnte folgendermaßen aussehen:
PROGRAM PrgFirstInSt VAR iCounter: INT; fbDoIt_1 : FB_DoIt; fbDoIt_2 : FB_DoIt; iOut : INT; sOut: STRING; xOut: BOOL; END_VAR iCounter := iCounter + 1; fbDoIt_1(iAlfa := 16, iBravo := 32, sCharlie := 'First', xItem := TRUE, iDelta := 2, iResult => fbDoIt_2.iAlfa, xResult => fbDoIt_2.xItem); fbDoIt_2(iBravo := fbDoIt_1.iResult, sCharlie := 'Second', iDelta := 2, iResult => iOut , sResult=> sOut, xResult => xOut);
Verbindungsmarken erzeugen
Voraussetzung: Sie haben einen CFC-Programmierbaustein mit verbundenen Elementen.
-
Selektieren Sie eine Verbindungslinie zwischen zwei Elementen.
Die Verbindungslinie wird selektiert dargestellt. Die Enden der Verbindungslinie sind mit roten Quadraten markiert
.
-
Wählen Sie den Befehl „CFC Verbindungsmarke“.
Die Verbindung wird aufgetrennt und durch eine „Verbindungsmarke - Quelle“ und eine „Verbindungsmarke - Ziel“ ersetzt. Der Name der Marken wird automatisch erzeugt.
-
Klicken Sie in die Quellverbindungsmarke.
Der Name kann editiert werden.
-
Geben Sie als Name für die Quellverbindungsmarke
SimpleMark
ein.Quellverbindungsmarke und Zielverbindungsmarke haben den gleichen Namen.
Kollisionen lösen und Verbindungslinien durch Kontrollpunkte fixieren
Das nachfolgende Beispiel zeigt Ihnen die Verwendung des Befehls „Alle Verbindungen routen“ sowie die Verwendung von Kontrollpunkten.
-
Platzieren Sie die Elemente „Eingang“ und „Ausgang“. Verbinden Sie die Elemente.
-
Platzieren Sie 2 Elemente des Typs „Baustein“ auf der Linie.
Die Verbindungslinie und die Bausteine werden wegen der Kollision rot gezeichnet.
-
Führen Sie den Befehl „CFC Routing Alle Verbindungen routen“ aus.
Die Kollision wird gelöst
-
Verändern Sie schrittweise die Verbindungslinien.
Die Verbindungslinie wurde manuell verändert und ist nun für ein Autorouting gesperrt. Dies wird durch ein Schloss-Symbol am Verbindungsende angezeigt.
-
Selektieren Sie die Verbindungslinie und wählen Sie den Befehl „CFC Routing Kontrollpunkt erzeugen“
Auf der Verbindungslinie wird ein Kontrollpunkt erzeugt. An dem Kontrollpunkt ist die Verbindungslinie fixiert.
Alternativ können Sie einen Kontrollpunkt aus der Ansicht „Werkzeuge“ auf eine Linie ziehen.
-
Verändern Sie die Verbindungslinie gemäß nachfolgendem Beispiel.
Durch den Kontrollpunkt können Sie die Verbindungslinie individuell verändern. Sie können beliebig viele Kontrollpunkte setzen.
-
Entfernen Sie den Kontrollpunkt mit dem Kontextbefehl „CFC Routing Kontrollpunkt entfernen“.
-
Lösen die Verbindung mit dem Befehl „Verbindung lösen“ oder durch einen Mausklick auf das Schloss-Symbol.
-
Selektieren Sie die Verbindungslinie und wählen Sie den Befehl „Alle Verbindungen routen“.
Die Verbindungslinie wird automatisch wie unter Schritt 3 dargestellt geroutet.




HINWEIS

Verbindungen innerhalb einer Gruppe werden nicht automatisch geroutet.
Darstellung eines Bausteins reduzieren
Voraussetzung: Ein CFC-Programmierbaustein ist geöffnet. Im Editor werden dessen Bausteine mit allen deklarierten Anschlüssen angezeigt.
-
Selektieren Sie einen Baustein, dessen Anschlüsse teilweise unverbunden sind.
Beispiel:
fb_DoIt_1
Der Baustein benötigt Platz für alle Anschlüsse.
-
Wählen Sie den Befehl „CFC Pins Nicht verbundene Anschlüsse entfernen“.
Der Baustein benötigt weniger Platz und wird nun nur mit den funktional relevanten Anschlüssen dargestellt.