Capítulo 5: Instrucciones normales RLL - Instrucciones de tablas
En el ejemplo siguiente, cuándo X1 está ON, se carga el valor constantee (K6) al acumulador
usando la instrucción LD. Este valor especifica la longitud de la tabla y se coloca en la primera
localización del Stack después que se ejecuta la instrucción LDA. La dirección octal 1400
(V1400), que es la de la tabla de destino y el puntero de la tabla, se carga al acumulador. La
dirección de la fuente de datos (V1500) es especificada en la instrucción STT. El puntero de la
tabla será aumentado en "1" cada vez que se ejecuta la instrucción.
Programador D2-HPP
$
B
STR
1
L
D
SHFT
ANDST
3
L
D
SHFT
ANDST
3
S
SHFT
SHFT
RST
Es importante entender cómo se numeran las
direcciones de tabla. Si usted examina la tabla del
ejemplo, usted notará que la primera dirección de
almacenamiento de datos, V1401, se usará
cuando el puntero es igual a 0 y otra vez cuando
el puntero es igual a seis. ¿Por qué? Porque el
puntero es sólo igual a 0 antes de la primera
ejecución. De allí en adelante incrementa de 1 a
6 y entonces vuelve a 1.
También, nuestro ejemplo usa un contacto
normal de entrada (X1) para controlar la
ejecución. Ya que el barrido de la CPU es
extremadamente rápido y el puntero se
incrementa automáticamente, los datos de la
fuente se cambiarían a todas las direcciones de
tabla muy rápidamente. Si esto es un problema
para su aplicación, usted tiene la opción de usar
una instrucción one shot (PD) para mover un
valor cada vez que el contacto de entrada hace la
transición de OFF para ON.
DirectSOFT
DirectS OF T 32
X1
LD
K6
LDA
0 1400
STT
V1500
ENT
G
PREV
ENT
6
A
B
E
A
0
1
4
T
T
B
F
MLR
MLR
1
DirectSOFT32
DirectSOFT
Manual del PLC DL06, 2a. edición en español, 6/07
Carga el valor constante
6 hexadecimal en los 16 bits
más bajos del acumulador
Convierte el octal 1400 a
hexadecimal 300 y carga
el valor al acumulador
Copia el valor especificado
desde la localización de origen
(V1500) a la tabla
A
ENT
0
0
A
A
ENT
5
0
0
Tabla
X
X
X
X
0 6
V1401
V1402
X
X
X
X
1
X
X
X
X
2
V1403
X
X
X
X
3
V1404
V1405
X
X
X
X
4
X
X
X
X
5
V1406
X
X
X
X
V1407
S
S
(Método opcional one shot)
X1
C0
LD
Carga el valor constante 6
hexadecimal a los 16 bits
más bajos del acumulador
LDA
O 1400
Convierte el octal 1400 a
hexadecimal y carga este
valor al acumulador. Esta
es la memoria inicial de la tabla.
1
2
3
4
5
6
7
8
9
10
Puntero de la tabla
0
0
0
0
V1400
11
Origen de los datos
0
5
0
0
V1500
12
13
14
C0
PD
A
K6
B
C
D
5–157