PLC Sim Lab
PLC basics

PLC addressing explained

Every input terminal, output terminal and internal bit in a PLC has an address. The idea is the same in every brand, but the format is not: Siemens counts in bytes and bits, Mitsubishi in octal, TOYOPUC in hexadecimal, and modern Allen-Bradley uses tag names.

3 min read · Updated 2026-10-02

What an address is

An address tells the program which signal a contact or coil refers to. A push button wired to the first input terminal might be I0.0 on Siemens, X0 on Mitsubishi or X000 on TOYOPUC. When you program a normally open contact with that address, the contact closes when the button is pressed.

Addresses fall into a few areas in every PLC:

Comparison table

AreaSiemens S7Mitsubishi FXAllen-Bradley (SLC/MicroLogix)TOYOPUC
InputI0.0X0I:0/0X000
OutputQ0.0Y0O:0/0Y000
Internal bitM0.0M0B3:0/0M000
TimerT0 / IEC timerT0T4:0T000
CounterC0 / IEC counterC0C5:0C000
Numberingbyte.bit (bits 0–7)octal (X0–X7, X10…)word/bit (bits 0–15)hexadecimal (X000–X00F…)

Siemens: byte.bit

Siemens groups signals into bytes of 8 bits. I0.0 is byte 0, bit 0. After I0.7 comes I1.0, not I0.8. Outputs are Q (A in the German mnemonics, from Ausgang), memory bits are M, and a whole byte or word can be read as IB0, IW0 or MW10. In TIA Portal you usually give each address a tag name such as "Start_PB".

Mitsubishi: octal numbering

Mitsubishi FX and many MELSEC PLCs number inputs and outputs in octal: X0–X7, then X10–X17. There is no X8 or X9. Internal relays M, timers T, counters C and data registers D are decimal. Special relays start at M8000 on FX (M8000 = always ON while running, M8002 = first scan pulse). The iQ-R and Q series use hexadecimal X/Y numbers instead.

Allen-Bradley: file addresses and tags

Older SLC 500 and MicroLogix PLCs use file-based addresses: I:0/0 is input slot 0, bit 0; O:0/0 the first output; B3:0/0 a bit in binary file 3; T4:0 a timer in file 4 with .DN, .TT and .EN bits. ControlLogix and CompactLogix use tags: the hardware address looks like Local:1:I.Data.0 and you alias it to a readable tag name such as Start_PB.

TOYOPUC: hexadecimal

JTEKT TOYOPUC numbers bits in hexadecimal: X000–X00F, then X010. Besides X, Y, M, T and C it has K (keep relays), L (link relays), V (special relays such as the always-ON and clock bits) and P (edge relays used by rise/fall differential instructions).

Remote I/O addresses

When you add remote I/O stations over a network, their points get addresses that continue after the PLC's own I/O. On a TOYOPUC with X000–X007 on the CPU, the first 8-point station might be X008–X00F, the next X010–X017. On Siemens the station is assigned its own byte, for example I2.0–I2.7. Always check the I/O map in the configuration software.

Tips

In the PLC Sim Lab Playground you can switch the brand and watch every address in your program change format automatically.

Watch it in the video tutorial

Starts at 1:25: the PLC terminals: supply, inputs I0.0-I0.7 and outputs Q0.0-Q0.7. Open on YouTube →

Try it yourself. Wire sensors, contactors and a PLC, write ladder logic and press RUN in the free PLC Sim Lab Playground. Nothing to install.

Open the Playground →Guided lessons →