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 dirección inicial de la tabla de destino y contador de tabla, se carga en el
acumulador. La dirección de la tabla origen (V1500) es especificada en la instrucción ATT. El
contador de la tabla será aumentado en "1" después que se ejecuta la instrucción.
Programador D2-HPP
$
STR
SHFT
SHFT
SHFT
En la instrucción ATT, el contador de la tabla
determina el número de las adiciones de valores que
se pueden hacer antes la instrucción pare de
ejecutarse. Es útil entender cómo el sistema usa este
contador para controlar la ejecución. Por ejemplo, si
el contador de la tabla está colocado en 2 y la
longitud de la tabla es 6 palabras, entonces allí
pueden haber solamente 4 adiciones de datos antes
de que la ejecución se pare. Esto puede ser calculado
fácilmente por:
Longitud de tabla - contador de tabla = número de ejecuciones
También, el ejemplo usa un contacto normal de
entrada (X1) para controlar la ejecución. Ya que el
barrido es extremadamente rápido y el contador de
la tabla se incrementa automáticamente, los datos
pasan a la tabla muy rápidamente.
Si esto es un problema para su aplicación, tiene la
opción de usar una instrucción one shot (PD) para
agregar solamente un valor cada vez que el contacto
hace la transición de OFF para ON.
Direct SOFT32
DirectSOFT
X1
Carga el valor constante 6 hexadecimal
en los 16 bits más bajos del acumulador
Convierte el octal 1400 al
hexadecimal 300 y carga
este valor al acumulador
Copia el valor especificado
desde V1500 a la tabla
B
ENT
1
L
D
G
PREV
ENT
ANDST
3
6
L
D
A
B
E
ANDST
3
0
1
A
T
T
B
F
0
MLR
MLR
1
Manual del PLC DL06, 2a. edición en español, 6/07
LD
K6
LDA
O 1400
ATT
V1500
A
A
ENT
4
0
0
A
A
ENT
5
0
0
Tabla
Contador de tabla
0
5
0
0
1
0
V1401
V1402
9
9
9
9
2
Origen del dato
3
0
7
4
3
V1403
X
8
9
8
9
4
V1404
V1405
1
0
1
0
5
2
0
4
6
6
V1406
X
X X
X
V1407
( Ejemplo: 6 - - 2 = 4 )
DirectSOFT (Método opcional one-shot)
X1
C0
LD
K6
Carga el valor constante 6
hexadecimal en los 16 bits
más bajos del acumulador
LDA
O 1400
Convierte el octal 1400 a
hexadecimal 300 y carga este
valor al acumulador. Esta es la
dirección inicial de la tabla
1
2
3
4
5
6
7
8
9
10
0
0
2
V1400
11
X X
X
V1500
12
13
14
C0
PD
A
B
C
D
5–163