de:s7:elem_datatypes

Simatic datatypes

TIA Portal datatypes

Binaries
Datatypwidth (bits)range of valuesexamplesS7-300/400S7-1200S7-1500
BOOL (x)
conversion
1
(S7-1500 optimized
1 Byte)
FALSE or TRUE
BOOL#0 or BOOL#1
BOOL#FALSE oder BOOL#TRUE
TRUE
BOOL#1
BOOL#TRUE
XXX
BYTE (b)8B#16#00 .. B#16#FF
-128 .. +127 or 0 .. +255
2#0 .. 2#11111111
15,
BYTE#15,
B#15
XXX
WORD (w)16W#16#0000 .. W#16#FFFF
-32768 .. 65535
B#(0, 0) .. B#(255, 255)
55555,
WORD#55555,
W#555555
XXX
DWORD (dw)32DW#16#0000 0000 .. DW#16#FFFF FFFFDW#16#DEAD BEEF
B#(111, 222, 255, 200)
XXX
LWORD (lw)64LW#16#0000 0000 0000 0000 ..
LW#16#FFFF FFFF FFFF FFFF
-9223372036854775808 ..
18446744073709551615
LW#16#DEAD BEEF DEAD BEEF
B#(111, 222, 255, 200, 111, 222, 255, 200)
--X
Integers
Datatypwidth (bits)range of valuesexamplesS7-300/400S7-1200S7-1500
SINT (si)8-128 bis 127
(hex nur poz.) 16#0 bis 16#7F
+42, SINT#+42
16#1A, SINT#16#2A
-XX
INT (i)16-32768 bis 32767
(hex nur poz.) 16#0 bis 16#7FFF
+1234, INT#+3221
16#1ABC
XXX
DINT (di)32-2147483648 bis +2147483647
(hex nur poz.)
16#00000000 bis 16#7FFFFFFF
123456, DINT#123456,
16#1ABC BEEF
XXX
USINT (usi)80 bis 25542, USINT#42
16#FF
-XX
UINT (ui)160 bis 6553512345, UINT#12345
16#BEEF
-XX
UDINT (udi)320 bis 42949672951234567890, UDINT#1234567890 -XX
LINT (li)64-9223372036854775808 bis +9223372036854775807+1234567890123456789, LINT#+1234567890123456789--X
ULINT (uli)640 bis 18446744073709551615123456789012345, ULINT#123456789012345--X
floating point numbers
Datatypwidth (bits)range of valuesexamplesS7-300/400S7-1200S7-1500
REAL ( r)32-3.402823e+38 bis -1.175 495e-38
bis
+1.175 495e-38 bis +3.402823e+38
0.0, REAL#0.0
1.0e-13, REAL#1.0e-13
XXX
LREAL (lr)64-1.7976931348623158e+308 bis -2.2250738585072014e-308
bis
+2.2250738585072014e-308 bis +1.7976931348623158e+308
0.0, LREAL#0.0-XX
Times
Datatypwidth (bits)range of valuesexamplesS7-300/400S7-1200S7-1500
S5TIME (s5t)
→details
16S5T#0H_0M_0S_0MS bis S5T#2H_46M_30S_0MSS5T#10s, S5TIME#10sX-X
TIME (t)32T#-24d20h31m23s648ms bis T#+24d20h31m23s647msT#13d14h15m16s630ms, TIME#1d2h3m4s5msXXX
LTIME (lt)64LT#-106751d23h47m16s854ms775us808ns bis LT#+106751d23h47m16s854ms775us807nsLT#1000d10h15m24s130ms152us15ns, LTIME#200d2h2m1s8ms652us315ns--X
Timer operations: IEC timers, TON (Generate on-delay), TOF (Generate off-delay), TP (Generate pulse), TONR (Time accumulator)
Counters
Datatypwidth (bits)range of valuesexamplesS7-300/400S7-1200S7-1500
CHAR ©8ASCII-Zeichensatz'A', CHAR#'A'XXX
WCHAR (wc)16Unicode-ZeichensatzWCHAR#'A'-XX
STRING (s)
→details
n+2 (Byte)0 bis 254 Zeichen (n)'Name', STRING#'OB121'XXX
WSTRING (ws)n+2 (Word)0 bis 16382 Zeichen (n)WSTRING#'OB121'-XX
Counter operations: CTU (count up), CTD (count down), CTUD (count up and down)
Date & time
Datatypwidth (bits)range of valuesexamplesS7-300/400S7-1200S7-1500
DATE (d)16D#1990-01-01 bis D#2168-12-31D#2020-08-14, DATE#2020-08-14XXX
TOD (tod)
(TIME_OF_DAY)
32TOD#00:00:00.000 bis TOD#23:59:59.999TOD#11:22:33.444,
TIME_OF_DAY#11:22:33.444
XXX
LTOD (ltod)
(LTIME_OF_DAY)
64LTOD#00:00:00.000000000 bis
LTOD#23:59:59.999999999
LTOD#11:22:33.444_555_111,
LTIME_OF_DAY#11:22:33.444_555_111
--X
DT (dt)
(DATE_AND_TIME)
64Min.: DT#1990-01-01-0:0:0
Max.: DT#2089-12-31-23:59:59.999
DT#2020-08-14-2:44:33.111,
DATE_AND_TIME#2020-08-14-11:22:33.444
X-X
LDT (ldt)
(L_DATE_AND_TIME)
64Min.: 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#2020-08-14-1:2:3.4--X
DTL (dtl)96Min.: DTL#1970-01-01-00:00:00.0
Max.: DTL#2554-12-31-23:59:59.999999999
DTL#2020-08-14-10:12:13.23-XX
Pointers
Datatypwidth (bits)range of valuesexamplesS7-300/400S7-1200S7-1500
POINTER (p)48Symbolisch: DB.Tag
Absolut:
P#10.0
P#DB4.DBX3.2
X-X
ANY (any)80Symbolisch:
DB.StructVariable.ErsteKomponente
Absolut: P#DB11.DBX12.0 INT 3
P#M20.0 BYTE 10
X-X
VARIANT (var)0Symbolisch:
Daten_TIA_Portal.
StructVariable.ErsteKomponente
Absolut: %MW10
P#DB10.DBX10.0 INT 12
-XX

Elementare Datentypen Simatic classic

Typ und Beschreibung Größe in Bits Formatoptionen Bereichs- und Nummernnotation
(niedrigster bis höchster Wert)
Beispiel in STL
BOOL (Bit) 1Boolean text TRUE/FALSE TRUE
BYTE (Byte) 8Hexadecimal numberB#16#0 to B#16#FF L B#16#10
L byte#16#10
WORD (Word) 16Binary number2#0 to 2#1111_1111_1111_1111L 2#0001_0000_0000_0000
Hexadecimal numberW#16#0 to W#16#FFFFL W#16#1000
L word#16#1000
BCDC#0 to C#999L C#998
Decimal number unsignedB#(0,0) to B#(255,255)L B#(10,20)
L byte#(10,20)
DWORD (Double word) 32Binary number2#0 to 2#1111_1111_1111_1111_
1111_1111_1111_1111
L 2#1000_0001_0001_1000_
1011_1011_0111_1111
Hexadecimal numberW#16#0000_0000 to W#16#FFFF_FFFFL DW#16#00A2_1234
L dword#16#00A2_1234
Decimal number unsignedB#(0,0,0,0) to B#(255,255,255,255)L B#(1, 14, 100, 120)
L byte#(1,14,100,120)
INT (Integer) 16Decimal number signed-32768 to 32767L 101
DINT (Double integer) 32Decimal number signedL#-2147483648 to L#2147483647L L#101
REAL (Floating-point number) 32IEEE Floating-point numberUpper limit +/-3.402823e+38
Lower limit +/-1.175495e-38
L 1.234567e+13
S5TIME (SIMATIC time) 16S7 time in steps of 10ms (default)S5T#0H_0M_0S_10MS to
S5T#2H_46M_30S_0MS and
S5T#0H_0M_0S_0MS
L S5T#0H_1M_0S_0MS
L S5TIME#0H_1H_1M_0S_0MS
TIME (IEC time) 32IEC time in steps of 1 ms, integer signedT#24D_20H_31M_23S_648MS
to
T#24D_20H_31M_23S_647MS
L T#0D_1H_1M_0S_0MS
L TIME#0D_1H_1M_0S_0MS
DATE (IEC date) 16IEC date in steps of 1 dayD#1990-1-1 to
D#2168-12-31
L D#1996-3-15
L DATE#1996-3-15
TIME _OF_DAY (Time) 32Time in steps of 1 msTOD#0:0:0.0 to
TOD#23:59:59.999
L TOD#1:10:3.3
L TIME_OF_DAY#1:10:3.3
CHAR (Character) 8ASCII charactersA', 'B' etc.L 'E'

Details

Zeichenfolgentypen in S7 werden nicht wie Zeichenfolgen im C-Stil mit NULL terminated. Sie haben stattdessen 2 versteckte Zeichen, die den Zeichenfolgendaten vorangehen. Das erste versteckte Zeichen ist die maximale Größe der Zeichenfolge, die im obigen Beispiel 'n' ist, und das zweite ausgeblendete Zeichen ist die tatsächliche Länge der Zeichenfolge (d. H. Die Anzahl der gespeicherten Zeichen).

Die String-Definition MyStr: STRING [10]: = abcdef würde also die folgende ASCII-Codes enthalten:

10, 06, 97, 98, 99, 100, 101, 102

10: maximale (deklarierte) Länge der Zeichenfolge
06: die aktuelle Länge der Zeichenfolge
97, 98: a, b,..

  • Unterstriche in Uhrzeit und Datum sind optional
  • Es müssen nicht alle Zeiteinheiten angegeben werden (zum Beispiel: T # 5h10s ist gültig)
  • Maximaler Zeitwert = 9.990 Sekunden oder 2H_46M_30S

"S5TIME" Format

Time baseBinary Code
10 ms00
100 ms01
1 s10
10 s11
  • de/s7/elem_datatypes.txt
  • 2022/04/21 15:01
  • ()