APPENDIX E Ladder
diagram instructions (2/3)
E.21 HIGH-SPEED TIMER - Timer with 0.01s
resolution
Description |
This instruction is
identical to the previous TIM instruction, except for the resolution
of decrementing. In case of TIM instruction this interval equals
0.1s, while with TIMH instruction it equals 0.01s. Changing the
condition to ON starts the countdown with 0.01s decrements from the
predefined value down to zero. If the state of condition changes to
OFF timer will be reset. Value of parameter SV (abbreviation for Set
Value) is multiplied by 0.01 s resulting in total time in seconds.
Value given in the middle part of the block is called TC number.
Each TC number can be used for defining one couner or timer. It can
take values from 000 - 127 range. Lower part of the block is
reserved for displaying the starting value of timer. Word with this
role can belong to sectors IR, AR, DM, HR, LR or can be given as a
constant, with values from 00.00 - 99.9.9 range. If parameter SV is
given as a constant, it is necessary to put character “#” ahead of
value. |
Ladder symbol |
 |
Limitations |
The number of timer cannot
be used for a counter or another timer. Value of SV must be in 00.00
- 99.99 range. Recommended range for a number of timer is 000 -
003. |
Flag |
Affects the appropriate
flag in TC area. |
Example |
Changing the state of condition bit
IR000.00 to ON starts the countdown (in this case for 27*0.01s=0.27
seconds). After the passing of given period of time, the appropriate
bit IM003 changes state to ON, thus fulfilling the condition for
executing the instructions on the right (in this case bit IR010.01
changes state to ON).
Condition bit must be constantly ON
for a given time period for bit TIM002 to be set. If condition state
changes to OFF during the given time period, timer resets and goes
back to the beginning. |
E.22 COUNTER - Counter
Description |
Counter decrements the
value given with SV for every ON state of the condition on CP line
(abbreviation for Count Pulse). Each time the state on CP line
changes from OFF to ON value of SV is decremented by one. Fulfilling
the condition on R (reset) line sets the counter to a starting state
with a given SV value. When the zero is reached, instruction changes
the state of appropriate bit from TC area corresponding to the
number of a counter (bit can be returned to OFF state by fulfilling
the condition on reset line). If parameter SV is given as a
constant, it is necessary to place a character “#” ahead of
value. |
Ladder symbol |
 |
Limitations |
The number of timer cannot
be used for a counter or another timer. |
Flag |
Affects the appropriate
flag in TC area. |
Example |
When the state of bit IR000.00 changes
from OFF to ON, counter value decreases to 299, next change of bit
IR000.00 lowers it to 298 and so on. When counter value reaches
zero, state of bit CNT004 changes to ON, fulfilling the condition
for executing instructions on the right (in this case, it is a
normally closed contact that will
open). |
E.23 REVERSIBLE COUNTER - Incrementing / decrementing
counter
Description |
This instruction is an
extension of the previous one, having the added input for increasing
counter value by one. Counter CNTR has two counting inputs: incrementing and decrementing. Decrementing
input is identical to one from CNT instruction. For every ON state
of condition on II line (Increment Input) counter value increases by
one. If this value reached SV, counter value remains unchanged.
Every time state on DI line (Decrement Input) changes from OFF to
ON, value of SV decreases by one. If counter value reached zero it
remains unchanged. Fulfilling the condition on R (reset) line sets
the counter to a starting state given with value of SV. With
reaching the zero, instruction changes the state of bit in TC area
appropriate to the number of the counter. This bit can be returned
to OFF state by fulfilling the condition on na reset line or
increment II line. If the parameter SV is given as a constant it is
necessary to place the character “#” ahead of value. |
Ladder symbol |
 |
Limitations |
Number of a counter cannot
be used for a timer or another counter. |
Flag |
Affects the appropriate
bit in TC area. |
Example |
When the state of bit IR000.00 changes
from OFF to ON, counter value decreases to 122, next change of bit
IR000.00 lowers it to 121 and so on. When the state of bit IR000.01
changes counter value increases by one. When counter value reaches
zero, state of bit CNT006 changes to ON fulfilling the condition for
executing instructions on the right (in this case, it is normally
closed contact that will open). ON state of bit IR00.02 will return
the counter to a given value, while a bit CNT006 returns it to OFF
state. |
E.24 COMPARE - Compares two memory
locations
Description |
Instruction CMP(20)
compares two words upon fulfilling the preceding condition.
Depending on the relation of the two words, output can be:
1.
Equal - state of bit EQ in SR memory area changes to
ON. 2. Cp1 is lower than Cp2 - state of bit LE in SR
memory area changes to ON. 3. Cp1 is greater than Cp2 -
state of bit GR in SR memory area changes to ON.
Flag |
Address |
Cp1<Cp2 |
Cp1=Cp2 |
Cp1>Cp2 |
GR |
25505 |
OFF |
OFF |
ON |
EQ |
25506 |
OFF |
ON |
OFF |
LE |
25507 |
ON |
OFF |
OFF |
|
Ladder symbol |
 |
Limitations |
Comparations that include
the current values of timer or a counter require values in BCD
format. Checking the flags GR, LE and EQ should take place
immediately after the CMP(20) instruction, because another
instruction may affect their states. |
Flag |
Affects the flags GR, LE
and EQ in SR memory area. |
Example |
When the state of bit IR000.00 changes
to ON, condition for comparing the values of memory locations IR200
and IR201 is fulfilled. If value of IR200 is greater than IR201,
state of bit IR010.00 changes to ON. If value of IR200 is lesser
than IR201, state of bit IR010.02 changes to ON. In case of equal
values of locations IR200 and IR201, state of bit IR010.01 changes
to ON. |
E.25 DOUBLE COMPARE - Compares two consecutive
words
Description |
Instruction CMPL(60)
compares the two consecutive words with other two consecutive words.
Depending on the relation, output can be:
1. Equal -
state of bit EQ in SR memory area changes to ON. 2. Cp1+1, Cp1
is lower than Cp2+1, Cp2 - state of bit LE in SR memory area
changes to ON. 3. Cp1+1, Cp1 is greater than Cp2+1, Cp2 -
state of bit GR in SR memory area changes to ON.
Flag |
Address |
Cp1+1,Cp1
<Cp2+1,Cp2 |
Cp1+1,Cp1=Cp2+1,Cp2 |
Cp1+1,Cp1>Cp2+1,Cp2 |
GR |
25505 |
OFF |
OFF |
ON |
EQ |
25506 |
OFF |
ON |
OFF |
LE |
25507 |
ON |
OFF |
OFF |
|
Ladder symbol |
 |
Limitations |
Checking the flags GR, LE
and EQ should take place immediately after the CMP(20) instruction,
because another instruction may affect their states. |
Flag |
Affects the flags GR, LE
and EQ in SR memory area. |
Example |
When the state of bit IR000.00 changes
to ON, condition for comparing the values of memory locations
IR200+IR2001 and HR00+HR01 is fulfilled. If value of the first
operand is greater, state of bit IR010.00 changes to ON. If value of
the first operand is lesser, state of bit IR010.02 changes to ON. In
case of equal values, state of bit IR010.01 changes to
ON. |
E.26 BLOCK COMPARE - Block
compare
Description |
Instruction BCMP compares
the value of memory location CD with values of memory locations CB -
CB+31. The method consists of finding the pair of CB locations where
the value of CD location fits in between. Upon locating that area,
the appropriate bit is set in the result word R. Based on this
information, the programmer knows the general area of value of
location CD.

|
Ladder symbol |
 |
Limitations |
Values of CB block must be
in order, so that the value of location CB is lesser than value of
CB+1. |
Flag |
It has no effect on any
particular flag. |
Example |
Comparation will be executed for as
long as the state of condition is ON. If value of location HR00
equals “0210”, then it will be set between DM0014 and DM0015
correspoding to the second bit of the result word LR05.

|
E.27 TABLE COMPARE - Table
compare
Description |
Instruction TCMP compares
value of memory location CD with values of memory locations TB,
TB+1, TB+2, TB+3 ... TB+15. If value of location CB is equal to one
of TB values, the appropriate bit of the result word R is set. Based
on this information, the programer knows which TB value matches the
value of location CD. |
Ladder symbol |
 |
Limitations |
Locations DM 6144 - DM6655
cannot be used for the result word. |
Flag |
It has no effect on any
particular flag. |
Example |
Comparation will be executed as long as
the state of bit IR000.00 is ON. If value of location HR00 is
“0210”, then it equals the values of locations DM0002, DM0006,
DM0010 and DM0014. Accordingly, the appropriate bits of the word
IR216 change states to ON (they are set).

|
E.28 MOVE - Moves the contents of one memory location
to another
Description |
Instruction MOVE is used
for moving the contents of one memory location to another. The
operand S represents the word whose contents should be moved to a
word that is operand D. Operand S can be a constant, if the
character “#” is placed ahead of four-digit value. |
Ladder symbol |
 |
Limitations |
Words DM6144 - DM6655
cannot be used as operand D. The current state of timer or counter
also cannot be used as operand D. Instruction BSET(17) should be
used for that purpose. |
Flag |
Flag EQ from TC area
changes state to ON when all zeros are written into operand D.
Therefore, flag EQ provides us with information if the moved value
equals zero. In case of error, state of flag ER changes to
ON. |
Example |
Upon fulfilling the condition on bit
IR00.00, instruction moves the contents of memory location IR001 to
memory location HR05. Every bit of word IR001 is copied to the
appropriate bit of word HR05. Instruction MOV can be very helpful
when reading the signals controller sends or receives from
peripheral devices. Input states are moved to a working area, where
they are processed and then they are sent to the output points of
PLC controller. |
E.29 MOVE NOT - Moves the complement
Description |
Instruction MOVE NOT is
used for moving the complemented (inverted bits, bit “0” becomes
“1”and vice versa) contents of one memory location to another. The
operand S represents the word whose complemented contents should be
moved to a word that is operand D. Operand S can be a constant, if
the character “#” is placed ahead of four-digit value. |
Ladder symbol |
 |
Limitations |
Words DM6144 - DM6655
cannot be used as operand D. The current state of timer or counter
also cannot be used as operand D. Instruction BSET(17) should be
used for that purpose. |
Flag |
Flag EQ from TC area
changes state to ON when all zeros are written into operand D.
Therefore, flag EQ provides us with information if the moved value
equals zero. In case of error, state of flag ER changes to
ON. |
Example |
Upon fulfilling the condition on bit
IR00.00, instruction moves the complemented contents of memory
location IR001 to memory location HR05. Every bit of word IR001 is
complemented and copied to the appropriate bit of word
HR05. |
E.30 BLOCK TRANSFER - Copies one block of
words to another
Description |
Instruction BLOCK TRANSFER
copies the contents of one memory block of words to another.
Parametar “N” represents the number of memory locations copied, “S”
is the address of starting source memory location, while “D”
represents the address of the starting destination memory
location. |
Ladder symbol |
 |
Limitations |
Words DM6144 - DM6655
cannot be used as operand D. S and S+N have to be from the same
memory area. D and D+N also have to be from the same memory area. N
has to be a BCD number. |
Flag |
State of ER flag changes
to ON if N is not a BCD number or in case that S and S+N, D and D+N
are not from the same memory area. |
Example |
Upon fulfilling the condition on bit
IR00.00, instruction moves the contents of ten memory locations
IR200 - IR210 to memory locations HR00 -
HR10. |
E.31 BLOCK SET - Copies the contents of one memory location
to multiple locations
Description |
Instruction copies the
contents of one memory location S to a block of memory locations
from St to E. Parameter St contains the starting address of the
block and parameter E contains the ending address of the block. It
is possible to change the contents of the current timer/counter
values with this instruction, unlike with instructions MOV and MVN.
Operand S can be a constant, if the character “#” is placed ahead of
four-digit value. |
Ladder symbol |
 |
Limitations |
Words DM6144 - DM6655
cannot be used as operands St and E. Address in the operand St has
to be lesser than the addreess in operand E. Both the operands St
and E have to be from the same memory block. |
Flag |
State of ER flag changes
to ON if St and E do not belong to the same memory block or in the
case that the second parameter is greater than first. |
Example |
Upon fulfilling the condition on bit
IR00.00, instruction moves the contents of memory location IR000
(zero) to locations HR00 - HR05. In this way, it is possible to
clear the memory block or to set it to a certain value. Same effect
could be achieved if constant “#0000” was used instead of memory
location IR200 containing all
zeros. |
E.32 DATA EXCHANGE - Exchanges values of two memory
locations
Description |
Instruction exchanges the
values of memory locations E and E1. |
Ladder symbol |
 |
Limitations |
Words DM6144 - DM6655
cannot be used as operands E1 and E2. |
Flag |
State of ER flag changes
to ON if non-existing indirect address of location from DM area is
used as an operand. |
Example |
Upon fulfilling the condition on bit
IR00.00 instruction exchanges the contents of memory locations IR000
(all zeros) and IR201 (all ones). As a result, memory location IR201
contains all ones and memory location IR200 contains all
zeros. |
E.33 SINGLE WORD DISTRIBUTE - Creates a
stack
Description |
Instruction can be used in
two ways depending on the states of bits 12, 13, 14 and 15 of memory
location in parameter C. If these 4 bits have value between 0 and 8,
then the instruction copies the word from parameter S (or a constant
if it is given with character “#” ahead) to an address calculated by
adding the base address from parameter DBs and the shift defined in
the rest of the word of parameter C. When bits 12-15 in memory
location of parameter C form the number 9, then the instruction is
used for stack operations. The rest of the value of word of
parameter C now defines number of the words in stack (from 000 to
999) and the contents of DBs represent the stack
pointer. |
Ladder symbol |
 |
Limitations |
Words DM6144 - DM6655
cannot be used as operand DBs. Address of the operand DBs has to be
in the same memory block with BDs + shift. The argument C has to be
BCD number. |
Flag |
EQ flag changes state to
ON when the contents of memory location in parameter S equal zero.
State of ER flag changes to ON in case of error. |
Examples |
Bits 12-15 in the word LR10 from
parameter C formthe number “0011”, which is in 0 - 8 range.
Therefore, the instruction is used in the first form. Upon
fulfilling the condition on bit IR00.00, instruction copies the
constant #00FF to an address calculated by adding the base address
(in this case HR10) and three lower numbers from the word
LR10.

Bits 12-15 in the word IR216 from
parameter C form the number “0101”, which exceeds 8. Therefore, the
instruction is used in the second form. The example above shows how
to create a stack between memory locations DM0001 and DM0005.
Location DM0000 is used as a pointer marking the top of the
stack. |
E.34 DATA COLLECT - FIFO, LIFO stack
Description |
Instruction can be used in
three different ways depending on the states of bits 12-15 in the
word of parameter C: 1. If four bits have value between 0 and 7,
the instruction copies the word D to an address calculated by adding
the address of the word SBs with the rest of the word C. 2. If
value of four bits of word C equals 9, instruction creates the FIFO
stack (First In First Out). The rest of the bits of the word C
determines the number of the words in stack (000 to 999), while SBs
represents the pointer marking the top of the stack. 3. If value
of four bits of word C equals 8, instruction creates the LIFO stack
(Last In First Out). The rest of the bits of the word C determine
the number of the words in stack (000 to 999), while SBs represents
the pointer marking the top of the stack. |
Ladder symbol |
 |
Limitations |
Words DM6144 - DM6655
cannot be used as operand DBs. Parameter C has to be a BCD number.
SBs and SBs + shift have to be from the same memory
block. |
Flag |
EQ flag changes state to
ON when the contents of memory location in parameter S equal zero.
State of ER flag changes to ON in case of error, such as overflow or
assigning non-BCD contents to parameters S or D. |
Examples |
Bits 12 - 15 in the word IR200 form
“0”, while the rest of the word forms value 005, defining stack size
to be 5 locations. Upon fulfilling the condition on bit IR000.00,
instruction copies the contents of word LR00 to an address
calculated by adding the address DM0000 with the shift defined in
the word IR200 (lower three digits) : DM0000 + 005 =
DM0005.

Bits 12 - 15 in word IR216 form a
number “9”, while the rest of the word forms value 005, defining the
stack size to be 5 locations. Number “9” as the first digit of word
IR216 determines that the instruction works with FIFO stack. Upon
fulfilling the condition on bit IR000.00, instruction moves the
contents of the stack by one address, so that the element that first
came into the stack (“AAAA”) is copied to the word IR001, while the
stack pointer decreases by one.

Bits 12 - 15 of the word IR216 form a
number “8”, while the rest of the word forms value 005, defining the
stack size to be 5 locations. Number “8” as the first digit of the
word IR216 means that the instructions works with LIFO stack. Upon
fulfilling the condition on bit IR000.00, instruction copies the
value of the last word that came into stack to the location IR001,
while the stack pointer decreases by
one. |
E.35 MOVE BIT - Copies a bit from one word to
another
Description |
Instruction copies a
specified bit from the word S to a specified bit of word D. The word
Bi determines the positions of bits in question. The upper 2 digits
determine the destination bit, while lower 2 determine the source
bit. |
Ladder symbol |
 |
Limitations |
Values of destination and
source bits has to be between 0 and 15. Words DM6144 - DM6655 cannot
be used as operands Bi or D. |
Flag |
|
Example |
|
E.36 MOVE DIGIT - Moves a digit from one word to
another
Description |
Instruction copies a
specified digit from the word S to a specified digit of the word D.
The word Di determines the positions of digits in
question. |
Ladder symbol |
 |
Limitations |
Value of destination and
source bit has to be between 0 and 15. Words DM6144 - DM6655 cannot
be used as operands Bi or D. |
Flag |
ER flag changes state to
ON if at least one of three digits in the word Di isn’t in the
specified range (between 0 and 3). |
Example |
The examples below show
copying digits from one word to another depending on the value of
word Di.

|
E.37 SHIFT REGISTER - Shifts the contents of a word for
1 bit to the left
Description |
Instruction shifts the
contents of word St for 1 bit to the left. The highest bit of the
word St moves to the place of the lowest bit in the word St+1, the
highest bit of the word St+1 moves to the position of the lowest bit
in the word St+2 and so forth, up to the word E. The highest bit of
the word E is irreversibly lost with every shifting. Input I defines
whether “0” or “1” fills the lowest bit position. If the state of I
line is ON, value is one, while OFF defines zero. Input P is used as
clock for the instruction and switching it from OFF to ON changes
the bit shift. State on R line can be OFF when the instruction can
be executed and ON when all the bits within word range from St to E
are set to “0”. As long as the state of R line isn’t set to OFF
state, instruction cannot be executed. |
Ladder symbol |
 |
Limitations |
E has to be greater or
equal to the address in parameter St. |
Flag |
ER flag changes state to
ON if St is lower address than E or if they are not in the same
memory area. |
Example |
Upon fulfilling the condition on bit
IR000.00, instruction uses one-second clock on bit 255.02 in order
to move the contents of the word HR00. Bit IR200.00 will be ON every
time the bit HR00.07 equals
one. |
E.38 WORD SHIFT - Shifts whole
words
Description |
Instruction shifts the
whole contents of the word St to an address greater by one than the
current. Value of the word from the parameter St is moved to St+1 up
to the the word defined with parameter E. Word that equals zero
fills the place on the right for every shifting. Value of the word
on the address from parameter E is irreversibly lost. |
Ladder symbol |
 |
Limitations |
E has to be greater or
equal address to the one from parameter St. Words DM6144 - DM6655
cannot be used as operands St and E. |
Flag |
ER flag changes state to
ON if St is lower address than E or if they are not from the same
memory area. |
E.39 ARITHMETIC SHIFT LEFT - Arithmetic shift
left
Description |
Instruction shifts the
contents of the word Wd for one bit to the left. The lowest bit
becomes “0”, while the highest bit is moved to carry
bit. |
Ladder symbol |
 |
Limitations |
Words DM6144 - DM6655 se
ne mogu koristiti za operand Wd. |
Flag |
EQ flag changes state to
ON if the contents of the word Wd equal zero. CY flag takes the
value of the highest bit of theword Wd and changes state
accordingly. |
E.40 ARITHMETIC SHIFT RIGHT - Arithmetic shift
right
Description |
Instruction shifts the
contents of the word Wd for 1 bit to the right. The highest bit
takes value “0”, while the lowest bit moves to carry bit
(CY). |
Ladder symbol |
 |
Limitations |
Words DM 6144 - DM6655
cannot be used as operand Wd. |
Flag |
EQ flag changes state to
ON if the contents of the word Wd equal zero. CY flag takes the
value of the lowest bit of the word Wd and changes state
accordingly. |
E.41 ROTATE LEFT - Rotates the contents of a word for 1
bit to the left
Description |
Instruction shifts the
contents of the word Wd for one bit to left, using the carry bit CY.
Bit from CY is then moved to the lowest bit to close the circle.
|
Ladder symbol |
 |
Limitations |
Word DM6144 - DM6655
cannot be used as operand Wd. |
Flag |
EQ flag changes state to
ON if the contents of the word Wd equal zero. CY flag takes value of
the highest bit of the word Wd and changes state
accordingly. |
E.42 ROTATE RIGHT - Rotates the contents of a word for
1 bit to the right
Description |
Instruction shifts the
contents of the word Wd for one bit to the right, using the carry
bit CY. Bit from CY is then moved to the highest bit to close the
circle. |
Ladder symbol |
 |
Limitations |
Word DM6144 - DM6655
cannot be used as operand Wd. |
Flag |
EQ flag changes state to
ON if the contents of the word Wd equal zero. CY flag takes value of
the lowest bit of the word Wd and changes state
accordingly. |
E.43 ONE DIGIT SHIFT LEFT - Shifts word for one digit
to the left
Description |
Instruction shifts the
contents of the word St for one digit to the left. The highest digit
of the word E is irreversably lost and the lowest digit of the word
St takes zero value. |
Ladder symbol |
 |
Limitations |
Words DM 6144 - DM6655
cannot be used as operands St and E. Operands St and E have to be in
the same memory area, while the address of operand E has to be
greater or equal to the address of operand St. |
Flag |
ER flag changes state to
ON if St and E are not from the same memory area or in case that the
address of parameter E is lower than the address of parameter
St. |
E.44 ONE DIGIT SHIFT RIGHT - Shifts word for one digit
to the right
Description |
Instruction shifts the
contents of the word St for one digit to the right. The lowest digit
of the word E is irreversably lost and the lowest digit of the word
St takes zero value. |
Ladder symbol |
 |
Limitations |
Words DM 6144 - DM6655
cannot be used as operands St and E. Operands St and E have to be in
the same memory area and the address of the operand E has to be
lower or equal to the address of the operand St. |
Flag |
ER flag changes state to
ON if St and E are not from the same memory area or in case that the
address of parameter E is higher than the address of parameter
St. |
E.45 REVERSIBLE SHIFT REGISTER - Shifts words to the
left or to the right
Description |
Instruction is used for
shifting one or several words in both directions, according to the
states of the highest 4 bits in the control word C. The control word
determines shifting direction, input value, clock and reset
input. |
Ladder symbol |
 |
Limitations |
Words DM 6144 - DM6655
cannot be used as operands C, St and E. Operands St i E have to be
from the same memory area and the address of the operand St has to
be lower or equal to the address of the operand E. |
Flag |
ER flag changes state to
ON if St and E are not from the same memory area or the address of
parameter St is higher than the address of parameter E. CY changes
according to the state of the lowest bit of the word St or the
highest bit of the word E, depending on the shifting direction set
in the control word C. |
Example |
First instruction line determines the
shifting direction, second determines input, third determines the
clock and fourth determines reset. The shifting direction depends on
the bit 12 of the control word. Depending on it, data bit moves to
CY carry bit, while the opposite end becomes “0” or “1” depending on
bit 13 of the control word. Condition for executing this instruction
is located in the bit IR000.04, but besides this it is necessary to
have the clock (bit 14 of the control word) ON. If the instruction
is being executed with reset bit (bit 15 of the control word) OFF,
all data bits as well as carry bit CY are set to
“0”. |
E.46 BCD INCREMENT - Increases the contents of a word
by 1
Description |
Instruction increases the
contents of the word Wd by one when the condition is fulfilled.
Incrementation does not affect the carry bit. |
Ladder symbol |
 |
Limitations |
Words DM 6144 - DM6655
cannot be used as operand Wd. |
Flag |
ER flag changes state to
ON if the contents of the word Wd are not BCD. EQ flag changes
state to ON when the result of incrementation equals
“0”. |
E.47 BCD DECREMENT - Decreases the contents of a word
by 1
Description |
Instruction decreases the
contents of the word Wd by one when the condition is fulfilled.
Decrementation does not affect the carry bit. |
Ladder symbol |
 |
Limitations |
Words DM6144 - DM6655
cannot be used as operand Wd. |
Flag |
ER flag changes state to
ON if the contents of the word Wd are not BCD. EQ flag changes
state to ON when the result of decrementation equals
“0”. |
E.48 BCD ADD - Adds two values
Description |
Instruction adds the
contents of words Au and Ad (Au + Ad + CY) and stores the result in
location R. If the result is greater than 9999 carry bit CY is
set. |
Ladder symbol |
 |
Limitations |
Words DM6144 - DM6655
cannot be used as operand R. |
Flag |
ER flag changes state to
ON if the contents of words Au and Ad are not BCD. EQ flag
changes state to ON if the result equals “0”. CY flag changes
state to ON if the result is greater than 9999. |
Example |
Upon fulfilling the
condition on bit IR000.02, carry bit is cleared and the value of
memory location IR200 is added to the constant 6103. The result is
stored in the memory location DM0100. The example further shows how
to save the carry bit if the result was greater than 9999. If the
result exceeded 9999, memory location DM0101 will take value “1” and
if not it will take value “0”. In this way, locations DM0100 and
DM0101 form one 32-bit word, which may prove to be useful.

|
E.49 SUBTRACT - Subtracts two
values
Description |
Instruction subtracts the
contents of the word Su and a value of carry bit CY from the
contents of the word Mi. The result is stored in the memory location
R If the result is negative, carry bit CY is set and a 10’complement
of the result is stored into R. To get the real result, just
subtract the value in R from zero. |
Ladder symbol |
 |
Limitations |
Words DM 6144 - DM6655
cannot be used as operand R. |
Flag |
ER flag changes state to
ON if the contents of words Mi and Su are not BCD. EQ flag
changes state to ON if the result equals “0”. CY flag changes
state to ON if the result is negative. |
Example |
Carry bit status should be checked
before the subtraction. It is best to clear it with CLC instruction.
The check is more necessary after the subtraction, because there is
chance of misinterpretation. If the carry bit is set (value is “1”)
the result of subtraction is negative and the result word contains
10’ complement of the real result. When the condition is
fulfilled on bit IR000.02, carry bit is cleared and the value of
memory location DM0100 is subtracted from value of location IR201.
The result is stored in the location HR10. Upon subtraction, carry
bit CY is checked. If it is set, condition on SR255.04 (the very
carry bit) will be fulfilled, clearing it anew and commencing the
new subtraction in order to get the real result of the first
subtraction. The second subtraction instruction subtracts the value
of the result word HR10 from zero, storing the result into HR10
again. It is useful to set a certain bit for a programmer to
have information on negative result. In the following example this
bit is HR1100. Changing the state of carry
bit to OFF doesn’t change the state of bit HR1100.

Character “@” ahead of SUB(31)
represents the differencial form of the instruction, or simply put,
this instruction will not execute non-stop while the condition is
fulfilled. Only changing the condition from OFF to ON executes the
instruction. This means that the second subtraction instruction
won’t take place immediately after the first one. Before executing
the second instruction, it is necessary that bit IR000.02 changed
state from OFF to ON at least
once. |
E.50 BCD MULTIPLY - Multiplies two
values
Description |
Instruction multiplies
values of locations Md and Mr and stores the result into memory
locations R and R+1. |
Ladder symbol |
 |
Limitations |
Words DM6144 - DM6655
cannot be used as operand R. |
Flag |
ER flag changes state to
ON if the contents of words Mr and Md are not BCD. EQ flag
changes state to ON if the result equals “0”. CY flag changes
state to ON if the there is a carry in the result. |
Example |
Upon fulfilling the condition on bit
IR000.00, instruction multiplies the values of memory locations
IR013 and DM0005. The result is stored into two sequential memory
locations HR07 and HR08. The result is stored so that HR08 contains
higher bits and that HR07 contains lower
bits. |
|