Freigrafischer Funktionsplaneditor

So sieht ein Baustein aus, der mit dem freigrafischen Funktionsplaneditor (CFC) erstellt wurde:

Freigrafischer Funktionsplaneditor 1:

Editor für freigrafischen Funktionsplan

Beim freigrafischen Funktionsplaneditor werden keine Netzwerke verwendet, sondern die Elemente können frei platziert werden. Zu den Elementen der Abarbeitungsliste gehören der Baustein, Eingang, Ausgang, Sprung, Label, Return und Kommentar. Die Ein- und Ausgänge dieser Elemente können durch Ziehen einer Verbindung mit der Maus verbunden werden. Die Verbindungslinie wird automatisch gezeichnet. Dabei wird unter Berücksichtigung der bestehenden Verbindungen die kürzeste Verbindungslinie gezeichnet. Beim Verschieben von Elementen werden die Verbindungslinien automatisch angepasst. Kann eine Verbindungslinie aus Platzgründen nicht gezeichnet werden, so wird eine rote Linie zwischen Eingang und zugehörigem Ausgang dargestellt. Sobald genügend Platz vorhanden ist, wird diese Linie in eine Verbindungslinie umgewandelt.

Ein Vorteil des freigrafischen gegenüber des gewöhnlichen Funktionsplaneditors FUP ist, dass Rückkopplungen direkt eingefügt werden können.

Die wichtigsten Befehle finden Sie im Kontextmenü.

Cursorpositionen im CFC

Jeder Text ist eine mögliche Cursorposition. Der selektierte Text ist blau hinterlegt und kann geändert werden.

Ansonsten ist die aktuelle Cursorposition durch ein gepunktetes Rechteck gekennzeichnet. Es folgt eine Aufzählung aller möglichen Cursorpositionen mit Beispielen:

1. Rümpfe der Elemente Baustein, Eingang, Ausgang, Sprung, Label, Return und Kommentar:

Freigrafischer Funktionsplaneditor 2:

2. Textfelder der Elemente Baustein, Eingang, Ausgang, Sprung, Label und Kommentar, ferner die Textfelder der Verbindungsmarken:

Freigrafischer Funktionsplaneditor 3:

3. Eingänge der Elemente Baustein, Ausgang, Sprung und Return:

Freigrafischer Funktionsplaneditor 4:

4. Ausgänge der Elemente Baustein und Eingang:

Freigrafischer Funktionsplaneditor 5:

'Einfügen' 'Baustein' Kurzform: <Strg>+<B>

Mit diesem Befehl können Operatoren, Funktionen, Funktionsblöcke und Programme eingefügt werden. Es wird zunächst stets ein "AND"-Operator eingefügt. Dieser kann durch Selektieren und Überschreiben des Textes in jeden anderen Operator, in jede Funktion, in jeden Funktionsblock und in jedes Programm umgewandelt werden. Mit der Eingabehilfe können Sie den gewünschten Baustein aus der Liste der unterstützten Bausteine auswählen. Hat der neue Baustein eine andere Mindestanzahl von Eingängen, so werden diese angehängt. Hat der neue Baustein eine kleinere Höchstzahl von Eingängen, so werden die letzten Eingänge gelöscht.

'Einfügen' 'Eingang' Kurzform: <Strg>+<E>

Mit diesem Befehl wird ein Eingang eingefügt. Der eingetragene Text "???" kann selektiert und durch eine Variable oder Konstante ersetzt werden. Dazu können Sie auch die Eingabehilfe verwenden.

'Einfügen' 'Ausgang' Kurzform: <Strg>+<A>

Mit diesem Befehl wird ein Ausgang eingefügt. Der eingetragene Text "???" kann selektiert und durch eine Variable ersetzt werden. Dazu können Sie auch die Eingabehilfe verwenden. Es wird der Wert, der am Eingang des Ausgangs anliegt, dieser Variablen zugewiesen.

'Einfügen' 'Sprung' Kurzform: <Strg>+<J>

Mit diesem Befehl wird ein Sprung eingefügt. Der eingetragene Text "???" kann selektiert und durch die Sprungmarke, an die gesprungen werden soll, ersetzt werden.
Die Sprungmarke wird mit dem Befehl 'Einfügen' 'Label' eingefügt.

'Einfügen' 'Label' Kurzform: <Strg>+<L>

Mit diesem Befehl wird ein Label eingefügt. Der eingetragene Text "???" kann selektiert und durch die Sprungmarke ersetzt werden. Im Online Modus wird automatisch ein RETURN-Label zur Markierung des Bausteinendes eingefügt.

Der Sprung wird mit dem Befehl 'Einfügen' 'Sprung' eingefügt.

'Einfügen' 'Return' Kurzform: <Strg>+<R>

Mit diesem Befehl wird eine RETURN-Anweisung eingefügt.

Beachten Sie, dass im Online Modus automatisch eine Sprungmarke mit der Bezeichnung RETURN in der ersten Spalte und nach dem letzten Element im Editor eingefügt wird, die beim Steppen vor dem Verlassen des Bausteins angesprungen wird.

'Einfügen' 'Kommentar' Kurzform: <Strg>+<K>

Mit diesem Befehl wird ein Kommentar eingefügt.
Eine neue Zeile innerhalb des Kommentars, erhalten Sie mit <Strg> + <Eingabetaste>.

'Einfügen' 'Bausteineingang' Kurzform: <Strg>+<U>

Dieser Befehl fügt einen Bausteineingang ein. Die Zahl der Eingänge ist bei vielen Operatoren variabel (z.B. ADD kann 2 oder mehr Eingänge haben).
Um einen solchen Operator um einen Eingang zu erweitern, muss der Operator selbst (Cursorposition 1) selektiert werden.

'Einfügen' 'In-Pin', 'Einfügen' 'Out-Pin'

Diese Befehle stehen zur Verfügung, sobald ein Makro zur Bearbeitung geöffnet ist. Sie dienen dem Einfügen von In- bzw. Out-Pins als Ein- und Ausgänge des Makros. Sie unterscheiden sich von den normalen Ein- und Ausgängen der Bausteine durch die Darstellungsform und dadurch, dass sie keinen Positionsindex erhalten.

'Extras' 'Negieren' Kurzform: <Strg>+<N>

Mit diesem Befehl können Sie Eingänge, Ausgänge, Sprünge oder RETURN-Anweisungen negieren. Das Symbol für die Negation ist ein kleiner Kreis auf einer Verbindung.
Wenn ein Eingang eines Bausteins, Ausgangs, Sprungs oder Returns selektiert ist (Cursorposition 3), dann wird dieser Eingang negiert.
Wenn ein Ausgang eines Bausteins oder Eingangs selektiert ist (Cursorposition 4), dann wird dieser Ausgang negiert.
Eine Negation kann durch erneutes Negieren gelöscht werden.

'Extras' 'Set/Reset'

Dieser Befehl kann nur für selektierte Eingänge der Elemente Ausgang (Cursorposition 3) ausgeführt werden.
Das Symbol für Set ist S, das für Reset ist R.

Freigrafischer Funktionsplaneditor 6:

VarOut1 wird auf TRUE gesetzt, falls VarIn1 TRUE liefert. VarOut1 behält diesen Wert, auch wenn VarIn1 wieder auf FALSE zurückspringt.
VarOut2 wird auf FALSE gesetzt, falls VarIn2 TRUE liefert. VarOut2 behält diesen Wert, auch wenn VarIn2 wieder auf FALSE zurückspringt.
Bei mehrfacher Ausführung des Befehls wechselt der Ausgang zwischen Set-, Reset- und normalem Zustand.

'Extras' 'EN/ENO' Kurzform: <Strg>+<O>

Mit diesem Befehl erhält ein selektierter Baustein (Cursorposition 3) einen zusätzlichen boolschen Freigabe-Eingang EN (Enable In) und einen boolschen Ausgang ENO (Enable Out).

Freigrafischer Funktionsplaneditor 7:

In diesem Beispiel wird ADD nur dann ausgeführt, wenn die boolsche Variable Bedingung TRUE ist. Nach der Ausführung von ADD wird VarOut ebenfalls auf TRUE gesetzt. Falls die Variable Bedingung gleich FALSE ist, wird ADD nicht abgearbeitet und VarOut erhält den Wert FALSE. Untenstehendes Beispiel zeigt, wie der Wert von ENO für weitere Bausteine verwendet werden kann.

Freigrafischer Funktionsplaneditor 8:

x soll dabei mit 1 und y mit 0 initialisiert sein. Die Nummern in der rechten Ecke der Bausteine geben die Abarbeitungsreihenfolge an.

x wird solange um eins erhöht, bis es den Wert 10 annimmt. Da dann der Ausgang des Bausteins LT(0) FALSE liefert, wird SUB(3) und ADD(5) ausgeführt. x wird also auf den Wert 1 gesetzt und y wird um 1 erhöht. Danach wird wieder LT(0) ausgeführt, solange x kleiner als 10 ist. y zählt also, wie oft x die Werte 1 bis 10 durchläuft.

'Extras' 'Eigenschaften...'

Im freigrafischen Funktionsplaneditor werden konstante Eingangsparameter (VAR_INPUT CONSTANT) von Funktionen und Funktionsblöcken nicht direkt angezeigt. Diese können angezeigt und in in ihrem Wert verändert werden, wenn man den Rumpf des betreffenden Bausteins selektiert (Cursorposition 1) und den Befehl 'Extras''Eigenschaften...' wählt oder einfach auf den Rumpf doppelklickt. Es öffnet sich der Dialog Parameter bearbeiten:

Freigrafischer Funktionsplaneditor 9:

Die Werte der konstanten Eingangsparameter (VAR_INPUT CONSTANT) können verändert werden. Dazu muss der Parameterwert in der Spalte Wert markiert werden. Durch erneuten Mausklick oder durch Drücken der Leertaste kann dieser bearbeitet werden. Bestätigt wird die Änderung eines Wertes durch Drücken der <Eingabetaste>; durch Drücken der <Escape-Taste> werden die Änderungen verworfen. Mit der Schaltfläche OK werden alle Änderungen gespeichert.

Elemente selektieren

Um ein Element zu selektieren, klickt man mit der Maus auf den Rumpf des Elements (Cursorposition 1).
Um mehrere Elemente zu markieren, drücken Sie die <Umschalt>-Taste und mit der Maus nacheinander auf die entsprechenden Elemente oder ziehen Sie bei gedrückter linker Maustaste ein Fenster über die zu markierenden Elemente auf.
Mit dem Befehl 'Extras' 'Alles Markieren' können alle Elemente selektiert werden.

Elemente verschieben

Ein oder mehrere selektierte Elemente können mit den Pfeiltasten bei gedrückter <Umschalt>-Taste verschoben werden. Eine weitere Möglichkeit ist, die Elemente mit gedrückter linker Maustaste zu verschieben. Diese Elemente werden durch Loslassen der linken Maustaste abgelegt, sofern sie nicht andere Elemente überdecken oder die vorgesehene Größe des Editors überschreiten. In diesem Fall erhalten die markierten Elemente wieder in ihrer ursprünglichen Position und es ertönt eine Warnung.

Elemente kopieren

Ein oder mehrere selektierte Elemente werden mit dem Befehl 'Bearbeiten' 'Kopieren', kopiert und mit 'Bearbeiten' 'Einfügen' eingefügt.

Verbindungen erstellen

Ein Eingang eines Elementes kann mit genau einem Ausgang eines Elementes verbunden werden. Ein Ausgang eines Elementes kann mit mehreren Eingängen von Elementen verbunden werden.
Es gibt mehrere Möglichkeiten, einen Eingang eines Elementes E2 mit dem Ausgang eines Elementes E1 zu verbinden.

Freigrafischer Funktionsplaneditor 10:

Mit der linken Maustaste auf den Ausgang des Elements E1 (Cursorposition 4) klicken, die linke Maustaste gedrückt halten, den Mauszeiger auf den Eingang des Elements E2 (Cursorposition 3) ziehen und dort die linke Maustaste loslassen. Während des Ziehvorganges mit der Maus wird eine Verbindung vom Ausgang des Elements E1 zum Mauszeiger gezeichnet.

Mit der linken Maustaste auf den Eingang des Elements E2 klicken, die linke Maustaste gedrückt halten, den Mauszeiger auf den Ausgang des Elements E1 ziehen und dort die linke Maustaste loslassen.

Eines der Elemente E1 oder E2 verschieben (Cursorposition 1) und durch Loslassen der linken Maustaste so ablegen, dass sich der Ausgang von Element E2 und Eingang von Element E1 berühren.

Falls das Element E2 ein Baustein mit einem freien Eingang ist, kann mit der Maus auch eine Verbindung von einem Ausgang von E1 in den Rumpf von E2 gezogen werden. Beim Loslassen der Maustaste wird automatisch eine Verbindung mit dem obersten freien Eingang von E2 hergestellt. Wenn der Baustein E2 keinen freien Eingang hat, aber ein Operator ist, der um einen Eingang erweiterbar ist, dann wird automatisch ein neuer Eingang erzeugt.

Mit Hilfe dieser Methoden können auch der Ausgang und Eingang eines Bausteins miteinander verbunden werden (Rückkopplung). Zum Erstellen einer Verbindung zwischen zwei Pins klicken Sie mit der linken Maustaste auf einen Pin, halten die Taste gedrückt und ziehen dabei die Verbindung zum gewünschten Pin, wo Sie die Taste wieder loslassen. Wird während des Verbindungsziehens der Arbeitsbereich des Editors verlassen, so wird automatisch gescrollt. Für einfache Datentypen erfolgt während des Verbindens eine Typprüfung. Sind die Typen der beiden Pins nicht kompatibel, so ändert sich der Cursor auf "Verboten". Für komplexe Datentypen erfolgt keine Überprüfung.

Verbindungen löschen

Es gibt mehrere Möglichkeiten, eine Verbindung zwischen dem Ausgang eines Elementes E1 und einem Eingang eines Elementes E2 zu löschen:

Den Ausgang von E1 selektieren (Cursorposition 4) und die <Entf-Taste> drücken oder den Befehl 'Bearbeiten''Löschen' ausführen. Ist der Ausgang von E1 mit mehreren Eingängen verbunden, so werden mehrere Verbindungen gelöscht.

Den Eingang von E2 selektieren (Cursorposition 4) und die <Entfernen-Taste> drücken oder den Befehl 'Bearbeiten''Löschen' ausführen.

Mit der Maus den Eingang von E2 selektieren, die linke Maustaste dabei gedrückt halten und die Verbindung vom Eingang von E2 wegziehen. Wird die linke Maustaste dann in einem freien Bereich losgelassen, so wird die Verbindung gelöscht.

Verbindungen ändern

Eine Verbindung zwischen dem Ausgang eines Elementes E1 und dem Eingang eines Elementes E2 kann leicht in eine Verbindung zwischen dem Ausgang von E1 und einem Eingang eines Elements E3 geändert werden. Dazu wird mit der Maus auf den Eingang von E2 geklickt (Cursorposition 3), die linke Maustaste dabei gedrückt gehalten, der Mauszeiger auf den Eingang von E3 bewegt und dort losgelassen.

'Extras' 'Verbindungsmarke'

Verbindungen können an Stelle von Verbindungslinien auch mit Hilfe von Konnektoren (Verbindungsmarken) dargestellt werden. Dabei werden der Ausgang und der zugehörige Eingang mit einem Konnektor, der einen eindeutigen Namen hat, versehen.
Liegt bereits eine Verbindung zwischen zwei Elementen vor, die nun in Konnektor-Darstellung angezeigt werden soll, so wird zunächst der Ausgang der Verbindungslinie markiert (Cursorposition 3) und der Menüpunkt 'Extras'Verbindungsmarke angewählt. Nachfolgende Darstellung zeigt eine Verbindung vor und nach dem Anwählen letzteren Menüpunktes.

Freigrafischer Funktionsplaneditor 11:

Vom Programm wird standardmäßig ein eindeutiger Konnektorname vergeben, der mit M beginnt, aber verändert werden kann. Der Konnektorname wird als Parameter des Ausgangs gespeichert, kann jedoch sowohl am Eingang als auch am Ausgang editiert werden:

Editieren des Konnektornamens am Ausgang: Freigrafischer Funktionsplaneditor 12:

Wird der Text im Konnektor ersetzt, so wird der neue Konnektorname bei allen zugehörigen Konnektoren an Eingängen übernommen. Es kann jedoch kein Name gewählt werden, der bereits zu einer anderen Verbindungsmarke gehört, da somit die Eindeutigkeit des Konnektornamens verletzt wäre. Eine entsprechende Meldung wird in diesem Fall ausgegeben.

Editieren des Konnektornamens am Eingang: Freigrafischer Funktionsplaneditor 13:

Wird der Text im Konnektor ersetzt, so wird er auch in der zugehörigen Verbindungsmarke am anderen Baustein ersetzt. Verbindungen in Konnektordarstellung können wieder in gewöhnliche Verbindungen umgewandelt werden, indem man die Ausgänge der Verbindungen markiert (Cursorposition 4) und den Menüpunkt 'Extras''Verbindungsmarke' erneut anwählt.

Inputs/Outputs "On the fly" einfügen

Ist exakt ein Input- bzw. Output-Pin eines Elementes selektiert, kann unmittelbar durch Eingabe einer Zeichenfolge über die Tastatur das entsprechende Input- bzw. Output-Element eingefügt werden und dessen Editorfeld mit der Zeichenfolge gefüllt werden.

Abarbeitungsreihenfolge

Beim freigrafischen Funktionsplaneditor erhalten die Elemente Baustein, Ausgang, Sprung, Return und Label jeweils eine Abarbeitungsnummer. In dieser Reihenfolge werden die einzelnen Elemente zur Laufzeit berechnet.
Beim Einfügen eines Elements wird die Nummer automatisch in topologischer Reihenfolge vergeben (von links nach rechts und von oben nach unten). Wurde die Reihenfolge bereits verändert, erhält das neue Element die Nummer seines topologischen Nachfolgers und alle höheren Nummern werden um eins erhöht.
Beim Verschieben eines Elementes bleibt die Nummer erhalten.
Die Reihenfolge hat Einfluss auf das Ergebnis und muss in bestimmten Fällen geändert werden.
Wird die Reihenfolge angezeigt, so erscheint bei den Elementen in der rechten oberen Ecke die jeweilige Abarbeitungsnummer.

'Extras' 'Reihenfolge' 'Anzeigen'

Mit diesem Befehl wird die Anzeige der Abarbeitungsreihenfolge an- bzw. angeschaltet. Standardmäßig wird die Abarbeitungsreihenfolge angezeigt (erkennbar am Haken (*) vor dem Menüpunkt).
Bei den Elementen Baustein, Ausgang, Sprung, Return und Label erscheint in der rechten oberen Ecke ihre jeweilige Abarbeitungsnummer.

'Extras' 'Reihenfolge' 'Topologisch anordnen'

Elemente sind in topologischer Reihenfolge angeordnet, wenn die Abarbeitung von links nach rechts und von oben nach unten stattfindet, d.h. bei topologisch angeordneten Elementen nimmt die Nummer von links nach rechts und von oben nach unten zu. Die Verbindungen spielen keine Rolle. Es zählt nur die Lage der Elemente.

Wird der Befehl 'Extras''Reihenfolge''Topologisch anordnen' ausgeführt, so werden alle markierten Elemente topologisch angeordnet. Alle Elemente der Selektion werden dabei aus der Abarbeitungsliste herausgenommen. Danach werden die Elemente der Selektion einzeln von rechts unten nach links oben wieder in die verbliebende Abarbeitungsliste eingefügt. Jedes markierte Element wird dabei in der Abarbeitungsliste vor dem topologischen Nachfolger eingefügt, d.h. es wird vor dem Element eingefügt, das bei einer topologischen Anordnung danach abgearbeitet werden würde, wenn alle Elemente des Editors in topologischer Reihenfolge angeordnet wären. Dies wird an einem Beispiel verdeutlicht.

Freigrafischer Funktionsplaneditor 14:

Die Elemente mit der Nummer 1, 2 und 3 sind selektiert. Wird jetzt der Befehl 'Topologisch anordnen' angewählt, werden die drei selektierten Elemente zunächst aus der Abarbeitungsliste herausgenommen. Dann werden nacheinander Var3, der Sprung und der AND-Operator wieder eingefügt. Var3 wird vor das Label eingeordnet und bekommt die Nummer 2. Danach wird der Sprung eingeordnet und erhält zunächst die 4, nach Einfügen des AND die 5. Es ergibt sich folgende neue Abarbeitungsreihenfolge:

Freigrafischer Funktionsplaneditor 15:

Beim Ablegen eines neu erzeugten Bausteins wird dieser standardmäßig vor ihren topologischen Nachfolger in die Abarbeitungsliste einsortiert.
'Extras''Reihenfolge''Eins vor'

Mit diesem Befehl werden alle selektierten Elemente mit Ausnahme des Elements, das sich am Anfang der Abarbeitungsreihenfolge befindet, innerhalb der Abarbeitungsreihenfolge um einen Platz nach vorne verschoben.

'Extras''Reihenfolge''Eins zurück'

Mit diesem Befehl werden alle selektierten Elemente mit Ausnahme des Elements, das sich am Ende der Abarbeitungsreihenfolge befindet, innerhalb der Abarbeitungsreihenfolge um einen Platz nach hinten verschoben.

'Extras''Reihenfolge''An den Anfang'

Mit diesem Befehl werden alle selektierten Elemente an den Anfang der Abarbeitungsreihenfolge geschoben, wobei die Reihenfolge innerhalb der selektierten Elemente beibehalten wird. Ebenso bleibt die Reihenfolge innerhalb der nicht selektierten Elemente beibehalten.

'Extras' 'Reihenfolge' 'Ans Ende'

Mit diesem Befehl werden alle selektierten Elemente an das Ende der Abarbeitungsreihenfolge geschoben, wobei die Reihenfolge innerhalb der selektierten Elemente beibehalten wird. Ebenso bleibt die Reihenfolge innerhalb der nicht selektierten Elemente beibehalten.

'Extras' 'Reihenfolge' 'Alles nach Datenfluss anordnen'

Dieser Befehl wird auf alle Elemente angewandt. Die Abarbeitungsreihenfolge wird bestimmt vom Datenfluss der Elemente und nicht von Ihrer Lage.
Untenstehende Abbildung zeigt Elemente, die topologisch angeordnet sind.

Freigrafischer Funktionsplaneditor 16:

Nach Anwahl des Befehls ergibt sich folgende Anordnung:

Freigrafischer Funktionsplaneditor 17:

Bei Anwahl des Befehls werden zunächst alle Elemente topologisch sortiert. Danach wird eine neue Abarbeitungsliste zusammengestellt. Ausgehend von den bekannten Werten der Eingänge wird ermittelt, welche der noch nicht nummerierten Elemente als nächstes abgearbeitet werden kann. Im oberen "Netzwerk" kann z.B. der Baustein ADD sofort abgearbeitet werden, da die Werte, die an seinen Eingängen anliegen (1 und 2) bekannt sind. Erst danach kann der Baustein SUB abgearbeitet werden, da das Ergebnis von ADD bekannt sein muss usw.
Rückkopplungen werden allerdings als letztes eingefügt.
Der Vorteil der datenflussmäßigen Reihenfolge ist, dass eine Ausgangsbox, die mit dem Ausgang eines Bausteins verbunden ist, in der Datenflussreihenfolge unmittelbar auf diesen folgt, was bei der topologischen Anordnung nicht immer der Fall ist. Die topologische Reihenfolge liefert unter Umständen also ein anderes Ergebnis als die Reihenfolge nach Datenfluss, wie man an den obigen Beispielen erkennt.

'Extras' 'Makro erzeugen'

Mit diesem Befehl können mehrere Bausteine, die gleichzeitig selektiert sind, zu einem Block zusammengefasst werden, der als Makro mit einem Namen versehen werden kann. Makros können nur über Kopieren/Einfügen vervielfältigt werden, wobei jede Kopie ein eigenes Makro darstellt, dessen Namen unabhängig gewählt werden kann. Makros sind somit keine Referenzen. Alle Verbindungen, die durch die Erzeugung des Makros "gekappt" werden, erzeugen In- bzw. Out-Pins am Makro. Verbindungen zu Inputs erzeugen einen In-Pin. Als Name neben dem Pin erscheint ein Default-Name der Form In<n>. Für Verbindungen zu Outputs erscheint Out<n>. Betroffene Verbindungen, welche vor der Erzeugung des Makros Verbindungsmarken hatten, erhalten die Verbindungsmarke am PIN des Makros.

Ein Makro erhält zunächst den Default-Namen "MAKRO". Dieser kann im Namensfeld der Makro-Verwendung geändert werden. Wird das Makro editiert, so wird der Name des Makros in der Titelleiste des Editorfensters an den Bausteinnahmen angehängt angezeigt.

Beispiel:
Selektion

Freigrafischer Funktionsplaneditor 18:

Makro

Freigrafischer Funktionsplaneditor 19:

Im Editor:

Freigrafischer Funktionsplaneditor 20:

'Extras' 'In Makro springen'

Durch diesen Befehl oder durch Doppelklick auf den Rumpf des Makros wird das Makro im Editorfenster des zugehörigen Bausteins zum Bearbeiten geöffnet. Der Name des Makros wird angehängt an den Bausteinnamen in der Titelleiste angezeigt.

Die bei der Erstellung erzeugten Pin-Boxen für die Ein- und Ausgänge des Makros können wie die normalen Baustein-Ein- und Ausgänge. Sie können also verschoben, gelöscht, hinzugefügt etc. werden. Sie unterscheiden sich lediglich in der Darstellung und besitzen keinen Positionsindex. Zum Hinzufügen können Sie die Schaltflächen (Eingang) bzw. (Ausgang) benützen, die in der Symbolleiste angeboten werden. Pin-Boxen haben abgerundete Ecken. Der Text der Pin-Box entspricht dem Namen des Pins in der Makrodarstellung.

Die Reihenfolge der Pins an der Makro-Box richtet sich nach der Abarbeitungsreihenfolge der Elemente des Makros. Niedriger Reihenfolgeindex vor hohem, oberer Pin vor unterem.

Die Abarbeitungsreihenfolge innerhalb des Makros ist geschlossen, d.h. das Makro wird als ein Block gerechnet, und zwar an der Position des Makros im übergeordneten Baustein. Die Befehle zur Manipulation der Reihenfolge wirken sich somit nur innerhalb des Makros aus.

'Extras' 'Makro expandieren'

Mit diesem Befehl wird das selektierte Makro wieder expandiert und die enthaltenen Elemente an der Position des Makros im Baustein eingefügt. Die Verbindungen zu den Pins des Makros werden wieder als Verbindungen zu den Ein- bzw. Ausgängen der Elemente dargestellt. Kann die Expansion des Makros aus Platzmangel nicht an der Position der Makrobox erfolgen, so wird das Makro solange nach rechts und unten verschoben, bis genügend Platz zur Verfügung steht.

'Extras' 'Eine Makroebene zurück', 'Extras' 'Alle Makroebenen zurück'

Diese Befehle stehen auch in der Symbolleiste zur Verfügung, sobald ein Makro zur Bearbeitung geöffnet ist. Sind Makros ineinander geschachtelt, kann in die darüber liegende bzw. in die oberste Darstellungsebene zurückgeschaltet werden.

Rückkopplungen

Im freigraphischen Funktionsplaneditor können im Gegensatz zum gewöhnlichen Funktionsplaneditor Rückkopplungen direkt dargestellt werden. Dabei muss beachtet werden, dass für den Ausgang eines Bausteins generell eine interne Zwischenvariable angelegt wird. Bei Operatoren ergibt sich der Datentyp der Zwischenvariable aus dem größten Datentyp der Eingänge.

Der Datentyp einer Konstanten ermittelt sich aus dem kleinstmöglichen Datentyp, d.h. für die Konstante '1' wird der Datentyp SINT angenommen. Wird nun eine Addition mit Rückkopplung und der Konstante '1' durchgeführt, so liefert der erste Eingang den Datentyp SINT und der zweite ist aufgrund der Rückkopplung undefiniert. Somit ist die Zwischenvariable auch vom Typ SINT. Der Wert der Zwischenvariable wird erst danach der Ausgangsvariablen zugewiesen.

Untenstehende Abbildung zeigt einmal eine Addition mit Rückkopplung und einmal direkt mit einer Variablen. Die Variablen x und y sollen dabei vom Typ INT sein.
Freigrafischer Funktionsplaneditor 21:

Zwischen den beiden Additionen gibt es Unterschiede:
Die Variable y kann mit einem Wert ungleich 0 initialisiert werden, die Zwischenvariable der linken Addition jedoch nicht.
Die Zwischenvariable der linken Addition hat den Datentyp SINT, die der rechten den Datentyp INT. Die Variablen x und y haben ab dem 129ten Aufruf unterschiedliche Werte. Die Variable x, obwohl vom Typ INT, erhält den Wert -127, weil die Zwischenvariable einen Überlauf hat. Die Variable y erhält dagegen den Wert 129.

'Extras' 'Instanz öffnen'

Dieser Befehl entspricht dem Befehl 'Projekt' 'Instanz öffnen'.

CFC im Online Modus'

Monitoring:

Die Werte für Eingänge und Ausgänge werden innerhalb der Input- bzw. Output-Boxen dargestellt. Konstanten werden nicht gemonitort. Für nicht boolsche Variablen werden die Boxen entsprechend den angezeigten Werten vergrößert. Für boolsche Verbindungen werden der Variablenname sowie die Verbindung blau dargestellt, wenn der Wert TRUE ist, ansonsten bleiben sie schwarz.
Interne boolsche Verbindungen werden Online ebenfalls im Zustand TRUE blau angezeigt, ansonsten schwarz. Der Wert von internen nicht boolschen Verbindungen wird in einer kleinen Box mit abgerundeten Ecken am Ausgangs-Pin der Verbindung angezeigt.
Freigrafischer Funktionsplaneditor 22:

PINs in Makros werden wie Ein- bzw. Ausgangsboxen gemonitort.
Freigrafischer Funktionsplaneditor 23:

Nicht boolsche Verbindungen mit Verbindungsmarken zeigen Ihren Wert innerhalb der Verbindungsmarke an. Für boolsche Verbindungen werden die Leitungen sowie die Markennamen wiederum blau dargestellt, falls die Leitung TRUE führt, ansonsten schwarz.

Ablaufkontrolle:

Bei eingeschalteter Ablaufkontrolle werden die durchlaufenen Verbindungen mit der in den Projekt-Optionen eingestellten Farbe markiert.

Breakpoints:

Haltepunkte können auf alle Elemente gesetzt werden, die auch einen Abarbeitungsreihenfolgen-Index besitzen. Die Abarbeitung des Programms wird vor dem Ausführen des jeweiligen Elements angehalten, d.h. für Bausteine und Ausgänge vor dem Zuweisen der Eingänge, für Sprungmarken vor dem Ausführen des Elements mit dem nächsten Index. Als Haltepunktposition im Breakpoint-Dialog wird der Abarbeitungsreihenfolgen-Index des Elements verwendet.

Das Setzen der Haltepunkte erfolgt auf ein selektiertes Element mit der Taste F9 oder über den Menüpunkt 'Breakpoint an/aus', im 'Online'- oder 'Extras'-Menü oder im Kontext-Menü des Editors. Ist auf einem Element ein Haltepunkt gesetzt, so wird mit dem nächsten Ausführen des Befehls 'Breakpoint an/aus' dieser wieder gelöscht und umgekehrt. Zusätzlich kann der Haltepunkt auf einem Element durch Doppelklick auf dieses getoggelt werden.

Die Darstellung der Breakpoints erfolgt mit den in den Projekt-Optionen eingestellten Farben.

RETURN-Marke:

Im Online-Modus wird automatisch eine Sprungmarke mit der Bezeichnung "RETURN" in der ersten Spalte und nach dem letzten Element im Editor erzeugt. Diese Marke markiert das Ende des Bausteins und wird beim Steppen vor dem Verlassen des Bausteins angesprungen. In Makros werden keine RETURN-Marken eingefügt.

Steppen:

Bei 'Einzelschritt über' wird immer zum Element mit dem nächsthöheren Reihenfolgen-Index gesprungen. Ist das aktuelle Element ein Makro oder ein Baustein, so wird bei 'Einzelschritt in' in die Implementierung desselben verzweigt. Wird von dort ein 'Einzelschritt über' durchgeführt, wird auf das Element weitergesprungen, dessen Reihenfolgen-Index dem des Makros folgt.

'Extras' 'Zoom' Kurzform: <Alt> + <Enter>

Mit diesem Befehl kann die Implementierung eines Bausteins geöffnet werden, wenn der Baustein selektiert ist.