Accumulators in S7-300/400 PLC |Understanding Registers and Accumulators in S7-300/400 PLC

 Some readers have expressed confusion about the distinction between registers and accumulators in Siemens S7-300/400 PLCs. In today's article, we will delve into this topic.

Firstly, registers and accumulators are both integral components of the CPU module within the S7-300/400.

Registers, specifically the Register, are high-speed storage units within the CPU designed to temporarily store information such as instructions, data, and addresses needed during CPU operations. The CPU encompasses various registers, including status word registers, address registers, data block registers, etc. Today's focus is on the accumulator, which is essentially a type of register.

The Accumulator, abbreviated as ACCU, is a register used for processing bytes, words, or double words, with a length of 32 bits (4 bytes). In S7-300, there are two accumulators: ACCU1 and ACCU2. In S7-400, there are four accumulators: ACCU1 to ACCU4. Most statement table instructions require the involvement of the accumulator. The operation involves placing operands into the accumulator, performing calculations (saving intermediate results), and then transferring the result from the accumulator to a specific storage area.

At this point, two instructions must be mentioned: Load (L) and Transfer (T).

The Load (L) instruction is used to load a byte, word, or double word into Accumulator 1 (ACCU1). The original data in Accumulator 1 (ACCU1) is then saved in Accumulator 2 (ACCU2). If the Load instruction is used twice, Accumulator 2 (ACCU2) will store the operand from the first load instruction. For example, consider the following two instructions:


Upon executing the first instruction, the value in ACCU1 becomes the value of MW100. After executing the second instruction, the value in ACCU1 becomes the value of MW102, and the value in ACCU2 becomes the value of MW100.

The Transfer (T) instruction is used to save the value in Accumulator 1 (ACCU1) to the corresponding storage area. For example, consider the following instruction:


The Load (L) instruction loads the value of MW100 into Accumulator 1 (ACCU1), and then the Transfer (T) instruction saves the value from Accumulator 1 (ACCU1) to MW104, thereby achieving the functionality of copying the value from MW100.

In summary of this chapter: Registers are high-speed storage units within the CPU, used to temporarily store information such as instructions, data, and addresses needed during CPU operations. The CPU comprises various registers. The accumulator is a type of register, primarily used for performing operations on operands (saving intermediate results) and processing the results of the operations.

Related Reference Article: Understanding the Internal Storage Area of the S7-1200 CPU - Hardware Overview