
- •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
MUX 30,40,50,60,70,80
ST Var1 (* Ergebnis ist 30 *)
Beispiel in ST:
Var1:=MUX(0,30,40,50,60,70,80); (* Ergebnis ist 30 *);
Hinweis: Zum Zweck der Laufzeitoptimierung wird nur der Ausdruck, der INK vorgeschaltet ist, berechnet ! In der Simulation dagegen werden alle Zweige berechnet.
10.5 Vergleichsoperatoren...
GT
Größer als.
Ein boolscher Operator mit dem Ergebnis TRUE, wenn der erste Operand größer als der zweite ist. Die Operanden können vom Typ BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME und STRING sein.
Beispiel in AWL:
LD 20
GT 30
ST Var1 (* Ergebnis ist FALSE *)
Beispiel in ST:
VAR1 := 20 > 30 > 40 > 50 > 60 > 70;
Beispiel in FUP:
LT
Kleiner als.
Ein boolscher Operator mit dem Ergebnis TRUE, wenn der erste Operand kleiner als der zweite ist. Die Operanden können vom Typ BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME und STRING sein.
Beispiel in AWL:
LD 20
LT 30
ST Var1 (* Ergebnis ist TRUE *)
Beispiel in ST:
VAR1 := 20 < 30;
Beispiel in FUP:
LE
Kleiner oder gleich.
Ein Boolscher Operator mit Ergebnis TRUE, wenn der erste Operand kleiner als der zweite Operand oder gleich groß wie der zweite Operand ist. Die Operanden können vom Typ BOOL, BYTE, WORD,
CoDeSys V2.3 |
10-11 |

Vergleichsoperatoren...
DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME und STRING sein.
Beispiel in AWL:
LD 20
LE 30
ST Var1 (* Ergebnis ist TRUE *)
Beispiel in ST:
VAR1 := 20 <= 30;
Beispiel in FUP:
GE
Größer oder gleich
Ein Boolscher Operator mit Ergebnis TRUE, wenn der erste Operand größer als der zweite Operand oder gleich groß wie der zweite Operand ist. Die Operanden können vom Typ BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME und STRING sein.
Beispiel in AWL:
LD 60
GE 40
ST Var1 (* Ergebnis ist TRUE *)
Beispiel in ST:
VAR1 := 60 >= 40;
Beispiel in FUP:
EQ
Gleichheit
Ein Boolscher Operator mit Ergebnis TRUE, wenn die Operanden gleich sind. Die Operanden können vom Typ BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME und STRING sein.
Beispiel in AWL:
LD 40
EQ 40
ST Var1 (* Ergebnis ist TRUE *)
Beispiel in ST:
VAR1 := 40 = 40;
Beispiel in FUP:
10-12 |
CoDeSys V2.3 |

10 - ANHANG
NE
Ungleichheit
Ein Boolscher Operator mit Ergebnis TRUE, wenn die Operanden ungleich sind. Die Operanden können vom Typ BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME und STRING sein.
Beispiel in AWL:
LD 40
NE 40
ST Var1 (* Ergebnis ist FALSE *)
Beispiel in ST:
VAR1 := 40 <> 40;
Beispiel in FUP:
10.6 Adressoperatoren...
Achtung: Wenn Online Change angewendet wird, können sich Inhalte von Adressen verschieben. Beachten Sie dies bei der Verwendung von Pointern auf Adressen.
ADR
Adressfunktion, nicht von der Norm IEC61131-3 vorgeschrieben.
ADR liefert die Adresse seines Arguments in einem DWORD. Diese Adresse kann an Herstellerfunktionen geschickt und dort wie ein Pointer behandelt werden oder innerhalb des Projektes an einen Pointer zugewiesen werden.
Beispiel in ST:
dwVar:=ADR(bVAR);
Beispiel in AWL:
LD bVar
ADR
ST dwVar man_fun1
BITADR
Adressfunktion, nicht von der Norm IEC61131-3 vorgeschrieben.
BITADR liefert den Bitoffset innerhalb des Segments in einem DWORD. Beachten Sie, dass der Offset davon abhängt, ob die Option Byteadressierung in den Zielsystemeinstellungen aktiviert ist oder nicht.
VAR
var1 AT %IX2.3:BOOL; bitoffset: DWORD;
END_VAR
Beispiel in ST:
bitoffset:=BITADR(var1); (* Ergebnis bei Byteadressierung=TRUE: 19, bei Byteadressierung=FALSE: 35 *)
Beispiel in AWL:
LD Var1
CoDeSys V2.3 |
10-13 |

Aufrufoperator...
BITADR
ST Var2
Inhaltsoperator
Die Dereferenzierung eines Pointers erfolgt über den Inhaltsoperator "^" nach dem Pointerbezeichner.
Beispiel in ST: pt:POINTER TO INT; var_int1:INT; var_int2:INT;
pt := ADR(var_int1); var_int2:=pt^;
10.7 Aufrufoperator...
CAL
Aufruf eines Funktionsblocks
Mit CAL ruft man in AWL die Instanz eines Funktionsblock auf. Nach dem Namen der Instanz eines Funktionsblocks folgt, in runde Klammern gesetzt, die Belegung der Eingabevariablen des Funktionsblocks.
Beispiel:
Aufruf der Instanz Inst eines Funktionsblocks mit Belegung der Eingabevariablen Par1, Par2 auf 0 bzw. TRUE.
CAL INST(PAR1 := 0, PAR2 := TRUE)
10.8 Typkonvertierungen...
Es ist nicht erlaubt, von einem "größeren" Typ auf einen "kleineren" implizit zu konvertieren (beispielsweise von INT nach BYTE oder von DINT nach WORD). Wenn man das tun will, muss man spezielle Typkonvertierungen anwenden. Grundsätzlich kann von jedem elementaren Typ zu jeden anderen elementaren Typ konvertiert werden.
Syntax:
<elem.Typ1>_TO_<elem.Typ2>
Beachten Sie bei ...TO_STRING Konvertierungen, dass der string "linksbündig" generiert wird. Wenn er zu kurz definiert ist, wird von rechts her abgeschnitten.
BOOL_TO-Konvertierungen
Konvertierung vom Typ BOOL zu einem anderen Typ:
Bei Zahlentypen ist das Ergebnis 1, wenn der Operand TRUE ist, und 0, wenn der Operand FALSE ist.
Beim Typ STRING ist das Ergebnis 'TRUE' bzw. 'FALSE'.
Beispiele in AWL:
LD |
TRUE |
(* Ergebnis ist 1 *) |
BOOL_TO_INT |
|
|
ST |
i |
|
LD TRUE |
(* Ergebnis ist 'TRUE' *) |
|
BOOL_TO_STRING |
|
|
ST str |
|
10-14 |
CoDeSys V2.3 |

|
10 - ANHANG |
LD TRUE |
(* Ergebnis ist T#1ms *) |
BOOL_TO_TIME |
|
ST t |
|
LD TRUE |
(* Ergebnis ist TOD#00:00:00.001 *) |
BOOL_TO_TOD |
|
ST |
|
LD FALSE |
(* Ergebnis ist D#1970-01-01 *) |
BOOL_TO_DATE |
|
ST dat |
|
LD TRUE |
(* Ergebnis ist DT#1970-01-01-00:00:01 *) |
BOOL_TO_DT |
|
ST dandt |
|
Beispiele in ST: |
|
i:=BOOL_TO_INT(TRUE); |
(* Ergebnis ist 1 *) |
str:=BOOL_TO_STRING(TRUE); |
(* Ergebnis ist 'TRUE' *) |
t:=BOOL_TO_TIME(TRUE); |
(* Ergebnis ist T#1ms *) |
tof:=BOOL_TO_TOD(TRUE); |
(* Ergebnis ist TOD#00:00:00.001 *) |
dat:=BOOL_TO_DATE(FALSE); |
(* Ergebnis ist D#1970-01-01 *) |
dandt:=BOOL_TO_DT(TRUE); |
(* Ergebnis ist DT#1970-01-01-00:00:01 *) |
Beispiele in FUP: |
|
|
(* Ergebnis ist 1 *) |
|
(* Ergebnis ist 'TRUE' *) |
|
(* Ergebnis ist T#1ms *) |
|
(* Ergebnis ist TOD#00:00:00.001 *) |
|
(* Ergebnis ist D#1970-01-01 *) |
|
(* Ergebnis ist DT#1970-01-01-00:00:01 *) |
TO_BOOL-Konvertierungen
Konvertierung von einem Typ zum Typ BOOL:
Das Ergebnis ist TRUE, wenn der Operand ungleich 0 ist. Das Ergebnis ist FALSE, wenn der Operand gleich 0 ist.
Beim Typ STRING ist das Ergebnis TRUE, wenn der Operand 'TRUE' ist, ansonsten ist das Ergebnis FALSE.
Beispiele in AWL:
CoDeSys V2.3 |
10-15 |

Typkonvertierungen...
LD 213 |
(* Ergebnis ist TRUE *) |
|
BYTE_TO_BOOL |
|
|
ST b |
|
|
LD 0 |
(* Ergebnis ist FALSE *) |
|
INT_TO_BOOL |
|
|
ST b |
|
|
LD T#5ms |
(* Ergebnis ist TRUE *) |
|
TIME_TO_BOOL |
|
|
ST b |
|
|
LD 'TRUE' |
(* Ergebnis ist TRUE *) |
|
STRING_TO_BOOL |
|
|
ST b |
|
|
Beispiele in ST: |
|
|
b := BYTE_TO_BOOL(2#11010101); |
(* Ergebnis ist TRUE *) |
|
b := INT_TO_BOOL(0); |
(* Ergebnis ist FALSE *) |
|
b := TIME_TO_BOOL(T#5ms); |
(* Ergebnis ist TRUE *) |
|
b := STRING_TO_BOOL('TRUE'); |
(* Ergebnis ist TRUE *) |
Beispiele in FUP:
(* Ergebnis ist TRUE *)
(* Ergebnis ist FALSE *)
(* Ergebnis ist TRUE *)
(* Ergebnis ist TRUE *)
Konvertierungen zwischen ganzzahligen Zahlentypen
Konvertierung von einem ganzzahligen Zahlentyp zu einem anderen Zahlentyp:
Bei der Typkonvertierung von größeren auf kleinere Typen können Informationen verloren gehen. Wenn die zu konvertierende Zahl die Bereichsgrenze überschreitet, dann werden die ersten Bytes der Zahl nicht berücksichtigt.
Beispiel in ST:
si := INT_TO_SINT(4223); (* Ergebnis ist 127 *)
Wenn sie die Integerzahl 4223 (16#107f in Hexadezimaldarstellung) in eine SINT-Variable speichern, dann enthält diese die Zahl 127 (16#7f in Hexadezimaldarstellung).
Beispiel in AWL:
LD 2
INT_TO_REAL
MUL
10-16 |
CoDeSys V2.3 |

10 - ANHANG
Beispiel in FUP:
REAL_TO-/ LREAL_TO-Konvertierungen
Konvertierung vom Typ REAL bzw. LREAL zu einem anderen Typ:
Es wird nach oben oder unten auf einen ganzzahligen Wert gerundet und in den entsprechenden Typen gewandelt. Ausgenommen davon sind die Typen STRING, BOOL, REAL und LREAL.
Bei der Typkonvertierung von größere auf kleinere Typen können Informationen verloren gehen.
Beachten Sie bei der Konvertierung in den Typ STRING, dass die Gesamtkommastellenzahl auf 16 begrenzt ist. Enthält die (L)REAL-Zahl mehr Stellen, wird die sechzehnte Stelle gerundet und so im string dargestellt. Wenn der STRING für die Zahl zu kurz definiert ist, wird von rechts her entsprechend abgeschnitten.
Beispiel in ST:
i := REAL_TO_INT(1.5); (* Ergebnis ist 2 *) j := REAL_TO_INT(1.4); (* Ergebnis ist 1 *) i := REAL_TO_INT(-1.5); (* Ergebnis ist -2 *) j := REAL_TO_INT(-1.4); (* Ergebnis ist -1 *)
Beispiel in AWL:
LD 2.7
REAL_TO_INT
GE %MW8
Beispiel in FUP:
TIME_TO- / TIME_OF_DAY-Konvertierungen
Konvertierung vom Typ TIME bzw. TIME_OF_DAY zu einem anderen Typ:
Intern wird die Zeit in einem DWORD in Millisekunden abgespeichert (bei TIME_OF_DAY seit 00:00 Uhr). Dieser Wert wird konvertiert.
Bei der Typkonvertierung von größere auf kleinere Typen können Informationen verloren gehen . Beim Typ STRING ist das Ergebnis die Zeitkonstante.
Beispiele in AWL: |
|
LD T#12ms |
(* Ergebnis ist 'T#12ms' *) |
TIME_TO_STRING |
|
ST str |
|
LD T#300000ms |
(* Ergebnis ist 300000 *) |
TIME_TO_DWORD |
|
ST dw |
|
LD TOD#00:00:00.012 (* Ergebnis ist 12 *)
TOD_TO_SINT
ST si
Beispiele in ST:
str :=TIME_TO_STRING(T#12ms);
dw:=TIME_TO_DWORD(T#5m);
CoDeSys V2.3 |
10-17 |

Typkonvertierungen...
si:=TOD_TO_SINT(TOD#00:00:00.012);
Beispiele in FUP:
DATE_TO- / DT_TO-Konvertierungen
Konvertierung vom Typ DATE bzw. DATE_AND_TIME zu einem anderen Typ:
Intern wird das Datum in einem DWORD in Sekunden seit dem 1.Januar 1970 abgespeichert. Dieser Wert wird konvertiert.
Bei der Typkonvertierung von größere auf kleinere Typen können Informationen verloren gehen. Beim Typ STRING ist das Ergebnis die Datumskonstante.
Beispiele in AWL: |
|
LD D#1970-01-01 |
(* Ergebnis ist FALSE *) |
DATE_TO_BOOL |
|
ST b |
|
LD D#1970-01-15 |
(* Ergebnis ist 29952 *) |
DATE_TO_INT |
|
ST i |
|
LD DT#1970-01-15-05:05:05 |
(* Ergebnis ist 129 *) |
DT_TO_BYTE |
|
ST byt |
|
LD DT#1998-02-13-14:20 |
(* Ergebnis ist |
DT_TO STRING |
'DT#1998-02-13-14:20' *) |
ST str |
|
Beispiele in ST:
b :=DATE_TO_BOOL(D#1970-01-01);
i :=DATE_TO_INT(D#1970-01-15);
byt :=DT_TO_BYTE(DT#1970-01-15-05:05:05);
str:=DT_TO_STRING(DT#1998-02-13-14:20);
Beispiele in FUP:
10-18 |
CoDeSys V2.3 |

10 - ANHANG
STRING_TO-Konvertierungen
Konvertierung vom Typ STRING zu einem anderen Typ:
Der Operand vom Typ STRING muss einen gültigen Wert des Zieltyps haben, sonst ist das Ergebnis 0.
Beispiele in AWL: |
|
LD 'TRUE' |
(* Ergebnis ist TRUE *) |
STRING_TO_BOOL |
|
ST b |
|
LD 'abc34' |
(* Ergebnis ist 0 *) |
STRING_TO_WORD |
|
ST w |
|
LD 't#127ms' |
(* Ergebnis ist T#127ms *) |
STRING_TO_TIME |
|
ST t |
|
Beispiele in ST:
b :=STRING_TO_BOOL('TRUE'); w :=STRING_TO_WORD('abc34');
t :=STRING_TO_TIME('T#127ms');
Beispiele in FUP:
TRUNC
Konvertierung vom Typ REAL zum Typ INT. Es wird nur der Betrag des ganzzahligen Anteils der Zahl genommen.
Bei der Typkonvertierung von größere auf kleinere Typen können Informationen verloren gehen.
Beispiel in AWL:
LD 2.7
TRUNC
GE %MW8
Beispiele in ST:
i:=TRUNC(1.9); (* Ergebnis ist 1 *)
CoDeSys V2.3 |
10-19 |