7. Data Types and Addressing
7.1 Data Types
Data Types Summary
Each elementary data type has a defined length. The following table lists the elementary
data types.
Summary
Type and
Description
Size
in
Bits
Format
Options
Range and Number
Notation (lowest to
highest value)_
Example
BOOL(Bit) 1 Boolean text TRUE/FALSE TRUE
BYTE
(Byte)
8 Hexadecimal
Binary
B#16#0 to B#16#FF
2#0 to 2#1111_1111
L B#16#10
L byte#16#10
L2#1011_1010
WORD
(Word)
16 Binary
number
Hexadecimal
number
BCD
Decimal
number
unsigned
2#0 to
2#1111_1111_1111_1111
W#16#0 to W#16#FFFF
C#0 to C#999
B#(0.0) to B#(255.255)
L 2#0001_0000_0000_0000
L W#16#1000
L word#16#1000
L C#998
L B#(10,20)
L byte#(10,20)
DWORD
(Double
word)
32 Binary
number
Hexadecimal
2#0 to
2#1111_1111_1111_1111
2#1000_0001_0001_1000_
1011_1011_0111_1111
number
Decimal
number
unsigned
1111_1111_1111_1111
DW#16#0000_0000 to
DW#16#FFFF_FFFF
B#(0,0,0,0) to
B#(255,255,255,255)
L DW#16#00A2_1234
L dword#16#00A2_1234
L B#(1, 14, 100, 120)
L byte#(1,14,100,120)
INT
(Integer)
16 Decimal
number
signed
-32768 to 32767 L 1
DINT
(Integer, 32
bits)
32 Decimal
number
signed
L#-2147483648 to
L#2147483647
L L#1
REAL
(Floating-
point
number)
32 IEEE
Floating-
point
number
Upper limit:
3.402823e+38
Lower limit: 1.175 495e-
38
L 1.234567e+13
S5TIME
(SIMATIC
time)
16 S7 time in
steps of
10 ms
(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_6
48MS to
T#24D_20H_31M_23S_6
47MS
L T#0D_1H_1M_0S_0MS
L
TIME#0D_1H_1M_0S_0M
S
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_D
AY (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'
7.2 Addressing
Storage areas are Inputs, Outputs, Timers, Counters, Memory (Local Variables,
Global Variables) , Data Blocks Pointers.
- Inputs
I(x, y) ---------------------- x = Byte address, y = Bit address
Bytes 0, 1, 2, ..., 255 Bits 0, 1, 2, …, 7
IBx (Input Byte) ---------- Ex.: IB0 = I0.0, I0.1, …,I0.7
IWx (Input Word) -------- Ex.: IW0 = (IB0, IB1)
= (I0.0, I0.1, …,I0.7, I1.0, I1.1,…, I1.7)
IDx (Input DWord) ------ Ex.: ID0 = (IW0, IW2) = (IB0, IB1, IB2, IB3)
= (I0.0, I0.1,…,I0.7, I1.0, I1.1,…,I1.7, I2.0, I2.1, I2.7, I3.0, I3.1, I3.7)
___________________________________________
- Outputs
Q(x, y) ---------------------- x = Byte address, y = Bit address
Bytes 0, 1, 2, ..., 255 Bits 0, 1, 2, …, 7
QBx (Output Byte) ---------- Ex.: QB0 = Q0.0, Q0.1, …,Q0.7
QWx (Output Word) -------- Ex.: QW0 = (QB0, QB1)
= (Q0.0, Q0.1, …,Q0.7, Q1.0, Q1.1,…, Q1.7)
QDx (Output DWord) ------ Ex.: QD0 = (QW0, QW2) = (QB0, QB1, QB2, QB3)
=(Q0.0, Q0.1,…,Q0.7, Q1.0, Q1.1,…,Q1.7, Q2.0, Q2.1, Q2.7, Q3.0, Q3.1, Q3.7)
_____________________________________
- Memory (M = Markers or Global Memory, L = Local Memory)
M(x, y) ---------------------- x = Byte address, y = Bit address
Bytes 0, 1, 2, ..., 255 Bits 0, 1, 2, …, 7
MBx (Memory Byte) ---------- Ex.: MB0 = M0.0, M0.1, …,M0.7
MWx (Memory Word) -------- Ex.: MW0 = (MB0, MB1)
= (M0.0, M0.1, …,M0.7, M1.0, M1.1,…, M1.7)
MDx (Memory DWord) ----- Ex.: MD0 = (MW0, MW2)= (MB0, MB1, MB2, MB3)
=(M0.0, M0.1,…,M0.7, M1.0, M1.1,…,M1.7, M2.0, M2.1, M2.7, M3.0, M3.1, M3.7)
- Timers
T1, T2, T3, …, Tn (According to the available number of timers)
_____________________________________
- Counters
C1, C2, C3,…, Cn (According to the available number of counters)
_____________________________________
- Data Blocks

PLC data types and addressing

  • 1.
    7. Data Typesand Addressing 7.1 Data Types
  • 6.
    Data Types Summary Eachelementary data type has a defined length. The following table lists the elementary data types. Summary Type and Description Size in Bits Format Options Range and Number Notation (lowest to highest value)_ Example BOOL(Bit) 1 Boolean text TRUE/FALSE TRUE BYTE (Byte) 8 Hexadecimal Binary B#16#0 to B#16#FF 2#0 to 2#1111_1111 L B#16#10 L byte#16#10 L2#1011_1010 WORD (Word) 16 Binary number Hexadecimal number BCD Decimal number unsigned 2#0 to 2#1111_1111_1111_1111 W#16#0 to W#16#FFFF C#0 to C#999 B#(0.0) to B#(255.255) L 2#0001_0000_0000_0000 L W#16#1000 L word#16#1000 L C#998 L B#(10,20) L byte#(10,20) DWORD (Double word) 32 Binary number Hexadecimal 2#0 to 2#1111_1111_1111_1111 2#1000_0001_0001_1000_ 1011_1011_0111_1111
  • 7.
    number Decimal number unsigned 1111_1111_1111_1111 DW#16#0000_0000 to DW#16#FFFF_FFFF B#(0,0,0,0) to B#(255,255,255,255) LDW#16#00A2_1234 L dword#16#00A2_1234 L B#(1, 14, 100, 120) L byte#(1,14,100,120) INT (Integer) 16 Decimal number signed -32768 to 32767 L 1 DINT (Integer, 32 bits) 32 Decimal number signed L#-2147483648 to L#2147483647 L L#1 REAL (Floating- point number) 32 IEEE Floating- point number Upper limit: 3.402823e+38 Lower limit: 1.175 495e- 38 L 1.234567e+13 S5TIME (SIMATIC time) 16 S7 time in steps of 10 ms (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_6 48MS to T#24D_20H_31M_23S_6 47MS L T#0D_1H_1M_0S_0MS L TIME#0D_1H_1M_0S_0M S 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_D AY (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'
  • 8.
    7.2 Addressing Storage areasare Inputs, Outputs, Timers, Counters, Memory (Local Variables, Global Variables) , Data Blocks Pointers. - Inputs I(x, y) ---------------------- x = Byte address, y = Bit address Bytes 0, 1, 2, ..., 255 Bits 0, 1, 2, …, 7 IBx (Input Byte) ---------- Ex.: IB0 = I0.0, I0.1, …,I0.7 IWx (Input Word) -------- Ex.: IW0 = (IB0, IB1) = (I0.0, I0.1, …,I0.7, I1.0, I1.1,…, I1.7) IDx (Input DWord) ------ Ex.: ID0 = (IW0, IW2) = (IB0, IB1, IB2, IB3) = (I0.0, I0.1,…,I0.7, I1.0, I1.1,…,I1.7, I2.0, I2.1, I2.7, I3.0, I3.1, I3.7) ___________________________________________ - Outputs Q(x, y) ---------------------- x = Byte address, y = Bit address Bytes 0, 1, 2, ..., 255 Bits 0, 1, 2, …, 7 QBx (Output Byte) ---------- Ex.: QB0 = Q0.0, Q0.1, …,Q0.7 QWx (Output Word) -------- Ex.: QW0 = (QB0, QB1) = (Q0.0, Q0.1, …,Q0.7, Q1.0, Q1.1,…, Q1.7) QDx (Output DWord) ------ Ex.: QD0 = (QW0, QW2) = (QB0, QB1, QB2, QB3) =(Q0.0, Q0.1,…,Q0.7, Q1.0, Q1.1,…,Q1.7, Q2.0, Q2.1, Q2.7, Q3.0, Q3.1, Q3.7) _____________________________________ - Memory (M = Markers or Global Memory, L = Local Memory) M(x, y) ---------------------- x = Byte address, y = Bit address Bytes 0, 1, 2, ..., 255 Bits 0, 1, 2, …, 7 MBx (Memory Byte) ---------- Ex.: MB0 = M0.0, M0.1, …,M0.7 MWx (Memory Word) -------- Ex.: MW0 = (MB0, MB1) = (M0.0, M0.1, …,M0.7, M1.0, M1.1,…, M1.7) MDx (Memory DWord) ----- Ex.: MD0 = (MW0, MW2)= (MB0, MB1, MB2, MB3) =(M0.0, M0.1,…,M0.7, M1.0, M1.1,…,M1.7, M2.0, M2.1, M2.7, M3.0, M3.1, M3.7)
  • 9.
    - Timers T1, T2,T3, …, Tn (According to the available number of timers) _____________________________________ - Counters C1, C2, C3,…, Cn (According to the available number of counters) _____________________________________ - Data Blocks