La instrucción Divide Binary by Top OF Stack (DIVBS)
Esta es una instrucción de 32 bits que divide el valor binario
DS5 Usado
de 32 bits en el acumulador por el valor binario de 16 bits en
HPP Usado
el primer nivel del stack del acumulador.
El resultado reside en el acumulador y el resto reside en el
primer nivel del stack del acumulador.
Indicadores
SP53
SP63
SP70
NOTA: Las indicaciones de estado discretas SP son válidas sólo hasta que se ejecute otra instrucción que
use el mismo relevador especial SP.
En el ejemplo siguiente, cuando X1 está ON, se carga el valor en V1400 en el acumulador
usando la instrucción LD. El valor en V1420 y V1421también se carga en el acumulador
usando la instrucción LDD, empujando el valor cargado previamente en el acumulador sobre
el stack del acumulador. El valor binario en el acumulador es dividido por el valor binario en
el primer nivel del stack del acumulador usando la instrucción DIVBS.
El valor en el acumulador se copia a V1500 y a V1501 usando la instrucción OUTD.
DirectSOFT
DirectSOFT32
X1
LD
V1400
LDD
V1420
DIVBS
OUTD
V1500
Programador D2-HPP
$
B
ENT
STR
1
L
D
SHFT
ANDST
3
L
D
D
SHFT
ANDST
3
3
D
I
V
SHFT
3
8
AND
GX
D
SHFT
OUT
3
On cuando el valor del operando es más grande que lo que puede aceptar el acumulador
ON cuando el resultado de la instrucción hace que el valor en el acumulador sea 0.
On cuando el valor en el acumulador es negativo.
Carga el valor en V1400
al acumulador
Los bits no usados por el
acumulador son colocados en cero.
Acum.
Carga el valor en V1420 y
V1421 al acumulador
Acum.
Divide el valor binario
en el acumulador por
el valor binario en el
Acum.
primer nivel del stack
del acumulador
Copia el valor en el
acumulador a V1500
y V1501
B
E
A
A
ENT
1
4
0
0
B
E
C
A
1
4
2
0
B
S
ENT
1
RST
B
F
A
A
ENT
1
5
0
0
Manual del PLC DL06, 2a. edición en español, 6/07
Capítulo 5: Instrucciones aritméticas
Descripción
V1400
0
0
1
4
0
0
0
0
0
0
1
4
V1421
V1420
0
0
0
0
C
3
5
0
0
0
0
0
C
3
5
0
0
0
0
0
0
9
C
4
0
0
0
0
0
9
C
4
V1501
V1500
ENT
DIVBS
Stack del acumulador
después del primer LD
10
X
X X
X X
X X
X
Nivel 1
X
X X
X X
X X
X
Nivel 2
X
X X
X X
X X
X
Nivel 3
11
X
X X
X X
X X
X
Nivel 4
X
X X
X X
X X
X
Nivel 5
X
X X
X X
X X
X
Nivel 6
12
X
X X
X X
X X
X
Nivel 7
Nivel 8
X
X X
X X
X X
X
Stack del acumulador
13
después del segundo LD
0
0
0
0
0
0
1
4
Nivel 1
X
X X
X X
X X
X
Nivel 2
14
X
X X
X X
X X
X
Nivel 3
X
X X
X X
X X
X
Nivel 4
X
X X
X X
X X
X
Nivel 5
X
X X
X X
X X
X
Nivel 6
X
X X
X X
X X
X
Nivel 7
X
X X
X X
X X
X
Nivel 8
El residuo se queda en
el primer nivel del stack
0
0
0
0
0
0
0
0
Nivel 1
X
X X
X X
X X
X
Nivel 2
X
X X
X X
X X
X
Nivel 3
X
X X
X X
X X
X
Nivel 4
X
X X
X X
X X
X
Nivel 5
X
X X
X X
X X
X
Nivel 6
X
X X
X X
X X
X
Nivel 7
X
X X
X X
X X
X
Nivel 8
5–117
1
2
3
4
5
6
7
8
9
A
B
C
D