Ein kombinierter Editor ermöglicht das Programmieren in den Sprachen FUP (Funktionsplan), KOP (Kontaktplan) und AWL (Anweisungsliste).
Die Basiseinheit der FUP- und KOP-Programmierung ist ein Netzwerk. Jedes Netzwerk enthält eine Struktur, die Folgendes darstellen kann: Einen logischen oder arithmetischen Ausdruck, den Aufruf eines Programmierbausteins (Funktion, Funktionsbaustein, Programm usw.), einen Sprung, oder eine Return-Anweisung. AWL benötigt eigentlich keine Netzwerke. In CODESYS besteht jedoch auch ein AWL-Programm aus mindestens einem Netzwerk, um das Konvertieren in FUP oder KOP zu unterstützen. Im Hinblick darauf sollten Sie auch ein AWL-Programm sinnvoll in Netzwerke unterteilen.
Siehe auch
Funktionsplan (FUP)
Der Funktionsplan ist eine graphisch orientierte IEC 61131 Programmiersprache. Er arbeitet mit einer Liste von Netzwerken. Dabei enthält jedes Netzwerk eine Struktur, die logische und arithmetische Ausdrücke, Aufrufe von Funktionsbausteinen, einen Sprung oder eine Return-Anweisung enthalten kann.
Hierbei werden Bausteine benutzt, die aus der booleschen Algebra bekannt sind. Bausteine und Variablen werden mit Verbindungslinien verknüpft. Der Signalfluss verläuft im Netzwerk von links nach rechts. Der Signalfluss im Editor verläuft von oben nach unten, beginnend mit Netzwerk 1.
Beispiel

CFC ist ebenfalls eine Programmiersprache nach dem Prinzip von FUP, jedoch mit folgenden Unterschieden:
-
Der CFC-Editor ist nicht netzwerkorientiert.
-
Sie können die Elemente im CFC-Editor frei platzieren.
-
Direktes Einfügen von Rückkopplungen ist möglich.
-
Die Abarbeitungsreihenfolge wird durch eine Liste der aktuell eingefügten Elemente bestimmt, die Sie verändern können.
Kontaktplan (KOP)
Der Kontaktplan (KOP) ist eine grafisch orientierte Programmiersprache, die dem Prinzip eines elektrischen Schaltplans angenähert ist. Einerseits eignet sich der Kontaktplan dazu, logische Schaltwerke zu konstruieren, andererseits kann man aber auch Netzwerke wie im FUP erstellen. Daher können Sie den KOP sehr gut zum Steuern von Aufrufen anderer Programmbausteine verwenden.
Der Kontaktplan besteht aus einer Folge von Netzwerken. Ein Netzwerk wird auf der
linken Seite von einer vertikalen Linie (Stromschiene) begrenzt. Ein Netzwerk enthält
einen Schaltplan aus Kontakten, Spulen, optional Bausteinen (POUs) und Verbindungslinien.
Auf der linken Seite eines Netzwerks gibt es einen Kontakt oder eine Folge von Kontakten,
die von links nach rechts den Zustand ON oder OFF weitergeben, was den booleschen
Werten TRUE
und FALSE
entspricht. Zu jedem Kontakt gehört eine boolesche Variable. Wenn diese Variable
TRUE ist, dann wird der Zustand über die Verbindungslinie von links nach rechts weitergegeben.
Ansonsten wird OFF weitergegeben. Somit erhält/erhalten die Spule(n) im rechten Teil
des Netzwerks den von links kommenden Wert ON oder OFF und dementsprechend wird der
Wert TRUE oder FALSE in die ihnen zugewiesene boolesche Variable geschrieben.
Wenn die Elemente in Reihe geschaltet werden, dann bedeutet dies eine UND-Verknüpfung. Wenn sie parallel geschaltet werden, dann bedeutet dies eine ODER-Verknüpfung. Ein Strich durch ein Element bedeutet eine Negierung des Elements. Die Negation eines Eingangs oder Ausgangs wird durch ein Kreissymbol angezeigt.
Beispiel

Die IEC 61131-3 definiert einen vollständigen KOP-Befehlssatz, bestehend aus verschiedenen Typen von Kontakten und Spulen. Kontakte leiten den Strom (entsprechend ihres Typs) von links nach rechts. Spulen speichern den eingehenden Wert. Kontakte und Spulen sind booleschen Variablen zugeordnet. Sie können ein KOP-Netzwerk durch Sprünge, Rücksprünge, Marken und Kommentare ergänzen.
Siehe auch
Anweisungsliste (AWL)
Die Anweisungsliste ist eine Assembler-ähnliche IEC 61131-konforme Programmiersprache. Sie unterstützt akkumulator-basiertes Programmieren.
Eine Anweisungsliste (AWL) besteht aus einer Folge von Anweisungen. Jede Anweisung beginnt in einer neuen Zeile und beinhaltet einen Operator und, je nach Art der Operation, einen oder mehrere durch Kommata separierte Operanden. Vor einer Anweisung kann eine Marke stehen, gefolgt von einem Doppelpunkt. Sie dient der Kennzeichnung der Anweisung und Sie können die Marke als Sprungziel verwenden. Ein Kommentar muss das letzte Element in einer Zeile sein. Leere Zeilen können zwischen Anweisungen eingefügt werden.
Alle IEC 61131-3 Operatoren werden unterstützt, ebenso mehrfache Eingänge, mehrfache Ausgänge, Negationen, Kommentare, Set/Reset von Ausgängen und bedingte/unbedingte Sprünge.
Jede Anweisung basiert primär auf dem Laden von Werten in den Akkumulator (LD
-Anweisung). Danach wird die entsprechende Operation mit dem Parameter aus dem Akkumulator
ausgeführt. Das Ergebnis der Operation wird wieder in den Akkumulator geschrieben,
von wo Sie es mit Hilfe einer ST
-Anweisung gezielt speichern sollten.
Für das Programmieren von bedingten Ausführungen oder Schleifen unterstützt die Anweisungsliste
Vergleichsoperatoren (EQ, GT, LT, GE, LE, NE) und Sprünge. Sprünge können unbedingt
(JMP) oder bedingt (JMPC / JMPCN) sein. Bei bedingten Sprüngen wird geprüft, ob der
Wert im Akkumulator TRUE
oder FALSE
ist.
Beispiel

-
Programmieren in Funktionsplan (FUP)
-
Programmieren in Kontaktplan (KOP)
-
Programmieren in Anweisungsliste (AWL)