Início / Descargas / Schneider Electric / Software & Instrucciones / Unity Pro / Filtrado de una señal analógica mediante una DFB (Unity Pro))

Filtrado de una señal analógica mediante una DFB (Unity Pro))

Hasta el momento hemos visto como resolver el siguiente ejercicio planteado en Siemens, Rockwell y en esté artículo veremos como resolverlo en Schneider con el software Unity Pro.

Se trata de realizar un FB que filtre una señal de entrada analógica de tipo WORD de la siguiente manera:

-Se activará el byte de marcas cíclicas por hardware y se elegirá el bit de marcas que permita un muestreo de la señal analógica de 1s

-El FB deberá tener una entrada de tipo BOOL (que será el bit de ciclo mencionado en el punto anterior) y una entrada de tipo WORD
(correspondiente a la señal analógica que se pretende muestrear)

-El FB tendrá una salida (de tipo REAL) que corresponderá, en cada instante de muestreo, a la media de la muestra actual capturada de la señal analógica junto con sus tres muestras anteriores. Todas ellas deberán irse almacenando en el DB de instancia asociado al FB. Por otro lado, se utilizarán las variables
temporales necesarias.

-El resultado que proporciona el FB (la media indicada) podrá declararse como salida o como variable estática.


Una vez creado nuestro proyecto, para definir una nueva función, vamos al directorio Tipos de FB deribados ->Abrir


Unity_Filtrado-03

 

Creamos un nuevo tipo, dandole el nombre que nos interese, para seguir con la misma filosifica le asigno el mismo nombre que habia realizado en los ejemplos anteriores

 

Unity_Filtrado-04

 

Ahora definimos los tipos de datos, los que són de Entrada/Salida/Entrada-Salida/Públicos y Privados, sumatorio,i,j y el Array de Registros estan declarados como públicos para poder observalos en la Tabla de animación y mostrarlos, de lo contrario podrían declararse como privados

 

Unity_Filtrado-05

 

Una vez, definido los datos, definimos en el directorio secciones, lo que será el código de programación de la función y el lenguaje a utilizar

 

Unity_Filtrado-06

 

Abrimos el editor y ya podemos escribir nuestro código, yo he vuelto a adaptar el que habia realizado, y el único inconveniente que he tenido ha sido con la función WORD_TO_REAL, que si la utilizaba directamente su conversion no generabe el valor correcto, con lo cual primero convierto a DINT y después esté a REAL, esto se puede observar en el primer Registro

 

Unity_Filtrado-07

 

Una vez compilado y generado correctamente ya podemos instanciar nuestra función, para ello abrimos la sección principal e insertamos el código necesario para probarla, la instancia de la función R_TRIG, nos da un flanco positivo de nuestra señal cada segundo.

 

Unity_Filtrado-08

 

Ejecutamos la simulación y observamos que funciona perfectamente, una práctica de como utilizar el simulador la puedes encontrar aquí

 

Unity_Filtrado-09

 

Un Saludo y Aprovecho para deseraros a todos un Feliz y Prospero Año Nuevo 2013

 

Escrito por Jose Manuel Luque / Técnico en Automatización Industrial

Mi Web PLC-HMI-SCADAS