PLCcheck

SCL Data Types Reference: BOOL, INT, DINT, REAL, STRING, ARRAY, STRUCT

Complete SCL data type reference for Siemens TIA Portal. Elementary types (BOOL, INT, DINT, REAL, STRING), complex types (ARRAY, STRUCT, UDT), value ranges, and memory sizes.

·7 min read
SCLdata typesBOOLINTDINTREALSTRINGARRAYSTRUCTUDTTIA Portal

Diesen Artikel auf Deutsch lesen

SCL Data Types Reference

Elementary Data Types

Data TypeSizeValue RangeExample
BOOL1 bitTRUE / FALSE#Start := TRUE;
BYTE8 bitB#16#00 to B#16#FF#Mask := B#16#0F;
WORD16 bitW#16#0000 to W#16#FFFF#Status := W#16#00FF;
DWORD32 bitDW#16#0000_0000 to DW#16#FFFF_FFFF#Raw := DW#16#0000_1234;
SINT8 bit-128 to +127#Small := SINT#42;
USINT8 bit0 to 255#Byte_Val := USINT#200;
INT16 bit-32,768 to +32,767#Counter := 100;
UINT16 bit0 to 65,535#Positive := UINT#50000;
DINT32 bit-2,147,483,648 to +2,147,483,647#BigCount := DINT#100000;
UDINT32 bit0 to 4,294,967,295#Total := UDINT#3000000000;
REAL32 bit±1.18×10⁻³⁸ to ±3.40×10³⁸ (IEEE 754)#Temp := 23.5;
LREAL64 bit±2.23×10⁻³⁰⁸ to ±1.79×10³⁰⁸#Precise := LREAL#3.14159265;
CHAR8 bit1 ASCII character#Letter := 'A';
WCHAR16 bit1 Unicode character#Wide := WCHAR#"Ä";

Note: SINT, USINT, UINT, UDINT, LREAL, WCHAR are available on S7-1200 and S7-1500 only (not on S7-300/400).

String Types

Data TypeSizeDescriptionExample
STRING[n]n+2 bytesASCII string, max 254 chars#Name : STRING[20] := 'Sensor_1';
WSTRING[n]2n+4 bytesUnicode string#Text : WSTRING[50] := "Prüfung";

STRING internals: A STRING[10] occupies 12 bytes in memory. The first byte stores the maximum length (10), the second byte stores the current length, followed by the character data. Strings are NOT null-terminated like C strings.

Time and Date Types

Data TypeSizeFormatExample
TIME32 bitT#value#Delay := T#5s;
S5TIME16 bitS5T#value (BCD, legacy)#OldTimer := S5T#10s;
DATE16 bitD#YYYY-MM-DD#Today := D#2026-03-22;
TIME_OF_DAY (TOD)32 bitTOD#HH:MM:SS.sss#Now := TOD#14:30:00;
DATE_AND_TIME (DT)64 bitDT#YYYY-MM-DD-HH:MM:SS#Timestamp := DT#2026-03-22-14:30:00;
LTIME64 bitLT#value (nanoseconds)#Precise := LT#1s500ms; (S7-1500 only)

Complex Data Types

ARRAY

Fixed-size collection of elements of the same type:

VAR
    #Temperatures : ARRAY[0..9] OF REAL;    // 10 REAL values
    #Names : ARRAY[1..5] OF STRING[20];     // 5 strings
    #Matrix : ARRAY[0..2, 0..2] OF INT;     // 3×3 matrix (up to 6 dimensions)
END_VAR

#Temperatures[0] := 23.5;
#Matrix[1, 2] := 42;

STRUCT

Groups different data types together:

VAR
    #Motor : STRUCT
        Running : BOOL;
        Speed : INT;
        Current : REAL;
        Name : STRING[20];
    END_STRUCT;
END_VAR

#Motor.Running := TRUE;
#Motor.Speed := 1500;

UDT (User-Defined Type / PLC Data Type)

Reusable type definition. Defined in "PLC data types" folder, then used in DBs and block interfaces:

// UDT definition (in PLC data types)
TYPE "Motor_Data"
    Running : BOOL;
    Speed : INT;
    Current : REAL;
END_TYPE

// Usage in a DB
VAR
    #Motor_1 : "Motor_Data";
    #Motor_2 : "Motor_Data";
END_VAR

Type Conversions

Common conversion functions:

FromToFunction
INTDINTINT_TO_DINT(x)
INTREALINT_TO_REAL(x)
DINTREALDINT_TO_REAL(x)
REALINTREAL_TO_INT(x) — rounds
REALDINTREAL_TO_DINT(x)

Part of the SCL Reference. Maintained by PLCcheck.ai.


Convert Your AWL Code to SCL

PLCcheck Pro analyzes your S5/S7 AWL code and generates SCL equivalents automatically. Upload your program and see the conversion side by side.

Upload code for AWL→SCL conversion → | AWL to SCL Guide →

Related Articles

Analyze your PLC code with AI

PLCcheck Pro explains, documents, optimizes, and migrates PLC code — automatically.

Try PLCcheck Pro →
← Back to Blog

Not affiliated with Siemens AG. S5, S7, STEP 5, STEP 7, and TIA Portal are trademarks of Siemens AG.