**Question**

What is the difference in the way that the BCD ADD WITHOUT CARRY instruction and BCD ADD WITH CARRY instructions are used?

**Answer**

**The Carry Flag (CY)**

Most Programmable Controllers support double-length math instructions, but for example, what should be done if the result of a BCD double-length addition operation exceeds the upper-limit of double-length data, which is 9999 9999?

BCD Double-length Data Range

0 to 9999 9999

**Now for the Carry Flag (CY)!**

Figure1

How the Carry Flag (CY) Works

The result of the addition operation shown in Figure1 cannot be expressed with only 8 digits, so an overflow (i.e., a “carry”) occurs. In this case the Carry Flag (CY) will turn ON.

Figure2

Here, the Carry Flag can be used to pass the carry to the calculation for the upper digits, enabling calculations for more than 8 digits.

**Difference between BCD ADD WITHOUT CARRY and BCD ADD WITH CARRY**

The information from Figure1 and Figure2 is summarized here.

Figure3

Calculation A:

Use the ADD WITHOUT CARRY instruction for rightmost digit calculations in which there is no carry from the lower digit.

Calculation B:

Use the ADD WITH CARRY instruction for upper digit calculations in which a carry from the lower digit must be considered.

The ADD WITH CARRY instruction, as shown in Figure3, is an addition instruction that includes the Carry Flag in the addition operation.

**Program and Operation**

1. Ladder Program

2. Operation

Figure4

**Summary**

*1.*Difference between ADD WITHOUT CARRY and ADD WITH CARRY

ADD WITHOUT CARRY instruction:

Used for rightmost digit calculations in which there is no carry signal from a lower digit.

ADD WITH CARRY instruction:

Used for upper digit calculations in which a carry signal from the lower digit must be considered.

*2.*About the Number of Digits in Addition Results

The ladder program above is capable of handling an addition result of 12 digits in length. However, if the result will exceed 12 digits, make the upper digit calculation instruction a Double Add Instruction, or connecting multiple operations with ADD WITH CARRY Instructions.

*3.*Addition Operations with Smaller Models

The CPM2A Programmable Controllers and other smaller Programmable Controllers only have the ADD WITH CARRY Instruction, so when doing calculations with lower digits, be sure to use the CLEAR CARRY (CLC) instruction to turn OFF the Carry Flag (CY) before executing Addition Instructions. If the Carry Flag (CY) is not property reset, in other steps where the Carry Flag (CY) is turned ON, arithmetic mistakes such as 1 + 1 = 3 will occur.

*4.*The logic works the same for Binary Addition instructions and other Math Instructions.

This document explained the carry procedure as related to the BCD Addition instruction, but the same logic applies to the Binary Addition instructions as well.

When dealing with subtraction operations, the Carry Flag (CY) and carry operation simply changes to a borrow operation and the calculation can be done in the same way.

- What products are recommended as substitutes for the C200H-CPU01 Programmable Controller?
- How can I connect a C200H Programmable Controller's CPU Unit with an IBM PC/AT or compatible computer?
- Why communication error occurs during CX-Programmer FA Integrated Tool Package get online with Programmable Controller?