Usuario:984 M18004

De Wikifab

TRABAJO 1: SENO RUIDOSO

INTERFASE CON EL USUARIO


Imagen:Interfase_Gráfica.PNG

En la imagen superior se muestra la interfase gráfica con la que interactúa el usuario, se han definido características de la curva Seno, las cuales son definidas por el usuario mediante botones.


Imagen:TIPO BOTON.png

Los botones correspondientes a Nº Ciclos, Amplitud del Seno, Fase y Amplitud del Ruido corresponden a botones tipo numéricos. El botón para cambiar el color de la línea también se muestra en la imagen de arriba junto al boton numérico simple; los botones Graficar, Borrar y Salir son botones tipo comando. Finalmente la gráfica es estática.

GENERACIÓN DEL CÓDIGO EN C


Imagen:GENERAR CÓDIGO.png

Una vez terminada la interfaz gráfica le damos a generar todo el código, lo que nos da el esqueleto del código en C que podemos modificar, empezamos por declarar las variables:

Imagen:Variables.PNG

Ahora procedemos a programar los botones comando de Graficar, Borrar y Salir. Empezamos con los más sencillos que son los de Borrar y Salir, así para borrar lo hacemos con el siguiente código:

Imagen:BORRAR.PNG

También se ha agregado la opción de que al hacer click derecho se muestra un mensaje indicando la función del botón.

Para el botón salir, tenemos la siguiente configuración:

Imagen:SALIR.PNG

Finalmente vamos a ver la configuración del botoón Graficar, el objetivo de la práctica es generar una onda Senoidal con ruido, para eso vamos a generar dos vectores de 1000 puntos cada uno, en un vector almacenamos el valor del Seno, mientras que en el otro almacenamos el ruido, por lo que si queremos la gráfica de un "SENO RUIDOSO" creamos un nuevo vector que es la suma del vector Seno y del vector Ruido. Para esto empleamos un lazo for. Los parámetros para graficar el Seno son definiddos por el usuario mediante los botones numéricos insertados en la interfaz gráfica mencionada al principio, por lo que para llamarlas usamos el GetCtrlVal, esto hay que hacerlo para las cinco variables definidas por el usuario que son: Nº Ciclos, Amplitud del Seno, Fase, Amplitud del Ruido y el Color.

Imagen:GRAFICA SENO.PNG

Adicional se ha agregado la opción para mostrar la ayuda haciendo click derecho sobre el botón para ver su función.

RESULTADO FINAL


Imagen:SENO RUIDOSO.JPG

Se muestra la apariencia final del programa, como podemos observar para que se aprecie mejor se definió que los incrementos de la amplitud de ruido sean pequeños. A continuación se adjunta el fichero que contiene el programa.

Media:TRABAJO 01.rar



TRABAJO 2: Grabar y mostrar Set de Datos

Imagen:INTERFASE_M18004.PNG

En la imagen superior se muestra la interfase gráfica con la que interactúa el usuario, en el stripChart se muestra la variación de la temeperatura con el tiempo, además en la parte inferior un Graph que muestra los datos guardados, cosa que explicaremos más adelante,se ha configurado dos alarmas: una superior y una inferior cuyos valores pueden ser modificados por el usuario mediante un dial. Adicional se ha añadido otro dial que permite variar la frecuencia con la que se generan los datos, esto lo realizamos modicidon el aributo de frecuencia en el timer. También cuenta con un botón numérico que muestra la temperatura instantánea de la gráfica.

Para empezar se declaran las variables y los vectores que se necesitan dentro el programa y tambien los static char para utilizar la escritura y lectura de ficheros. En el switch del BINARYSWITCH se programa un condicional if para grabar el estado del arranque dentro una variable.

Por medio de la instrucción "GetCtrlVal" se lee los valores definidos por el usuario en la interfase y para luego asignarlos a los variables de frecuencia del timer y las variable de los límites superior e inferior que reigen el comportamiento de las alarmas.

A través de "SetCtrlAttribute" se puede regular la velocidad de visualización sobre el Stripchart cambiando la frecuencia de muestreo en el timer.

Por medio de la función Rand se generan los datos aleatorios, los cuales se guardan en un vector de 3 dimensiones donde adicional a lo anterior se añade los valores de los límites superior e inferior en las correspondientes variables. Luego por medio de las instrucciónes "PlotStripChart" y "SetCtrlVal" se visualizan los puntos sobre el grafico con los dos limites y el valor instantaneo de temperatura. Cuando la temperatura instantánea supera el valor inferior o superior definido por el usuario, se enciende las alarmas.

Dentro el switch del botón GRABAR, para registrar los datos en el momento que se hace clic sobre el boton, se utiliza la instrucción "ArrayToFile" que quiere en input un vector donde estàn los datos, los cuales están grabados en el vector wave que se puede observar en el código. A continuación se muetsra la interfase para guardar el set de datos:

Imagen:GRABAR M18004.JPG

De la misma manera en lo switch de MOSTRAR se usa "FileToArray" que hace la función inversa, transfieren los datos del fichero seleccionado a un vector (en el código definido como waveload), el cual se grafico a través de la instrucción "PlotY" y un ciclo for que alimenta una variable contador para contar solo el numero de datos diferente de cero. A continuación se muestra la interfase para abrir el fichero y luego como se grafican en el panel.

Imagen:MOSTRAR M18004.JPG

Imagen:GRAFICA M18004.JPG

Se adjunta fichero con los archivos correspondientes.

Media:Tarea 2 M18004.rar


TRABAJO FINAL: NIVEL DE LÍQUIDO EN UN TANQUE

Se pide realizar el diseño de la interfaz Hombre-Máquina que se muestra a continuación:

Imagen:Deposito.jpg

La intefase hombre maquina a diseñar debe permitir lo siguiente:

  • Funciones de control que simulen carga y descarga del tanque con caudales de entrada y salida distintos.
  • Representación del nivel de líquido contenido para cada instante de tiempo.
  • Contar con botones característicos de una consola de mando, marcha, parada de emergencia, etc.
  • Funcionamiento automático de bomba y manual de descarga de la válvula, operada desde el HMI.

En la imagen de abajo se muestra la propuesta de la interfase hombre máquina hecha en LabWindows CVI, se cuenta con un tanque de capacidad de 300 galones, el cual es alimentado por una bomba que puede entregar un caudal variable de 0 hasta 10 galones por minuto, mientras que en la parte inferior derecha cuenta con una válvula que simula el flujo del líquido contenido en el tanque hacia otros procesos, con un rango de caudal igual al de la Bomba. Podemos observar también que se han fijado dos alarmas mediante avisos por Led una definida como límite superior y otra como límite inferior; estos valores límites pueden ser modificados por el usuario mediante dos diales que se encuentran a la izquierda del tanque.

Imagen:INTERFASEHIM M18004.JPG

En la parte de abajo a la izquierda se muestra 6 botones (F1 hasta F7), los cuales han sido programados para que cada uno de ellos de una combinacion de caudal entrada-salida distinto, que es un de los requisitos del enunciado. También se observa un botón de parada de emergencia, el cual detiene por completo el funcionamiento del sistema, apaga la bomba, cierra la válvula de salida y además bloquea los demás botones a excepción del switch de Rearme, el cual permite volver a poner en marcha al sistema, ya que al activarlo se desbloquean los demás botones.

A continuación se muestra el resultado final, que es la interfaz con la que interactúa el usuario, como se puede observar las distintas funciones proveen disttinas relaciones de caudal de entrada y de salida, y se muestra en cada instante el nivel de líquido contenido en el tanque.

Imagen:HIM M18004.JPG

Para mayor detalle del código y del funcionamiento del sistema, se adjunta fichero con el trabajo completo.

Media:M18004 FINAL.rar

Herramientas personales