Aplicación ejemplo: Direccionamiento indirecto. Nombre ejemplo

Anuncio
Aplicación ejemplo: Direccionamiento indirecto.
Nombre ejemplo: Almacenar las producciones diarias mediante
direccionamiento indirecto utilizando un puntero.
PLC: Omron CJ1M CPU21
Redireccionamiento I/O incorporadas en la CPU:
10 entradas 2960.0 --- 2960.09
6 salidas 2961.0 --- 2961.05
Programa utilizado: CX-Programmer 7.02
El funcionamiento de este ejemplo consiste en almacenar las producciones
diarias que nos dará la fotocelula 00.0
Las correspondientes áreas de datos donde se almacenara las piezas contadas
son:
- Domingo – D0
- Lunes ------ D1
- Martes ----- D2
- Miércoles –D3
- Jueves ---- D4
- Viernes --- D5
- Sábado --- D6
La entrada 0.00 incrementa cada vez que detecta una pieza el D1000 , que es
donde se almacenan las piezas detectadas.
Por otro lado utilizaremos la función mov para mover el valor del A345 al D10.
En A345 se almacena el día de la semana. El valor de A345 varia dependiendo
el día de la semana, siendo por ejemplo en nuestro caso 4 al ser jueves.
En la siguiente tabla, podemos encontrar la relación del área auxiliar del reloj
de nuestro CJ1M.
En la imagen inferior, podemos observar que en D1000 se han contado 211
piezas y que en D10 hemos movido un 4 fruto de ser jueves.
Redireccionamiento indirecto:
Como podremos ver en la imagen inferior, utilizaremos la función Mov para
mover las piezas almacenadas al puntero.
Utilizaremos el D10 como puntero, para ello lo marcaremos con el símbolo
delantero * ( asterisco) . Cada vez que se cuenten piezas, estas se
almacenaran en el área de datos que marque el valor del D10 (puntero).
Por ejemplo : Al ser jueves, el puntero (*D10) marca 4 y todas las piezas
contadas en D1000 ( 211) se moverán al D4. El viernes tendremos un 5 en el
puntero (*D10) y por lo tanto el valor que tengamos en D1000 se moverá al D5.
El sábado = 6 etc.… …… D6.
La imagen superior nos muestra los valores que hemos registrado en la
ventana de vigilancia.
La entrada 0.05 la utilizaremos para realizar la puesta a cero del D0 al D6, para
ello utilizamos la función BSET(071) que rellena con un cero (canal fuente) los
canales definidos en la instrucción como de inicio (D0) y final (D6).
El reset del D1000 lo haremos mediante la función MOV(021) , que nos mueve
un cero al D1000.
Destacar por ultimo que el siguiente ejemplo es una base para que tengamos
una idea de como podemos trabajar con un puntero en un direccionamiento
indirecto.
Descargar