All programmable logic controllers (PLCs) have a memory map. Depending on the make or model of the micro PLC, the memory could range from 2K to 16K words. The memory is divided into three parts: program, word and discrete registers. The program (ladder logic) and word registers are usually stored in FLASH memory, while the discrete registers are stored in RAM memory.
To demonstrate a typical memory map, let us assume that the micro PLC we are working with has a total of 16K words of memory. The first 8K words are reserved for word data, with register addresses ranging from 0 to 17777 (octal). These are read/write registers which the ladder logic retrieves or stores internal data. The next 8K words are set aside for the ladder logic, with register addresses ranging from 20000 to 37777 (octal). These registers are not accessible to the programmer. The program is usually written in ladder logic with a PC, compiled and stored in flash memory.
The remaining 700 words are where the discrete data is kept, with register addresses ranging from 40000 to 41277 (octal). These are also read/write registers which the ladder logic keeps track of the I/O (input/output) of the PLC.
The discrete memory area is for inputs, outputs and control relays. However, you can also access the bit data type from a discrete register. Each discrete register contains 16 consecutive discrete locations. The above diagram shows one of the discrete registers from each of the I/O types.