AutomationDirect PLC DL06 Serie Manual Del Usuario página 307

Ocultar thumbs Ver también para PLC DL06 Serie:
Tabla de contenido

Publicidad

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) es la dirección inicial de la tabla fuente y se carga en el acumulador.
Recuerde, V1400 se usa como la localización de un puntero, y no es realmente parte de la tabla
fuente de datos. La localización de destino (V1500) es especificada en la instrucción TTD. El
puntero de la tabla (V1400 en este caso) será aumentado en "1" después de cada ejecución de
la instrucción TTD.
Programador D2-HPP
$
B
STR
L
D
SHFT
ANDST
L
D
SHFT
ANDST
T
T
SHFT
MLR
Es importante entender cómo se numeran las
direcciones de la tabla. Si examina la tabla del
ejemplo, usted notará que la primera dirección de
datos, V1401, se usará cuando el puntero es igual a
0, y nuevamente 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 uno a seis y luego 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
aumenta en 1 automáticamente, la tabla
hace el ciclo por todas las direcciones muy
rápidamente.
Si esto es un problema, se tiene la opción
de usar SP56 en unión con una instrucción
one shot (PD) y un enclavamiento (C1 por
ejemplo) para permitir a la tabla pasar por
todas direcciones una vez y luego para. La
lógica mostrada aquí no es necesaria, es
solamente un método opcional.
DirectSOFT
DirectSOFT32
X1
LD
K6
LDA
0 1400
TTD
V1500
ENT
1
G
PREV
ENT
3
6
A
B
E
3
0
1
4
D
B
F
MLR
3
1
5
DirectSOFT
DirectSOFT32 (Ejemplo de enclavamiento usando SP56)
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 este valor al acumulador.
Esta es la localización del
puntero de la tabla
Copia el valor especificado desde
la tabla al destino especificado (V1500)
A
A
ENT
0
0
A
A
ENT
0
0
Tabla
Puntero de la tabla
0
5
0
0
0 6
0
V1401
V1402
9
9
9
9
1
Des tino
3
0
7
4
2
V1403
X
8
9
8
9
3
V1404
V1405
1
0
1
0
4
2
0
4
6
5
V1406
X
X
X
X
V1407
S
S
X1
C1
LD
K6
Carga el valor constante 6 hexadecimal
en los 16 bits más bajos del acumulador
C0
SP56
Ya que los relevadores especiales vuelven a 0 al fin
del barrido, este enclavamiento debe estar justamente
después de la instrucción TTD en el programa
1
2
3
4
5
6
7
8
9
10
0
0
0
V1400
11
X
X
X
V1500
12
13
C0
14
PD
A
B
C1
SET
C
C1
RST
D
5–151

Publicidad

Tabla de contenido
loading

Tabla de contenido