
- •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

10 - ANHANG
Anhang D CoDeSys Bibliotheken
10.16 Die Bibliothek Standard.lib
Standardbibliothek
Die Bibliothek 'standard.lib' steht Ihnen standardmäßig zur Verfügung. Sie enthält alle Funktionen und Funktionsbausteine, die von der IEC61131-3 als Standardbausteine für ein IEC-Programmiersystem gefordert werden. Der Unterschied zwischen einer Standardfunktion und einem Operator ist, dass der Operator implizit dem Programmiersystem bekannt ist, während die Standardbausteine als Bibliothek an das Projekt gebunden werden müssen (standard.lib).
Der Code zu diesen Bausteinen liegt als C-Bibliothek vor und ist Bestandteil von CoDeSys.
10.16.1String Funktionen...
Bitte beachten: String-Funktionen sind nicht "thread-safe" ! Bei der Verwendung von Tasks dürfen StringFunktionen nur in einer Task eingesetzt werden. Wird die gleiche Funktion in verschiedenen Tasks benützt, besteht die Gefahr des Überschreibens. Die erlaubte String-Länge beim Verwenden der Funktionen ist 1-255.
LEN
Die Funktion LEN gibt die Länge eines Strings aus.
Der Eingang STR ist vom Typ STRING, der Rückgabewert der Funktion vom Typ INT.
Beispiel in AWL:
LD 'SUSI'
LEN
ST VarINT1 (* Ergebnis ist 4 *)
Beispiel in FUP:
Beispiel in ST:
VarSTRING1 := LEN ('SUSI');
LEFT
Die Funktion LEFT liefert einen linken Anfangsstring eines Strings.
Der Eingang STR ist vom Typ STRING, SIZE vom Typ INT, der Rückgabewert der Funktion vom Typ STRING.
LEFT (STR, SIZE) bedeutet: Nehme die ersten SIZE Zeichen von links im String STR.
Beispiel in AWL:
LD 'SUSI'
LEFT 3
ST VarSTRING1 (* Ergebnis ist 'SUSI' *)
Beispiel in FUP:
CoDeSys V2.3 |
10-41 |

Die Bibliothek Standard.lib
Beispiel in ST:
VarSTRING1 := LEFT ('SUSI',3);
RIGHT
Die Funktion RIGHT liefert einen rechten Anfangsstring eines Strings.
Der Eingang STR ist vom Typ STRING, SIZE vom Typ INT, der Rückgabewert der Funktion vom Typ STRING.
RIGHT (STR, SIZE) bedeutet: Nehme die ersten SIZE Zeichen von rechts im String STR.
Beispiel in AWL:
LD |
'SUSI' |
RIGHT |
3 |
ST |
VarSTRING1 (* Ergebnis ist 'USI' *) |
Beispiel in FUP:
Beispiel in ST:
VarSTRING1 := RIGHT ('SUSI',3);
MID
Die Funktion MID liefert einen Teilstring eines Strings.
Der Eingang STR ist vom Typ STRING, LEN und POS vom Typ INT, der Rückgabewert der Funktion vom Typ STRING.
MID (STR, LEN, POS) bedeutet: Hole LEN Zeichen aus dem String STR, beginnend mit dem Zeichen an der Stelle POS.
Beispiel in AWL:
LD 'SUSI'
MID 2,2
ST VarSTRING1 (* Ergebnis ist 'US' *)
Beispiel in FUP:
Beispiel in ST:
VarSTRING1 := MID ('SUSI',2,2);
CONCAT
Die Funktion CONCAT liefert die Konkatenation (Aneinanderhängen) von zwei Strings. Die Eingänge STR1 und STR2 und der Rückgabewert der Funktion sind vom Typ STRING.
Beispiel in AWL:
LD 'SUSI'
CONCAT 'WILLI'
ST |
VarSTRING1 (* Ergebnis ist 'SUSIWILLI' *) |
10-42 |
CoDeSys V2.3 |

10 - ANHANG
Beispiel in FUP:
Beispiel in ST:
VarSTRING1 := CONCAT ('SUSI','WILLI');
INSERT
Die Funktion INSERT fügt einen String ab einer bestimmten Stelle in einen anderen ein.
Die Eingänge STR1 und STR2 sind vom Typ STRING, POS vom Typ INT, der Rückgabewert der Funktion vom Typ STRING.
INSERT(STR1, STR2, POS) bedeutet: Füge STR2 in STR1 nach der POS-ten Stelle ein.
Beispiel in AWL:
LD |
'SUSI' |
INSERT 'XY',2 |
|
ST |
VarSTRING1 (* Ergebnis ist 'SUXYSI' *) |
Beispiel in FUP:
Beispiel in ST:
VarSTRING1 := INSERT ('SUSI','XY',2);
DELETE
Die Funktion DELETE löscht ab einer bestimmten Stelle einen Teilstring aus einem String.
Der Eingang STR ist vom Typ STRING, LEN und POS vom Typ INT, der Rückgabewert der Funktion vom Typ STRING.
DELETE(STR, LEN, POS) bedeutet: Lösche LEN Zeichen aus STR, beginnend mit dem POS-ten.
Beispiel in AWL:
LD |
'SUXYSI' |
|
DELETE 2,3 |
|
|
ST |
Var1 |
(* Ergebnis ist 'SUSI' *) |
Beispiel in FUP:
Beispiel in ST:
Var1 := DELETE ('SUXYSI',2,3);
REPLACE
Die Funktion REPLACE ersetzt einen Teilstring eines Strings durch einen anderen String.
Die Eingänge STR1 und STR2 sind vom Typ STRING, LEN und POS vom Typ INT, der Rückgabewert der Funktion vom Typ STRING.
CoDeSys V2.3 |
10-43 |

Die Bibliothek Standard.lib
REPLACE(STR1, STR2, L, P) bedeutet: Ersetze L Zeichen aus STR1 durch STR2 beginnend mit dem P-ten Zeichen.
Beispiel in AWL:
LD |
'SUXYSI' |
REPLACE |
'K',2,2 |
ST |
VarSTRING1 (* Ergebnis ist 'SKYSI' *) |
Beispiel in FUP:
Beispiel in ST:
VarSTRING1 := REPLACE ('SUXYSI','K',2,2);
FIND
Die Funktion FIND sucht einen Teilstring in einem String.
Die Eingänge STR1 und STR2 sind vom Typ STRING, der Rückgabewert der Funktion vom Typ INT.
FIND(STR1, STR2) bedeutet: Finde die Position des ersten Zeichens des ersten Vorkommens von STR2 in STR1. Wenn STR2 in STR1 nicht vorkommt, dann gilt OUT := 0.
Beispiel in AWL:
LD |
'SUXYSI' |
FIND |
'XY' |
ST |
VarINT1 (* Ergebnis ist '3' *) |
Beispiel in FUP:
Beispiel in ST:
VarINT1 := FIND ('SUXYSI','XY');
10.16.2Bistabile Funktionsblöcke...
SR
Bistabilen Funktionsblock dominant setzen : Q1 = SR (SET1, RESET) bedeutet:
Q1 = (NOT RESET AND Q1) OR SET1
Die Eingänge SET1 und RESET und der Ausgang Q1 sind vom Typ BOOL. Deklarationsbeispiel:
SRInst : SR;
Beispiel in AWL:
CAL SRInst(SET1 := VarBOOL1, RESET := VarBOOL2)
LD SRInst.Q1
ST VarBOOL3
10-44 |
CoDeSys V2.3 |

10 - ANHANG
Beispiel in FUP:
Beispiel in ST:
SRInst(SET1:= VarBOOL1 , RESET:=VarBOOL2 );
VarBOOL3 := SRInst.Q1 ;
RS
Bistabilen Funktionsblock zurücksetzen : Q1 = RS (SET, RESET1) bedeutet:
Q1 = NOT RESET1 AND (Q1 OR SET)
Die Eingänge SET und RESET1 und der Ausgang Q1 sind vom Typ BOOL. Deklarationsbeispiel:
RSInst : RS ;
Beispiel in AWL:
CAL RSInst(SET:= VarBOOL1,RESET1:=VarBOOL2)
LD RSInst.Q1
ST VarBOOL3
Beispiel in FUP:
Beispiel in ST:
RSInst(SET:= VarBOOL1 , RESET1:=VarBOOL2 );
VarBOOL3 := RSInst.Q1 ;
SEMA
Ein Software-Semaphor (unterbrechbar).
BUSY = SEMA(CLAIM, RELEASE) bedeutet:
|
BUSY := X; |
|
|
|
|
|
|
|
|
|
|
IF CLAIM THEN X:=TRUE; |
|
|
|
|
|
|
|
||
|
ELSIF RELEASE THEN BUSY := FALSE; X:= FALSE; |
|
|
|
|
|
||||
|
END_IF |
|
|
|
|
|
|
|
|
|
X |
ist |
eine |
interne |
BOOL |
Variable, |
die |
mit |
FALSE |
initialisiert |
ist. |
Die Eingänge CLAIM und RELEASE und der Ausgang BUSY sind vom Typ BOOL.
Wenn SEMA aufgerufen wird und BUSY ist TRUE, dann bedeutet das, dass SEMA bereits vorher belegt wurde (SEMA wurde mit CLAIM = TRUE aufgerufen). Wenn BUSY FALSE ist, dann wurde SEMA noch nicht auf gerufen, oder es wurde freigegeben (Aufruf mit RELEASE = TRUE).
Deklarationsbeispiel:
SEMAInst : SEMA;
Beispiel in AWL:
CAL SEMAInst(CLAIM:=VarBOOL1,RELEASE:=VarBOOL2)
LD SEMAInst.BUSY
CoDeSys V2.3 |
10-45 |