Início / Descargas / Omron / Ejemplos / Escalado de salida analógica mediante Function Block FB en autómata Omron

Escalado de salida analógica mediante Function Block FB en autómata Omron

  • Publicado: 02 Abril 2014
  • Omron
  • Leído Visto: 6752 veces

En este ejemplo se muestra como realizar un escalado de una salida analógica. Las salidas analógicas de los autómatas pueden ser de varios rango: 0-5V, 0-10V, 0-20mA, 4-20mA

Para poder representar en la salida física del autómata estos valores de tensión o corriente, en el programa del autómata debemos operar con valores numéricos, dependiendo de la resolución del autómata tendremos un rango de trabajo u otro.

Por lo general se tiende a trabajar con magnitudes reales de la aplicación (velocidad, temperatura, presión) si por ejemplo estamos controlando la velocidad de un motor hablaremos en Herzios, si estamos controlando la apertura de una valvula hablaremos en %, estas magnitudes hay que convertirlas a valores numéricos que utiliza la salida analógica, esto se consigue mediante el escalado de los valores.

Si por ejemplo utilizáramos el módulo de expansión Omron CP1W-DA041 que dispone de 4 salidas analógicas tiene una resolución de 6000 puntos, esto quiere decir que si la salida elegida es de 0-10 para tener 5 voltios a la salida tendremos que escribir 3000 en el canal de la salida y si queremos tener 10V tendremos que escribir 6000 en el canal de la salida.

 

Con el escalado vamos a convertir las salidas analógicas en rangos de trabajo de magnitudes reales, por ejemplo, si queremos controlar la velocidad de un variador de 0 a 50Hz, cuando al salida valga 6000  tendra una tensión de salida de 10V lo que supondrá una velocidad de 50Hz del variador de velocidad.

 

Pare realizar el escalado de la salida analógica vamos a realizar un bloque de función FB el lenguaje estructurado ST al que llamaremos "Escalado_Salida_Analogica"

Creamos las siguiente variables dentro de la FB

Variables Entrada

Seleccion // INT // Valor de trabajo en unidades reales (Velocidad, presión etc)

MaxIn // INT // Máximo valor de trabajo en unidades reales

MaxOut // INT // Máximo valor de salida analógica (es la resolución de la carta utilizada, en este caso 6000)

Variables Salida

OutDec // INT // Salida Analógica ( Dependerá de la resolución de la carta utilizada en este caso de 0 a 6000)

 

Variables Internas

In_Seleccion // DINT // Conversión a Doble Entero

In_MaxOut  // DINT //  Conversión a Doble Entero

In_OutDec  // DINT // Conversión a Doble Entero

 

Este será el código de la FB

 

(*Convertir los datos de entrada de un canal a doble canal para operar con ellos*)

In_Seleccion:=INT_TO_DINT(Seleccion);

In_MaxIn:=INT_TO_DINT(MaxIn);

In_MaxOut:=INT_TO_DINT(MaxOut);

(*Se realiza el calculo*)

In_OutDec :=(In_MaxOut* In_Seleccion)/50;

(*Convertir el valor de doble canal a un unico canal*)

OutDec:=DINT_TO_INT(In_OutDec);

 

Una vez creada la FB podemos utilizarla para realizar el escalado de salida de manera sencilla

En el ejemplo si introducimos los siguiente valores:

D10=50 obtendremos en la salida analógica 6000 = 10V

D11=25 obtendremos en la salida analógica 3000 = 5 V