Simatic datatypes
TIA Portal datatypes
Binaries | ||||||
Datatyp | width (bits) | range of values | examples | S7-300/400 | S7-1200 | S7-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 | X | X | X |
BYTE (b) | 8 | B#16#00 .. B#16#FF -128 .. +127 or 0 .. +255 2#0 .. 2#11111111 | 15, BYTE#15, B#15 | X | X | X |
WORD (w) | 16 | W#16#0000 .. W#16#FFFF -32768 .. 65535 B#(0, 0) .. B#(255, 255) | 55555, WORD#55555, W#555555 | X | X | X |
DWORD (dw) | 32 | DW#16#0000 0000 .. DW#16#FFFF FFFF | DW#16#DEAD BEEF B#(111, 222, 255, 200) | X | X | X |
LWORD (lw) | 64 | LW#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 | ||||||
Datatyp | width (bits) | range of values | examples | S7-300/400 | S7-1200 | S7-1500 |
SINT (si) | 8 | -128 bis 127 (hex nur poz.) 16#0 bis 16#7F | +42, SINT#+42 16#1A, SINT#16#2A | - | X | X |
INT (i) | 16 | -32768 bis 32767 (hex nur poz.) 16#0 bis 16#7FFF | +1234, INT#+3221 16#1ABC | X | X | X |
DINT (di) | 32 | -2147483648 bis +2147483647 (hex nur poz.) 16#00000000 bis 16#7FFFFFFF | 123456, DINT#123456, 16#1ABC BEEF | X | X | X |
USINT (usi) | 8 | 0 bis 255 | 42, USINT#42 16#FF | - | X | X |
UINT (ui) | 16 | 0 bis 65535 | 12345, UINT#12345 16#BEEF | - | X | X |
UDINT (udi) | 32 | 0 bis 4294967295 | 1234567890, UDINT#1234567890 | - | X | X |
LINT (li) | 64 | -9223372036854775808 bis +9223372036854775807 | +1234567890123456789, LINT#+1234567890123456789 | - | - | X |
ULINT (uli) | 64 | 0 bis 18446744073709551615 | 123456789012345, ULINT#123456789012345 | - | - | X |
floating point numbers | ||||||
Datatyp | width (bits) | range of values | examples | S7-300/400 | S7-1200 | S7-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 | X | X | X |
LREAL (lr) | 64 | -1.7976931348623158e+308 bis -2.2250738585072014e-308 bis +2.2250738585072014e-308 bis +1.7976931348623158e+308 | 0.0, LREAL#0.0 | - | X | X |
Times | ||||||
Datatyp | width (bits) | range of values | examples | S7-300/400 | S7-1200 | S7-1500 |
S5TIME (s5t) →details | 16 | S5T#0H_0M_0S_0MS bis S5T#2H_46M_30S_0MS | S5T#10s, S5TIME#10s | X | - | X |
TIME (t) | 32 | T#-24d20h31m23s648ms bis T#+24d20h31m23s647ms | T#13d14h15m16s630ms, TIME#1d2h3m4s5ms | X | X | X |
LTIME (lt) | 64 | LT#-106751d23h47m16s854ms775us808ns bis LT#+106751d23h47m16s854ms775us807ns | LT#1000d10h15m24s130ms152us15ns, LTIME#200d2h2m1s8ms652us315ns | - | - | X |
Timer operations: IEC timers, TON (Generate on-delay), TOF (Generate off-delay), TP (Generate pulse), TONR (Time accumulator) | ||||||
Counters | ||||||
Datatyp | width (bits) | range of values | examples | S7-300/400 | S7-1200 | S7-1500 |
CHAR © | 8 | ASCII-Zeichensatz | 'A', CHAR#'A' | X | X | X |
WCHAR (wc) | 16 | Unicode-Zeichensatz | WCHAR#'A' | - | X | X |
STRING (s) →details | n+2 (Byte) | 0 bis 254 Zeichen (n) | 'Name', STRING#'OB121' | X | X | X |
WSTRING (ws) | n+2 (Word) | 0 bis 16382 Zeichen (n) | WSTRING#'OB121' | - | X | X |
Counter operations: CTU (count up), CTD (count down), CTUD (count up and down) | ||||||
Date & time | ||||||
Datatyp | width (bits) | range of values | examples | S7-300/400 | S7-1200 | S7-1500 |
DATE (d) | 16 | D#1990-01-01 bis D#2168-12-31 | D#2020-08-14, DATE#2020-08-14 | X | X | X |
TOD (tod) (TIME_OF_DAY) | 32 | TOD#00:00:00.000 bis TOD#23:59:59.999 | TOD#11:22:33.444, TIME_OF_DAY#11:22:33.444 | X | X | X |
LTOD (ltod) (LTIME_OF_DAY) | 64 | LTOD#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) | 64 | Min.: 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) | 64 | 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#2020-08-14-1:2:3.4 | - | - | X |
DTL (dtl) | 96 | Min.: 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 | - | X | X |
Pointers | ||||||
Datatyp | width (bits) | range of values | examples | S7-300/400 | S7-1200 | S7-1500 |
POINTER (p) | 48 | Symbolisch: „DB”.„Tag” Absolut: P#10.0 P#DB4.DBX3.2 | X | - | X | |
ANY (any) | 80 | Symbolisch: „DB”.StructVariable.ErsteKomponente Absolut: P#DB11.DBX12.0 INT 3 P#M20.0 BYTE 10 | X | - | X | |
VARIANT (var) | 0 | Symbolisch: „Daten_TIA_Portal”. StructVariable.ErsteKomponente Absolut: %MW10 P#DB10.DBX10.0 INT 12 | - | X | X |
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) | 1 | Boolean text | TRUE/FALSE | TRUE |
BYTE (Byte) | 8 | Hexadecimal number | B#16#0 to B#16#FF | L B#16#10 L byte#16#10 |
WORD (Word) | 16 | Binary number | 2#0 to 2#1111_1111_1111_1111 | L 2#0001_0000_0000_0000 |
Hexadecimal number | W#16#0 to W#16#FFFF | L W#16#1000 L word#16#1000 | ||
BCD | C#0 to C#999 | L C#998 | ||
Decimal number unsigned | B#(0,0) to B#(255,255) | L B#(10,20) L byte#(10,20) | ||
DWORD (Double word) | 32 | Binary number | 2#0 to 2#1111_1111_1111_1111_ 1111_1111_1111_1111 | L 2#1000_0001_0001_1000_ 1011_1011_0111_1111 |
Hexadecimal number | W#16#0000_0000 to W#16#FFFF_FFFF | L DW#16#00A2_1234 L dword#16#00A2_1234 | ||
Decimal number unsigned | B#(0,0,0,0) to B#(255,255,255,255) | L B#(1, 14, 100, 120) L byte#(1,14,100,120) | ||
INT (Integer) | 16 | Decimal number signed | -32768 to 32767 | L 101 |
DINT (Double integer) | 32 | Decimal number signed | L#-2147483648 to L#2147483647 | L L#101 |
REAL (Floating-point number) | 32 | IEEE Floating-point number | Upper limit +/-3.402823e+38 Lower limit +/-1.175495e-38 | L 1.234567e+13 |
S5TIME (SIMATIC time) | 16 | S7 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) | 32 | IEC time in steps of 1 ms, integer signed | T#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) | 16 | IEC date in steps of 1 day | D#1990-1-1 to D#2168-12-31 | L D#1996-3-15 L DATE#1996-3-15 |
TIME _OF_DAY (Time) | 32 | Time in steps of 1 ms | TOD#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) | 8 | ASCII characters | A', 'B' etc. | L 'E' |
Details
String
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”,..
S5TIME
- 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