Início / Descargas / Omron / Ejemplos / Direccionamiento Indirecto en una FB Function Block (Lenguage ST)

Direccionamiento Indirecto en una FB Function Block (Lenguage ST)

  • Publicado: 19 Marzo 2011
  • Omron
  • Leído Visto: 4356 veces

Introducción:

En ejemplo muestra como realizar un direccionamiento indirecto dentro de una FB (Function Block) programada en Texto Estructurado (ST)

Programación de FB

- Lo primero es crear una FB en Texto Estructurado (ST): Insertar - Bloque de Función - Texto Estructurado

- A esta FB la llamaremos "DirecIndirecto"

787_01- En la FB declaramos las siguiente variables:

- ENTRADA: Valor / Indice

787_02

ENTRADA / SALIDA : Matriz ( Declaramos una Matriz de 20 canales)

- Para asignar el valor de la Matriz, en la pantalla de "Editar Variable" pulsar sobre Avanzado ...

- Aparecerá una nueva pantalla de "Ajustes Avanzados" donde seleccionaremos "Variable de Matriz" y le asignaremos un valor a dicha matriz ( en nuestro caso 20) pero puede ser cualquier otro.

787_03

787_04

787_05

- Una vez asignadas las variables que van a formar la FB pasamos a la programación de la misma.

- La programación consta de una sola línea de programa:

Matriz[indice]:= Valor;

- Se le asginará el valor de entrada Valor a el canal de la Matriz que este apuntando el Puntero, es decir si el valor del puntero es = 10 se escribirá el valor de Valor en el canal 10 de la Matriz

Insertar la FB en el programa

- Una vez creada la FB se va a insertar en el programa para asignar una direccion a las variables y probar su funcionamiento.

- Desde Cx-programmer: Insertar - Llamada de bloque de función

- Seleccionar la FB, en nuestro caso "DirecIndirecto" y le asignamos un nombre, por ejemplo DirecIndirecto_infoPLC

- Asignamos las variables: Valor = D0 // Puntero = D1 // Matriz = D100 (D100 ... D119)

787_06

787_07

787_08

- En el ejemplo moveremos el valor de D0 que es +25 por direccionamiento indirecto al canal de la Matriz que marcael Puntero D1 que en el ejemplo es +6, como la Matriz esta asignada a D100 (de D100 a D119) moveremos el valor de D0 a D106

787_09787_10