170
Description
• Subtracts the 16-bit data or 16-bit equivalent constant specified by S2 from the 16-bit data or
16-bit equivalent constant specified by S1 when the trigger turns ON. The subtracted result is
stored in D.
■ Flag condition
• Error flag (R9007): Turns ON and keeps the ON state when the area specified using the index
modifier exceeds the limit. The error address is transferred to DT9017
and held. (See notes below.)
• Error flag (R9008): Turns ON for an instant when the area specified using the index modifier
exceeds the limit. The error address is transferred to DT9018. (See notes
below.)
• = flag (R900B): Turns ON for an instant when the calculated result is recognized as “0”.
• Carry flag (R9009): Turns ON for an instant when the calculated result exceeds the range of
16-bit data (overflows or underflows).
*Range of 16-bit data: K-32768 to K32767 (H8000 to H7FFF)
Notes:
• Special data registers DT9017 and DT9018 are available only for FP1s with CPU
version 2.7 or later. (All FP1s with a suffix “B” on the part number have this function.)
• When using special internal relays R9008, R9009, and R900B as the flags for this
instruction, be sure to program the flags at the address immediately after the
instruction.
• Refer to page 223, “8-3. Table of Special Internal Relays”, for details about error
flags, = flag, and carry flag.
• If the calculated result accidently overflows or underflows (if special internal relay
R9009 turns ON), use of the F28 (D-) instruction (32-bit data subtraction) is
recommended. When you use the F28 (D-) instruction instead of F27 (-), be sure to
convert the 16-bit subtrahend and minuend into 32-bit data using the F89 (EXT)
instruction.
Minuend data Subtrahend data Trigger turns ON Result
S1 – S2 D
6-3. Description of High-level Instructions