
- •1 Kurzer Einblick in CoDeSys
- •1.1 Was ist CoDeSys
- •1.2 Überblick über die Funktionalität von CoDeSys...
- •1.3 Übersicht der Anwender-Dokumentation zu CoDeSys
- •2 Was ist was in CoDeSys
- •2.1 Bestandteile eines Projekts...
- •2.2 Die Sprachen...
- •2.2.1 Anweisungsliste (AWL)...
- •2.2.2 Strukturierter Text (ST)...
- •2.2.3 Ablaufsprache (AS)...
- •2.2.4 Funktionsplan (FUP)...
- •2.2.5 Der freigraphische Funktionsplaneditor (CFC)...
- •2.2.6 Kontaktplan (KOP)...
- •2.3 Debugging, Onlinefunktionalitäten...
- •2.4 Die Norm...
- •3 Wir schreiben ein kleines Programm
- •3.1 Die Steuerung einer Ampelanlage...
- •3.2 Die Visualisierung einer Ampelanlage...
- •4 Die Komponenten im Einzelnen
- •4.1 Hauptfenster...
- •4.2 Projekt Optionen...
- •4.3 Projekte verwalten...
- •4.4 Objekte verwalten...
- •4.5 Allgemeine Editierfunktionen...
- •4.6 Allgemeine Online Funktionen...
- •4.7 Fenster ...
- •4.8 Die rettende Hilfe...
- •5 Die Editoren
- •5.1 Das gilt für alle Editoren...
- •5.2 Der Deklarationseditor...
- •5.2.1 Arbeiten im Deklarationseditor
- •5.2.2 Deklarationseditoren im Online Modus
- •5.3 Editoren der textuellen Programmiersprachen...
- •5.3.1 Arbeiten in den Texteditoren
- •5.3.2 Der Anweisungslisteneditor...
- •5.3.3 Der Editor für Strukturierten Text...
- •5.4 Editoren der grafischen Programmiersprachen...
- •5.4.1 Arbeiten in den grafischen Editoren
- •5.4.2 Der Funktionsplaneditor...
- •5.4.3 Der Kontaktplaneditor...
- •5.4.4 Der Ablaufspracheneditor...
- •5.4.5 Der freigraphische Funktionsplaneditor (CFC)...
- •6 Die Ressourcen
- •6.1 Übersicht Ressourcen
- •6.2 Globale Variablen, Variablenkonfiguration, Dokumentvorlage
- •6.2.1 Globale Variablen
- •6.2.2 Variablenkonfiguration...
- •6.2.3 Dokumentvorlage
- •6.3 Alarmkonfiguration
- •6.3.1 Überblick
- •6.3.2 Alarmsystem, Begriffe
- •6.3.3 Alarmklassen
- •6.3.4 Alarmgruppen
- •6.3.5 Alarmspeicherung
- •6.3.6 Menü Extras: Einstellungen
- •6.4 Bibliotheksverwaltung...
- •6.5 Logbuch...
- •6.6 Steuerungskonfiguration
- •6.6.1 Überblick
- •6.6.2 Arbeiten im CoDeSys Steuerungskonfigurator
- •6.6.3 Allgemeine Einstellungen in der Steuerungskonfiguration
- •6.6.4 Anwendungsspezifischer Parameterdialog
- •6.6.5 Konfiguration eines I/O Moduls...
- •6.6.6 Konfiguration eines Kanals
- •6.6.7 Konfiguration von Profibus Modulen...
- •6.6.8 Konfiguration von CAN Modulen...
- •6.6.9 Konfiguration eines CanDevice (CANopen Slave)
- •6.6.10 Steuerungskonfiguration im Online Modus
- •6.6.11 Hardware Scan/Status/Diagnose aus dem Zielsystem
- •6.7 Taskkonfiguration...
- •6.7.1 Arbeiten im Taskkonfigurator
- •6.7.2 System-Ereignisse
- •6.7.3 Taskkonfiguration im Online Modus
- •6.8.1 Überblick
- •6.9 Traceaufzeichnung...
- •6.9.1 Überblick und Konfiguration
- •6.9.2 Darstellung der Traceaufzeichnung
- •6.9.3 'Extras' 'Tracewerte speichern'
- •6.9.4 'Extras' 'Externe Tracekonfigurationen'
- •6.10 Arbeitsbereich
- •6.11 Parameter Manager ..
- •6.11.1 Aktivieren des Parameter Managers
- •6.11.2 Der Parameter Manager Editor, Overview
- •6.11.3 Parameterlisten: Typen und Attribute
- •6.11.4 Parameterlisten verwalten
- •6.11.5 Parameterlisten editieren
- •6.11.6 Parameter Manager im Online Modus
- •6.11.7 Export / Import von Parameterlisten
- •6.12 Zielsystemeinstellungen
- •6.13 PLC Browser...
- •6.13.1 Allgemeines zur PLC-Browser- Bedienung
- •6.13.2 Kommandoeingabe im PLC-Browser
- •6.13.3 Verwendung von Makros bei der Kommandoeingabe im PLC-Browser
- •6.13.4 Weitere PLC-Browser-Optionen
- •6.14 Tools
- •6.14.1 Eigenschaften der bestehenden Verknüpfungen (Objekt Eigenschaften)
- •6.14.2 Verwalten von Verknüpfungen
- •6.14.3 Die wichtigsten Fragen zu Tools
- •7 ENI Versionsverwaltung
- •7.1.2 Voraussetzungen für das Arbeiten mit einer ENI Projektdatenbank
- •7.1.3 Arbeiten in CoDeSys mit der Projektdatenbank
- •7.1.4 Kategorien innerhalb der Projektdatenbank
- •8 DDE Kommunikation
- •8.1 DDE Schnittstelle des CoDeSys Programmiersystems...
- •8.2 DDE Kommunikation über den GatewayDDE-Server...
- •9 Lizenzmanagement in CoDeSys
- •9.1 Der 3S Licensing Manager
- •9.1.1 Erstellen einer lizenzpflichtigen Bibliothek
- •10 ANHANG
- •Anhang A IEC Operatoren und zusätzliche normerweiternde Funktionen
- •Arithmetische Operatoren...
- •Bitstring Operatoren...
- •Bit-Shift Operatoren...
- •Auswahloperatoren...
- •Vergleichsoperatoren...
- •Adressoperatoren...
- •Aufrufoperator...
- •Typkonvertierungen...
- •Numerische Operatoren...
- •Anhang B Operanden in CoDeSys
- •Konstanten...
- •Variablen...
- •Adressen...
- •Funktionen...
- •Anhang C Datentypen in CoDeSys
- •Standard Datentypen
- •Definierte Datentypen
- •Anhang D CoDeSys Bibliotheken
- •Die Bibliothek Standard.lib
- •String Funktionen...
- •Bistabile Funktionsblöcke...
- •Flankenerkennung...
- •Zähler...
- •Timer...
- •Die Bibliothek Util.lib
- •BCD-Konvertierung...
- •Bit-/Byte-Funktionen...
- •Mathematische Hilfsfunktionen...
- •Regler...
- •Signalgeneratoren...
- •Funktionsmanipulatoren...
- •Analogwertverarbeitung...
- •Die Bibliothek AnalyzationNew.lib
- •Die CoDeSys Systembibliotheken
- •Anhang E Übersicht: Operatoren und Bibliotheksbausteine
- •Anhang F Kommandozeilen-/Kommandodatei-Befehle
- •Kommandozeilen-Befehle
- •Kommandodatei (Cmdfile)-Befehle
- •Anhang G Siemens Import
- •SEQ-Symbolikdatei importieren
- •S5-Datei importieren
- •Konvertierung S5 nach IEC 1131-3
- •Anhang H Dialoge der Zielsystemeinstellungen
- •Einstellungen in Kategorie Zielplattform
- •Einstellungen in Kategorie Allgemein
- •Einstellungen in Kategorie Speicheraufteilung
- •Einstellungen in Kategorie Netzfunktionen
- •Einstellungen in Kategorie Visualisierung
- •Anhang I Tastaturbedienung
- •Tastaturbedienung
- •Tastenkombinationen
- •Anhang J Übersetzungsfehler und -warnungen
- •Warnungen...
- •Übersetzungsfehler...
- •Index

Taskkonfiguration...
Tabelle zum Definieren der System-Ereignis-Tasks
Jedes Ereignis wird in einer Tabellenzeile dargestellt:
Name und Beschreibung sind aus der Zielsystembeschreibung übernommen, in der Spalte aufgerufene POU kann der Projektbaustein eingetragen werden, der bei Eintreten des Ereignisses abgearbeitet werden soll.
Dazu kann über die Eingabehilfe (<F2>) oder manuell entweder der Name eines bereits existierenden Bausteins eingegeben werden (z.B. "PLC_PRG" oder "PRG.ACT1"), oder aber ein Name für einen noch nicht vorhandenen Baustein. Damit dieser neu im Projekt angelegt wird, wird die Schaltfläche Baustein erzeugen gedrückt. Daraufhin erscheint der Baustein im Object Organizer und enthält im Deklarationsteil automatisch die Definitionen der für das Ereignis eventuell nötigen Übergabeparameter.
Diese unter Umständen erforderliche Parametrierung eines Ereignisses wird unterhalb der Zuordnungsliste als Baustein auch grafisch dargestellt, sobald der entsprechende Tabelleneintrag markiert ist.
Der Aufruf eines Bausteins durch das Ereignis wird nur erfolgen, wenn der Eintrag aktiviert ist, d.h. wenn das Kontrollkästchen in der ersten Spalte mit einem Haken versehen ist (). Das
Aktivieren bzw. Deaktivieren erfolgt durch einen Mausklick auf das Kontrollkästchen.
6.7.3Taskkonfiguration im Online Modus
Im Online Modus wird der Status einer Task im Konfigurationsbaum angegeben und das zeitliche Verhalten kann über eine grafische Darstellung verfolgt werden. Voraussetzung ist, dass die Bibliotheken SysTaskInfo.lib und SysLibTime.lib im Projekt eingebunden sind. Die Bibliotheksfunktionen werden intern zur Auswertung der Tasklaufzeiten verwendet.
Statusanzeige im Konfigurationsbaum:
Für jede Task wird im Onlinebetrieb in eckigen Klammern hinter dem Taskeintrag der aktuelle Status sowie die Anzahl der bereits durchlaufenen Abarbeitungszyklen angezeigt: Der Aktualisierungszyklus für diese Anzeige entspricht dem des sonstigen Monitorings. Die möglichen Zustände:
Idle |
nicht gelaufen seit dem letzten Update, gilt vor allem für Eventtasks |
Running |
mind. einmal gelaufen seit dem letzten Update |
Stop |
Gestoppt |
6-50 |
CoDeSys V2.3 |

6 - Die Ressourcen
Stop on BP Gestoppt, Breakpoint in dieser Task erreicht
Stop on Error Fehler, z.B. Division durch Null, Page Fault etc.
Stop Watchdog Zykluszeitüberschreitung
Der Taskeintrag wird im Falle 'Stop on Error' und 'Stop Watchdog' rot.
Darstellung des zeitlichen Verhaltens der Tasks
Die Auslastung wird für alle Tasks in Balkendiagrammen im rechten Fensterteil angezeigt, wenn der Eintrag 'Taskkonfiguration' im Konfigurationsbaum markiert ist.
Anzeige der Taskauslastung im Online Modus
Pro Task wird ein Balken dargestellt, dessen Gesamtlänge die Zykluszeit wiedergibt. Unterhalb des Balkens sowie durch entsprechende Markierungen im Balken werden folgende Messwerte von links nach rechts dargestellt:
Min: die minimal gemessene Laufzeit in µs
Akt: die zuletzt gemessene Laufzeit in µs
Max: die maximal gemessene Laufzeit in µs
Zyklus: Gesamtlänge des Zyklus in µs
Jitter: maximal gemessener Jitter in µs
Die Schaltfläche Zurücksetzen dient dem Rücksetzen der Werte von Min., Max. und Jitter auf 0.
Der Maßstab der Darstellung (Mikrosekunden pro Pixel) kann über eine Auswahlliste bei Skalierung [µs/Pixel] eingestellt werden.
Zusätzliche Online-Funktionen im Kontextmenü bzw. im Menü 'Extras':
Welche Task wird bearbeitet?
Für die Ausführung gelten folgende Regeln:
•Es wird die Task ausgeführt, deren Bedingung gilt, das heißt, wenn die bei Intervall angegebene Zeit abgelaufen ist, oder nach einer steigenden Flanke der bei Ereignis angegebenen Bedingungsvariable.
CoDeSys V2.3 |
6-51 |

Watchund Rezepturverwalter...
•Haben mehrere Tasks eine gültige Bedingung, dann wird die Task mit der höchsten Priorität ausgeführt.
•Haben mehrere Tasks eine gültige Bedingung und gleich hohe Priorität, dann wird die Task ausgeführt, die die längste Wartezeit hatte.
•Die Abarbeitung der Programmaufrufe pro Task im Online Modus erfolgt gemäß der Reihenfolge ihrer Anordnung im Taskeditor von oben nach unten.
'Extras' 'Debug Task festlegen'
Bei Zielsystemen mit "preemptive multitasking" kann mit diesem Befehl im Online Modus in der Taskkonfiguration eine Task festgelegt werden, in der das "Debuggen" stattfinden soll. Im Konfigurationsbaum erscheint dann hinter dem Taskeintrag der Text "[DEBUG]". Die DebuggingFunktionalitäten beziehen sich dann nur auf diese Task. d.h. das Programm stoppt bei einem Breakpoint nur, wenn das Programm von der eingestellten Task durchlaufen wird.
Die Festlegung der Debug Task wird im Projekt gespeichert und bei Einloggen/Download automatisch wieder gesetzt.
'Extras' 'Task aus-/einschalten'
Mit diesem Befehl kann diejenige Task, die gerade in der Taskkonfiguration markiert ist, ausoder wieder eingeschaltet werden. Eine ausgeschaltete Task wird in der Abarbeitung des Programms nicht berücksichtigt. Im Konfigurationsbaum wird sie in hellgrauer Schrift als inaktiv angezeigt.
'Extras' 'Aufrufhierarchie'
Wenn beim Debuggen an einem Breakpoint gestoppt wird, kann über diesen Befehl die Aufrufhierarchie des betreffenden Bausteins ermittelt werden. Dazu muss die Debug-Task im Konfigurationsbaum der Taskkonfiguration selektiert sein. Es öffnet sich das Fenster Aufrufhierarchie von Task <Taskname> mit der Anzeige des Bausteins, in dem der Breakpoint liegt (z.B. "prog_x (2)" für Zeile 2 von Baustein prog_x). Danach folgen in rücklaufender Reihenfolge die Einträge für die aufrufenden Bausteinpositionen. Wird die Schaltfläche Gehe zu betätigt, springt der Fokus zur markierten Position.
6.8 Watchund Rezepturverwalter...
6.8.1Überblick
Mit Hilfe des Watchund Rezepturverwalters können die Werte von ausgesuchten Variablen angezeigt werden. Der Watchund Rezepturverwalter ermöglicht auch die Variablen mit bestimmten Werten vorzubelegen und auf einmal an die Steuerung zu übertragen (‘Rezeptur schreiben’). Genauso können aktuelle Werte der Steuerung als Vorbelegung in den Watchund Rezepturverwalter eingelesen und abgespeichert werden (‘Rezeptur lesen’). Hilfreich sind diese Funktionen z.B. für die Einstellung und Erfassung von Regelungsparametern.
Alle erzeugten Watchlisten (‘Einfügen’ ‘Neue Watchliste’) werden in der linken Spalte des Watchund Rezepturverwalter angezeigt und können mit einem Mausklick oder den Pfeiltasten ausgewählt werden. Im rechten Bereich des Watchund Rezepturverwalters werden die jeweils zugehörigen Variablen angezeigt.
Um mit dem Watchund Rezepturverwalter zu arbeiten, öffnen Sie das Objekt Watchund Rezepturverwalter in der Registerkarte Ressourcen im Object OrganizerWatchund Rezepturverwalter im Offline Modus.
6-52 |
CoDeSys V2.3 |

6 - Die Ressourcen
6.8.2Watchund Rezepturverwalter im Offline Modus
Im Offline Modus kann man im Watchund Rezepturverwalter mehrere Watchlisten durch den Befehl
‘Einfügen’ ‘Neue Watchliste’ erzeugen.
Zum Eingeben der zu beobachtenden Variablen kann eine Liste aller Variablen mit der Eingabehilfe aufgerufen werden oder man gibt die Variablen mit der Tastatur (Intellisense-Funktion verwendbar) nach folgender Notation ein:
<Bausteinname>.<Variablenname>
Bei globalen Variablen fehlt der Bausteinname. Sie beginnen mit einem Punkt. Der Variablenname kann wiederum mehrstufig sein. Adressen können direkt eingegeben werden.
Beispiel für eine mehrstufige Variable:
PLC_PRG.Instanz1.Instanz2.Struktur.Komponentenname
Beispiel für eine globale Variable:
.global1.component1
Die Variablen der Watchliste können mit konstanten Werten vorbelegt werden, d.h. im Online Modus können diese Werte mit dem Befehl ‘Extras’ ‘Rezeptur schreiben’ in die Variablen geschrieben werden. Dazu muss der konstante Wert mit := der Variablen zugewiesen werden:
Beispiel:
PLC_PRG.TIMER:=50
Im in der Abbildung gezeigten Beispiel ist die Variable PLC_PRG.ZAEHLER mit dem Wert 6 vorbelegt.
Beachten Sie dabei für Variablen vom Typ Array, Struktur oder Funktionsblockinstanz: Sie müssen die einzelnen Elemente explizit eingeben, um sie mit Werten belegen zu können. Beispiel: Sie haben eine Struktur STRU mit den Komponenten a, b, c definiert, sowie eine Strukturvariable struvar in PLC_PRG deklariert. Um a, b, c mit Werten vorzubelegen, müssen Sie in der Watchliste folgendermassen eingegeben werden:
PLC_PRG.struvar.a:=<Wert>
PLC_PRG.struvar.b:=<Wert>
PLC_PRG.struvar.c:=<Wert>
Entsprechend muss für Elemente eines Arrays die Vorbelegung vorgenommen werden: Beispiel für eine Array-Variable arr_var vom Typ ARRAY[0...6]
PLC_PRG.arr_var[0]:=<Wert> PLC_PRG.arr_var[1]:=<Wert>
...
Wenn ein Funktionsblock fb die Variablen x,y enthält und eine Instanzvariable fb_inst vom Typ fb in PLC_PRG deklariert ist, können x und y folgendermassen vorbelegt werden:
CoDeSys V2.3 |
6-53 |

Watchund Rezepturverwalter...
PLC_PRG.fb_inst.x:=<Wert>
PLC_PRG.fb_inst.y:=<Wert>
'Einfügen' 'Neue Watchliste'
Mit diesem Befehl fügen Sie im Offline Modus in den Watchund Rezepturverwalter eine neue Watchliste ein. Geben Sie im erscheinenden Dialog den gewünschten Namen der Watchliste ein.
'Extras' 'Watchliste Umbenennen'
Mit diesem Befehl kann der Name einer Watchliste im Watchund Rezepturverwalter geändert werden.
Geben Sie im erscheinenden Dialog den neuen Namen der Watchliste ein.
'Extras' 'Watchliste speichern'
Mit diesem Befehl kann eine Watchliste abgespeichert werden. Es öffnet sich der Standarddialog zum Speichern einer Datei. Der Dateiname ist vorbelegt mit dem Namen der Watchliste und erhält den Zusatz "*.wtc".
Die gespeicherte Watchliste kann mit 'Extras' 'Watchliste laden' wieder geladen werden.
'Extras' 'Watchliste laden'
Mit diesem Befehl kann eine abgespeicherte Watchliste wieder geladen werden. Es öffnet sich der Standarddialog zum Öffnen einer Datei. Wählen Sie die gewünschte Datei mit dem Zusatz "*.wtc". Im erscheinenden Dialog können Sie der Watchliste einen neuen Namen geben. Vorbelegt ist der Dateiname ohne Zusatz.
Mit 'Extras' 'Watchliste speichern' kann eine Watchliste abgespeichert werden.
6.8.3Watchund Rezepturverwalter im Online Modus
Im Online Modus werden die Werte der eingegebenen Variablen angezeigt.
Watchund Rezepturverwalter im Online Modus
Strukturierte Werte (Arrays, Strukturen oder Instanzen von Funktionsblöcken) sind durch ein Pluszeichen vor dem Bezeichner gekennzeichnet. Mit Mausklick auf das Pluszeichen oder Drücken der <Eingabetaste>, wird die Variable aufbzw. zugeklappt.
Ist eine Funktionsblock-Variable in der Watchliste markiert, so wird das zugehörige Kontextmenü um die beiden Menüpunkte 'Zoom' und 'Instanz öffnen' erweitert.
Um neue Variablen einzugeben, kann die Anzeige durch den Befehl 'Extra' 'Monitoring aktiv' ausgeschaltet werden. Nachdem die Variablen eingegeben sind, können Sie mit demselben Befehl wieder das Anzeigen der Werte aktivieren.
Im Offline Modus können Variablen mit konstanten Werten vorbelegt werden (durch Eingabe von := <Wert> nach der Variablen). Im Online Modus können nun diese Werte mit dem Befehl 'Extras' 'Rezeptur schreiben' in die Variablen geschrieben werden.
6-54 |
CoDeSys V2.3 |