Gültige Datentypen

Datentypen legen die Eigenschaften der Daten fest, z.B. für die Darstellung des Inhalts und des zulässigen Speicherbereichs. Die verschiedenen Typen sind in Datentypgruppen eingeteilt und nicht unbedingt für jede CPU der S7-Familie verwendbar. [1]


Binärzahlen

Bool

Ein Operand vom Datentyp BOOL stellt einen Bitwert dar und enthält nur einen der folgenden Werte:

  • TRUE
  • FALSE
Länge S7-300/400 S7-1200 S7-1500
1 Bit
Format Wertebereich Beispiele
Boolesch FALSE oder TRUE TRUE
BOOL#1
BOOL#TRUE
Ganzzahlen
ohne Vorzeichen
0 oder 1 1
Dualzahlen 2#0 oder 2#1 2#0
Oktalzahlen FALSE oder TRUE 8#1
Hexadezimalzahlen 16#0 oder 16#1 16#1

Byte

Ein Operand vom Datentyp BYTE ist eine Bitfolge aus 8 Bit.

Der Datentyp BYTE kann nicht auf größer oder kleiner verglichen werden. Er kann dezimal nur mit den gleichen Daten versorgt werden, die auch die Datentypen SINT und USINT verarbeiten können.

Länge S7-300/400 S7-1200 S7-1500
8 Bit
Format Wertebereich Beispiele
Ganzzahlen
ohne Vorzeichen
-128 bis 255 15, B#15
BYTE#15
Dualzahlen 2#0 bis
2#11111111
2#00001111
BYTE#2#00001111
B#2#00001111
Oktalzahlen 8#0 bis 8#377 8#17, BYTE#8#17
B#8#17
Hexadezimalzahlen B#16#0 bis
B#16#FF
16#0 bis 16#FF
16#0F
BYTE#16#0F
B#16#0F

Word

Ein Operand vom Datentyp WORD ist eine Bitfolge aus 16 Bit.

Der Datentyp WORD kann nicht auf größer oder kleiner verglichen werden. Er kann dezimal nur mit den gleichen Daten versorgt werden, die auch die Datentypen INT und UINT verarbeiten können.

Länge S7-300/400 S7-1200 S7-1500
16 Bit
Ganzzahlen
ohne Vorzeichen
-32768 bis 65535 61680
WORD#61680
W#61680
Dualzahlen 2#0 bis
2#1111111111111111
2#1111000011110000
WORD#2#1111000011110000
W#2#1111000011110000
Oktalzahlen 8#0 bis 8#177777 8#170360
WORD#8#170360
W#8#170360
Hexadezimalzahlen W#16#0 bis
W#16#FFFF
16#0 bis 16#FFFF
16#F0F0
WORD#16#F0F0
W#16#F0F0
BCD C#0 bis C#999 C#55
Dezimalfolge B#(0,0) bis
B#(255,255)
B#(127,200)


DWord

Ein Operand vom Datentyp DWORD ist eine Bitfolge aus 32 Bit.

Der Datentyp DWORD kann nicht auf größer oder kleiner verglichen werden. Er kann dezimal nur mit den gleichen Daten versorgt werden, die auch die Datentypen DINT und UDINT verarbeiten können.

Länge S7-300/400 S7-1200 S7-1500
32 Bit
Format Wertebereich Beispiele
Ganzzahlen
ohne Vorzeichen
-2147483648
bis
4294967295
15793935
DWORD#15793935
DW#15793935
Dualzahlen 2#0 bis
2#11111111111111111111111111111111
2#00000000111100001111111100001111
DWORD#2#00000000111100001111111100001111
DW#2#00000000111100001111111100001111
Oktalzahlen 8#0 bis
8#37777777777
8#74177417
DWORD#8#74177417
DW#8#74177417
Hexadezimalzahlen DW#16#00000000 bis
DW#16#FFFFFFFF
16#00000000
bis
16#FFFFFFFF
16#00F0FF0F
DWORD#16#00F0FF0F
DW#16#00F0FF0F
Dezimalfolge B#(0,0,0,0) bis
B#(255,255,255,255)
B#(127,200,
127,200)

LWord

Ein Operand vom Datentyp LWORD ist eine Bitfolge aus 64 Bit.

Der Datentyp LWORD kann nicht auf größer oder kleiner verglichen werden. Er kann dezimal nur mit den gleichen Daten versorgt werden, die auch die Datentypen LINT und ULINT verarbeiten können.

Länge S7-300/400 S7-1200 S7-1500
64 Bit
Format Wertebereich Beispiele
Ganzzahlen
ohne Vorzeichen
-9223372036854775808
bis
18446744073709551615
26123590360715
LWORD#26123590360715
LW#26123590360715
Dualzahlen 2#0 bis
2#1111111111111111111111111111111111111111111111111111111111111111
2#000000000000000000010111110000100101111010100101101111010001011
LWORD#2#000000000000000000010111110000100101111010100101101111010001011
LW#2#000000000000000000010111110000100101111010100101101111010001011
Oktalzahlen 8#0 bis
8#1777777777777777777777
8#13724557213
LWORD#8#13724557213
LW#8#13724557213
Hexadezimalzahlen LW#16#00000000 bis
LW#16#FFFFFFFFFFFFFFFF
16#00000000 bis
16#FFFFFFFFFFFFFFFF
16#000000005F52DE8B
LWORD#16#000000005F52DE8B
LW#16#000000005F52DE8B
Dezimalfolge B#(0,0,0,0,0,0,0,0) bis
B#(255,255,255,255,255,255,255,255)
B#(127,200,127,200,127,200,127,200)

Ganzzahlen

Sint

Ein Operand vom Datentyp SINT (Short INTeger) hat eine Länge von 8 Bit und besteht aus zwei Komponenten: einem Vorzeichen und einem Zahlenwert im Zweierkomplement. Die Signalzustände der Bits 0 bis 6 stehen für die Größe der Zahl. Der Signalzustand von Bit 7 stellt das Vorzeichen dar. Das Vorzeichen kann den Signalzustand „0“ für positiv oder „1“ für negativ annehmen.

Die Ganzzahl +42 als Dualzahl
Bit 7 4 3 0
 0   0   1   0   1   0   1   0   
Vorzeichen
Dezimalwerte 32 8 2  = 42
Länge S7-300/400 S7-1200 S7-1500
8 Bit
Format Wertebereich Beispiele
Ganzzahlen
mit Vorzeichen
-128 bis 127 +42
SINT#+42
Dualzahlen 2#0 bis
2#01111111
2#00101010
SINT#2#00101010
Oktalzahlen
(nur positiv)
8#0 bis
8#177
8#42
SINT#8#42
Hexadezimalzahlen
(nur positiv)
16#0 bis 16#7F 16#2A
SINT#16#2A

USint

Ein Operand vom Datentyp USINT (Unsigned Short INTeger) hat eine Länge von 8 Bit und und erhält Zahlenwerte ohne Vorzeichen.
Ein Operand vom Datentyp USINT belegt im Speicher 1 Byte.

Die Ganzzahl 156 als Dualzahl
Bit 7 4 3 0
 1   0   0   1   1   1   0   0   
Dezimalwerte  128 16 8 4 = 156
Länge S7-300/400 S7-1200 S7-1500
8 Bit
Format Wertebereich Beispiele
Ganzzahlen
ohne Vorzeichen
0 bis 255 156
USINT#156
Dualzahlen 2#0 bis
2#11111111
2#10011100
USINT#2#10011100
Oktalzahlen 8#0 bis
8#377
8#156
USINT#8#156
Hexadezimalzahlen 16#0 bis
16#FF
16#9C
USINT#16#9C


Int

Ein Operand vom Datentyp INT (INTeger) hat eine Länge von 16 Bit und besteht aus zwei Komponenten: einem Vorzeichen und einem Zahlenwert im Zweierkomplement. Die Signalzustände der Bits 0 bis 14 stehen für die Größe der Zahl. Der Signalzustand von Bit 15 stellt das Vorzeichen dar. Das Vorzeichen kann den Signalzustand „0“ für positiv oder „1“ für negativ annehmen. Ein Operand vom Datentyp INT belegt im Speicher 2 Byte.

Die Ganzzahl 2760 als Dualzahl
Bit 15 8 7 0
0 0 0 0 1 0 1 0 1 1 0 0 1 0 0 0
Vorzeichen
Dezimalwerte 512 64 8
= 2760 2048 128
Länge S7-300/400 S7-1200 S7-1500
16 Bit
Format Wertebereich Beispiele
Ganzzahlen
mit Vorzeichen
-32768 bis 32767 +2760
INT#+2760
Dualzahlen
(nur positiv)
2#0 bis
2#0111111111111111
2#0000101011001000
INT#2#0000101011001000
Oktalzahlen 8#0 bis 8#77777 8#5310
INT#8#5310
Hexadezimalzahlen
(nur positiv)
B#16#0 bis
16#7FFF
16#AC8
INT#16#AC8

UInt

Ein Operand vom Datentyp UINT (Unsigned INTeger) hat eine Länge von 16 Bit und enthält Zahlenwerte ohne Vorzeichen.
Ein Operand vom Datentyp UINT belegt im Speicher 2 Byte.

Die Ganzzahl 5421 als Dualzahl
Bit 15 8 7 0
0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1
Dezimalwerte 1024 32 4 1
= 5421 4096 256 8
Länge S7-300/400 S7-1200 S7-1500
16 Bit
Format Wertebereich Beispiele
Ganzzahlen
ohne Vorzeichen
0 bis 65535 65295
UINT#65295
Dualzahlen 2#0 bis
2#1111111111111111
2#1111111100001111
UINT#2#1111111100001111
Oktalzahlen 8#0 bis
8#177777
8#170360
UINT#8#177417
Hexadezimalzahlen 16#0 bis
16#FFFF
16#FF0F
UINT#16#FF0F


DInt

Ein Operand vom Datentyp DINT (Double INTeger) hat eine Länge von 32 Bit und besteht aus zwei Komponenten: einem Vorzeichen und einem Zahlenwert im Zweierkomplement. Die Signalzustände der Bits 0 bis 30 stehen für die Größe der Zahl. Der Signalzustand von Bit 31 stellt das Vorzeichen dar. Das Vorzeichen kann den Signalzustand „0“ für positiv oder „1“ für negativ annehmen. Ein Operand vom Datentyp DINT belegt im Speicher 4 Byte.

Bit 31 0
0 1 1
Vorzeichen
1073741824 1
Länge S7-300/400 S7-1200 S7-1500
32 Bit
Format Wertebereich Beispiele
Ganzzahlen
mit Vorzeichen
-2147483648
bis
+2147483647
125790
DINT#125790
L#275
Dualzahlen
(nur positiv)
2#0 bis
2#01111111111111111111111111111111
2#00000000000000011110101101011110
DINT#2#00000000000000011110101101011110
Oktalzahlen
(nur positiv)
8#0 bis
8#17777777777
8#365536
DINT#8#365536
Hexadezimalzahlen 16#00000000
bis
16#7FFFFFFF
16#0001EB5E
DINT#16#0001EB5E

UDInt

Ein Operand vom Datentyp UDINT (Unsigned Double INT) hat eine Länge von 32 Bit und enthält Zahlenwerte ohne Vorzeichen.
Ein Operand vom Datentyp UDINT belegt im Speicher 4 Byte.

Bit 31 0
1 1
2147483648 1
Länge S7-300/400 S7-1200 S7-1500
32 Bit
Format Wertebereich Beispiele
Ganzzahlen
ohne Vorzeichen
0 bis
4294967295
4042322160
UDINT#4042322160
Dualzahlen 2#0 bis
2#11111111111111111111111111111111
2#11110000111100001111000011110000
UDINT#2#11110000111100001111000011110000
Oktalzahlen 8#0 bis
8#377777777
77
8#36074170360
UDINT#8#36074170360
Hexadezimalzahlen 16#00000000
bis
16#FFFFFFFF
16#F0F0F0F0
UDINT#16#F0F0F0F0


LInt

Ein Operand vom Datentyp LINT (Long INTeger) hat eine Länge von 64 Bit und besteht aus zwei Komponenten: einem Vorzeichen und einem Zahlenwert im Zweierkomplement. Die Signalzustände der Bits 0 bis 62 stehen für die Größe der Zahl. Der Signalzustand von Bit 63 stellt das Vorzeichen dar. Das Vorzeichen kann den Signalzustand „0“ für positiv oder „1“ für negativ annehmen. Ein Operand vom Datentyp LINT belegt im Speicher 8 Byte.

Bit 63 0
0 1 1
Vorzeichen
4611686018427387904 1
Länge S7-300/400 S7-1200 S7-1500
64 Bit
Format Wertebereich
Ganzzahlen
mit Vorzeichen
-9223372036854775808
bis
+9223372036854775807

ULInt

Ein Operand vom Datentyp ULINT (Unsigned Long INT) hat eine Länge von 64 Bit und enthält Zahlenwerte ohne Vorzeichen.
Ein Operand vom Datentyp ULINT belegt im Speicher 8 Byte.

Bit 63 0
1 1
9223372036854775808 1
Länge S7-300/400 S7-1200 S7-1500
64 Bit
Format Wertebereich
Ganzzahlen
ohne Vorzeichen
0
bis
18446744073709551615

Die Angabe der Wertebereiche und Beispiele für die Dual-, Oktal- und Hexadezimalzahlen sei hier einmal wegen der vielen Einser und Nullen geschenkt. Das Prinzip ist gleich den anderen Ganzzahl-Operanden.

Gleitpunktzahlen

Real

Operanden vom Datentyp REAL haben eine Länge vom 32 Bit und werden zur Darstellung von Gleitpunktzahlen verwendet. Eine Gleitpunkzahl, auch Fließkommazahl genannt, ist die Darstellung einer Zahl in Exponentialschreibweise. Ein Operand vom Datentyp REAL besteht immer aus drei Komponenten:
  Vorzeichen: Das Vorzeichen wird durch den Signalzustand von Bit 31 bestimmt. Das Bit 31 kann die Werte „0“ (positiv) und „1“ (negativ) annehmen.
  8-Bit-Exponenten zur Basis 2: Der Exponent wird um eine Konstante (Basis, +127) erhöht, so dass er einen Wertebereich von 0 bis 255 aufweist.
  23-Bit-Mantisse: Nur der gebrochene Anteil der Mantisse wird dargestellt. Der ganzzahlige Anteil der Mantisse ist bei normalisierten Gleitpunktzahlen immer „1“ und wird nicht gespeichert.
Beispiel: Die Zahl 1230000 kann auch mit der Zahl 1,23 * 106 dargestellt werden. 1,23 ist die Mantisse, 10 die Basis und 6 der Exponent.
Der Datentyp REAL wird mit einer Genauigkeit von 7 Stellen nach dem Komma verarbeitet.

Bit 31 30 23 22 0
V e m
Vorzeichen Exponent e Mantisse m
(1 Bit) (8 Bit) (23 Bit)
Länge S7-300/400 S7-1200 S7-1500
32 Bit
Format Wertebereich Beispiele
Gleitpunktzahlen
nach IEEE754
-3.402823e+38
bis
-1.175 495e-38
±0
+1.175 495e-38
bis
+3.402823e+38
1.0e-5
REAL#1.0e-5
Gleitpunktzahlen 1.0
REAL#1.0

LReal

Operanden vom Datentyp LREAL haben eine Länge vom 64 Bit und werden zur Darstellung von Gleitpunktzahlen verwendet. Ein Operand vom Datentyp LREAL besteht immer aus drei Komponenten:
  Vorzeichen: Das Vorzeichen wird durch den Signalzustand von Bit 63 bestimmt. Das Bit 63 kann die Werte „0“ (positiv) und „1“ (negativ) annehmen.
  11-Bit-Exponenten zur Basis 2: Der Exponent wird um eine Konstante (Basis, +1023) erhöht, so dass er einen Wertebereich von 0 bis 2047 aufweist.
  52-Bit-Mantisse: Nur der gebrochene Anteil der Mantisse wird dargestellt. Der ganzzahlige Anteil der Mantisse ist bei normalisierten Gleitpunktzahlen immer „1“ und wird nicht gespeichert.
Der Datentyp LREAL wird mit einer Genauigkeit von 15 Stellen nach dem Komma verarbeitet.

Bit 63 62 52 51 0
V e m
Vorzeichen Exponent e Mantisse m
(1 Bit) (11 Bit) (52 Bit)
Länge S7-300/400 S7-1200 S7-1500
64 Bit
Format Wertebereich Beispiele
Gleitpunktzahlen
nach IEEE754
-1.7976931348623158e+308
bis
-2.2250738585072014e-308
±0
+2.2250738585072014e-308
bis
+1.7976931348623158e+308
1.0e-5
LREAL#1.0e-5
Gleitpunktzahlen 1.0
LREAL#1.0

Bei Gleitpunktzahlen werden nur die von der IEEE754 [2] Norm definierten Genauigkeiten gespeichert. Zusätzlich angegebene Dezimalstellen werden nach IEEE754 gerundet. Bei häufig geschachtelten arithmetischen Berechnungen kann sich die Anzahl der Dezimalstellen verringern. Werden mehr Dezimalstellen eingegeben als der Datentyp speichern kann, dann wird die Zahl auf den, der möglichen Genauigkeit in diesem Wertebereich, entsprechenden Wert gerundet.

Zeiten

S5Time

Der Datentyp S5TIME speichert die Zeitdauer im BCD-Format. Die Zeitdauer ist das Produkt aus einem Zeitwert im Bereich von 0 bis 999 und einer Zeitbasis. Die Zeitbasis gibt das Intervall an, in dem eine Zeit den Zeitwert um je eine Einheit vermindert, bis er „0“ erreicht. Über die Zeitbasis kann die Auflösung der Zeitwerte gesteuert werden.

Länge S7-300/400 S7-1200 S7-1500
16 Bit
Format Wertebereich Beispiele
S7-Zeit in Schritten
von 10 ms
(Standardwert)
S5T#0H_0M_0S_0MS
bis
S5T#2H_46M_30S_0MS
S5T#10s
S5TIME#10s
Codierung Zeitbasis
Zeitbasis Binärcode
Bit 13 Bit 12
10ms 0 0
100ms 0 1
1s 1 0
10s 1 1
Das Beispiel zeigt den Inhalt des Zeitoperanden bei einer Zeitbasis von 1s und einem Zeitwert von 143
15 Bit 8 7 Bit 0
x x 1 0 0 0 0 1 0 1 0 0 0 0 1 1
1s 1 4 3
Zeitbasis Zeitwert im BCD-Format
Werte die 2 h 46 m 30s überschreiten werden nicht akzeptiert.
Auflösung Bereich
0,01s 10ms bis 9s 990ms
0,1s 100ms bis 1m 39s 900ms
1s 1s bis 16m 39s
10s 10s bis 2h 46m 30s


Time

Der Inhalt eines Operanden vom Datentyp TIME wird als Millisekunden interpretiert. Die Darstellung enthält Angaben für Tage (d), Stunden (h), Minuten (m), Sekunden (s) und Millisekunden (ms).
Es ist nicht erforderlich, alle Zeiteinheiten anzugeben. So ist z. B. T#5h10s gültig. Wenn nur eine Einheit angegeben wird, darf der absolute Wert an Tagen, Stunden und Minuten die oberen oder unteren Grenzwerte nicht überschreiten. Wenn mehr als eine Zeiteinheit angegeben wird, darf der Wert die Einheit 24 Tage, 23 Stunden, 59 Minuten, 59 Sekunden oder 999 Millisekunden nicht überschreiten.

Länge S7-300/400 S7-1200 S7-1500
32 Bit
Format Wertebereich Beispiele
Zeitdauer mit
Vorzeichen
T#-24d20h31m23s648ms
bis
T#+24d20h31m23s647ms
T#10d20h30m20s630ms
TIME#10d20h30m20s630ms


LTime

Der Inhalt eines Operanden vom Datentyp LTIME wird als Nanosekunden interpretiert. Die Darstellung enthält Angaben für Tage (d), Stunden (h), Minuten (m), Sekunden (s), Millisekunden (ms), Mikrosekunden (us) und Nanosekunden (ns).
Es ist nicht erforderlich, alle Zeiteinheiten anzugeben. So ist z. B. LT#5h10s gültig. Wenn nur eine Einheit angegeben wird, darf der absolute Wert an Tagen, Stunden und Minuten die oberen oder unteren Grenzwerte nicht überschreiten. Wenn mehr als eine Zeiteinheit angegeben wird, darf der Wert die Einheit 106751 Tage, 23 Stunden, 59 Minuten, 59 Sekunden, 999 Millisekunden, 999 Mikrosekunden oder 999 Nanosekunden nicht überschreiten.

Länge S7-300/400 S7-1200 S7-1500
64 Bit
Format Wertebereich Beispiele
Zeitdauer mit
Vorzeichen
LT#-106751d23h47m16s854ms775us808ns
bis
LT#+106751d23h47m16s854ms775us807ns
LT#11350d20h25m14s830ms652us315ns
LTIME#11350d20h25m14s830ms652us315ns

Datum und Uhrzeit

Date

Der Datentyp DATE speichert ein Datum als vorzeichenlose Ganzzahl. Die Darstellung enthält das Jahr, den Monat und den Tag.
Im Hexadezimalformat entspricht der Inhalt des Operanden DATE der Anzahl der Tage seit dem 01.01.1990 (≙16#0000).

Länge S7-300/400 S7-1200 S7-1500
2 Byte
Format Wertebereich Beispiele
IEC-Datum
(Jahr-Monat-Tag)
D#1990-01-01
bis
D#2168-12-31
D#2009-12-31
DATE#2009-12-31
Hexadezimalzahlen 16#0000
bis
16#FF62
16#00F2


TOD (Time_Of_Day)

Der Datentyp TOD (TIME_OF_DAY) belegt ein Doppelwort und speichert die Anzahl der Millisekunden seit Tagesbeginn (0:00 Uhr) als vorzeichenlose Ganzzahl.

Länge S7-300/400 S7-1200 S7-1500
4 Byte
Format Wertebereich Beispiele
Tageszeit in
Stunden:
Minuten:
Sekunden
TOD#00:00:00.000
bis
TOD#23:59:59.999
TOD#10:20:30.400
TIME_OF_DAY#10:20:30.400

LTOD (LTime_Of_Day)

Der Datentyp LTOD (LTIME_OF_DAY) belegt zwei Doppelworte und speichert die Anzahl der Nanosekunden seit Tagesbeginn (0:00 Uhr) als vorzeichenlose Ganzzahl.

Länge S7-300/400 S7-1200 S7-1500
8 Byte
Format Wertebereich Beispiele
Tageszeit in
Stunden:
Minuten:
Sekunden.
Millisekunden.
Mikrosekunden.
Nanosekunden
LTOD#00:00:00.000000000
bis
LTOD#23:59:59.999999999
LTOD#10:20:30.400_365_215
LTIME_OF_DAY#10:20:30.400_365_215


DT (Date_And_Time)

Der Datentyp DT (DATE_AND_TIME) speichert Angaben zu Datum und Uhrzeit im BCD-Format.

* Festpunktzahl
Länge S7-300/400 S7-1200 S7-1500
8 Byte
Format Wertebereich Beispiele
Datum und
Uhrzeit
(Jahr-Monat-Tag-
Stunde:Minute:
Sekunde*)
Min.:
DT#1990-01-01-0:0:0
Max.:
DT#2089-12-31-23:59:59.999
DT#2008-10-25-8:12:34.567
DATE_AND_TIME#2008-10-25-08:12:34.567

Die Struktur des Datentyp DT:

1 Beide höchstwertigen Ziffern von Millisekunden
2 Die niederwertige Ziffer von Millisekunden
3 Most Significant Bit = Die vier höchsten Bits
4 Least Significant Bit = Die vier niedrigsten Bits
Byte Inhalt Wertebereich
0 Jahr 1990 bis 2089
1 Monat 0 bis 12
2 Tag 1 bis 31
3 Stunde 0 bis 23
4 Minute 0 bis 59
5 Sekunde 0 bis 59
6 Millisekunde 1 00 bis 99
7 (4MSB) 3 Millisekunde 2 0 bis 9
7 (4LSB) 4 Wochentag 1 bis 7
1=Sonntag


LDT (Date_And_LTime)

Der Datentyp LDT (DATE_AND_LTIME) speichert Angaben zu Datum und Uhrzeit in Nanosekunden seit dem 01.01.1970 0:0 (≙LDT#1970-01-01-0:0:0.000000000).

Länge S7-300/400 S7-1200 S7-1500
8 Byte
Format Wertebereich Beispiele
Datum und
Uhrzeit
(Jahr-Monat-Tag-
Stunde:Minute:
Sekunde)
Min.: LDT#1970-01-01-0:0:0.000000000,
16#0
Max.: LDT#2262-04-11-23:47:16.854775807,
16#7FFF_FFFF_FFFF_FFFF
LDT#2008-10-25-8:12:34.567


DTL (Date_Time_Long)

Ein Operand vom Datentyp DTL hat eine Länge von 12 Byte und speichert Angaben zu Datum und Uhrzeit in einer vordefinierten Struktur.

Länge S7-300/400 S7-1200 S7-1500
12 Byte
Format Wertebereich Beispiele
Datum und
Uhrzeit
(Jahr-Monat-Tag-
Stunde:Minute:
Sekunde.
Nanosekunde)
Min.:
DTL#1970-01-01-00:00:00.0
Max.:
DTL#2554-12-31-23:59:59.999999999
DTL#2008-12-16-20:30:20.250

Die Struktur des Datentyps DTL setzt sich aus mehreren Komponenten zusammen, die jeweils einen unterschiedlichen Datentyp und Wertebereich aufweisen können. Der Datentyp eines angegebenen Werts muss dabei zum Datentyp der jeweiligen Komponente passen.

Die Struktur des Datentyp DTL:

* Der Wochentag (Byte 4) wird bei der Werteeingabe nicht berücksichtigt.
Byte Inhalt Datentyp Wertebereich
0 Jahr UINT 1970 bis 2554
1
2 Monat USINT 1 bis 12
3 Tag USINT 1 bis 31
4 Wochentag* USINT 1 bis 7
1=Sonntag
5 Stunde USINT 0 bis 23
6 Minute USINT 0 bis 59
7 Sekunde USINT 0 bis 59
8 Nanosekunde UDINT 0 bis
999999999
9
10
11

Zeichenfolgen

CHAR

Ein Operand vom Datentyp CHAR (Character) hat eine Länge von 8 Bit und belegt ein Byte im Speicher. Der Datentyp CHAR speichert ein einziges Zeichen, das im ASCII-Format [3] abgelegt ist. Der ASCII-Zeichensatz (American Standard Code for Information Interchange) bildet alle Zeichen ab, die man z.B. von einer PC-Tastatur kennt.

Länge S7-300/400 S7-1200 S7-1500
8 Bit
Format Wertebereich Beispiele
ASCII-Zeichen ASCII-Zeichensatz 'A', CHAR#'A'

WCHAR

Ein Operand vom Datentyp WCHAR (Wide Character) hat eine Länge von 16 Bit und belegt zwei Byte im Speicher. Der Datentyp WCHAR speichert ein einziges Zeichen eines erweiterten Zeichensatzes UFT-16 (Universal Multiple-Octet Coded Character Set Transformation Format) [4] kodiert. Der gesamte Unicode-Zeichensatz wird jedoch nicht abgedeckt. Nicht darstellbare Zeichen werden mit einem Fluchtsymbol ($) sichtbar gemacht.

Länge S7-300/400 S7-1200 S7-1500
16 Bit
Format Wertebereich Beispiele
Unicode $0000 - $D7FF WCHAR#'A'


STRING

Ein Operand vom Datentyp STRING speichert mehrere Zeichen in einer Zeichenkette, die aus maximal 254 Zeichen bestehen kann. In einer Zeichenkette sind alle Zeichen des ASCII-Codes zugelassen. Die Angabe der Zeichen erfolgt dabei in einfachen Anführungszeichen.
Die Maximallänge der Zeichenkette kann bei der Deklaration eines Operanden mithilfe von eckigen Klammern nach dem Schlüsselwort STRING angegeben werden (z.B. STRING[4]). Wenn die Angabe der Maximallänge weggelassen wird, wird für den jeweiligen Operanden die Standardlänge von 254 Zeichen eingestellt.

* Ein Operand vom Datentyp STRING belegt im Speicher zwei Bytes mehr als die angegebene Maximallänge
Länge (Byte) S7-300/400 S7-1200 S7-1500
n + 2 *
Format Wertebereich Beispiele
ASCII-Zeichenkette einschließlich Sonderzeichen 0 bis 254 Zeichen 'Name',
STRING#'NAME'
Als Beispiel die Reihenfolge der Bytes bei Datentyp STRING[3] und Wert 'xy'
Byte 0 Byte 1 Byte 2 Byte 3 Byte 4
7 0 7 0 7 0 7 0 7 0
max. tatsächl. ASCII- ASCII-
Länge Länge Wert Wert
String String von x von y
3 ('xy'=2)

Wenn die tatsächliche Länge einer angegebenen Zeichenkette kürzer als die deklarierte Maximallänge ist, werden die Zeichen rechtsbündig in die Zeichenkette geschrieben, die restlichen Zeichenplätze bleiben undefiniert. Bei der Wertbearbeitung werden nur belegte Zeichenplätze berücksichtigt.


WSTRING

Ein Operand vom Datentyp WSTRING (Wide Character String) speichert mehrere Unicode-Zeichen in einer Zeichenkette. In der Zeichenkette sind alle vom jeweiligen Anzeigesystem unterstützten Zeichen zugelassen (z.B. auch chinesisch). Die Länge der Zeichenkette kann bei der Deklaration mithilfe von eckigen Klammern nach dem Schlüsselwort WSTRING angegeben werden (WSTRING[132]). Maximal sind 16382 Zeichen möglich. Ist keine Länge angegeben, dann wird die Länge automatisch auf 254 Zeichen einstellt.

* Ein Operand vom Datentyp WSTRING belegt im Speicher zwei Word mehr als die angegebene Maximallänge
Länge (Word) S7-300/400 S7-1200 S7-1500
n + 2 *
Format Wertebereich Beispiele
Unicode-Zeichenkette,
n gibt die Länge der Zeichenkette an.
Voreingestellter Wert: 0 bis 254 Zeichen
Max. möglicher Wert: 0 bis 16382
WSTRING#'Hallo Simatic'

Quellennachweis