Escalar entrada analogica en Twido como la FC105 de Siemens


Debido a una consulta de un compañero en el foro InfoPLC de como escalar una entrada analogica como lo hace la función de Siemens FC105, he decidido probar como lo haría.

El primer paso sería saber que es lo que hace la función FC105, si vamos a la ayuda nos muestra el siguiente mensaje:La función "Escalar valores" (SCALE) toma un valor entero en la entrada IN y lo convierte en un valor real, convirtiéndolo a escala en un rango comprendido entre un límite inferior y un límite superior (LO_LIM y HI_LIM). El resultado se escribe en la salida OUT. La función SCALE aplica la fórmula siguiente:

OUT = [ ((FLOAT (IN) – K1)/(K2–K1)) * (HI_LIM–LO_LIM)] + LO_LIM

Las constantes K1 y K2 se aplican de forma diferente, dependiendo de si el valor de entrada es BIPOLAR o UNIPOLAR.

·    BIPOLAR:    Se supone que el valor entero de entrada debe estar entre
        -27648 y 27648, por lo tanto, K1 = -27648.0 y K2 = +27648.0

·    UNIPOLAR:    Se supone que el valor entero de entrada debe estar entre
        0 y 27648, por lo tanto, K1 = 0.0 y K2 = +27648.0

Voy a desarrolar un ejemplo suponiendo que tengo una entrada Unipolar.

Partimos de la base que tenemos creado un proyecto en TwidoSuite y el primer paso será configurar la entrada analogica ya sea 0-10V o 4-20 mA, seleccionamos en ambito personalizado y damos los valores Minimos y Máximos, yo para seguir el ejmplo de la FC105 doy el valor máximo de 27648


2.- Una vez configurado nuestra entrada, pasamos a realizar la programación, yo he creado una subrutina Scalar FC105 aplicando la fórmula mencionada anteriormete y seria como la siguiente image

3.- Ahora desde nuestro programa llamamos a la subrutina SR0 y pasamos los valores de Hi_LIM y Lo_LIM

4.- Por último para probar su funcionamiento vamos a crear la simulación, a efectos de simulación he cambiado la entrada analogica %IW1.0 por la %MW50 para poder modificar su valor en la tabla de animación

Y la función FC105 de siemens nos daria unos resultados como los siguientes:

29-Julio-2012