Usuario:984 M18131

De Wikifab

Contenido

Usuario M18131

Imagen:frm2.jpg


Fernando Ramonet Marqués

Ingeniero Industrial y de Sistemas por la Universidad de Sonora (2011-2016); Especializado en Pruebas No Destructivas; 26 años.

linkedin

Proyecto Final

Archivos

Media:M18131_PF.rar

Planteamiento del problema

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


Imagen:Deposito.jpg

Debe contener lo siguiente:

  • una función de control que simule la carga y descarga del depósito con caudales de entrada y salida diferentes;
  • representación de al menos el valor entero del contenido del depósito, con valores máximo y mínimo variables;
  • representación de una consola típica de mando, con pulsadores de marcha y paro, emergencia, rearme;
  • funcionamiento automático de bomba y manual de descarga de la válvula, operada desde el HMI.


Descripción del Proyecto

Desarrollar una interfaz hombre-máquina para un tanque de almacenamiento que se encuentra conectado en paralelo a varios tanques de la misma capacidad cuya función es abastecer a una línea de llenado de autotanques y semirremolques tipo pipa en una terminal de almacenamiento y distribución de combustible.


Imagen:Almacenamiento.jpg

Observamos los tanques donde se guarda el combustible.


Imagen:terminal de llenado.png

En este diagrama podemos observar el proceso y los distintos factores que conforman el llenado de los equipos de distribución de combustible. En este caso en particular, nos estamos enfocando en el llenado del tanque G.

Tanque G

El "Tanque G" tiene una capacidad de 100,000 litros para poder abastecer a la línea de llenado.


Imagen:llenado12345.jpg


En esta imagen podemos observar como se llena una docena de equipos a la vez. Este proyecto es meramente ilustrativo por lo que no se va a considerar el llenado de equipos, solamente el control de llenado del tanque previo a la línea de llenado.


Control de Nivel

El nivel de líquido se controla por medio de sensores, como se muestra en el siguiente diagrama.


Imagen:control de nivel de comb.png

Realizaremos la interfaz para el tanque que se muestra en la imagen.


Interface

A continuación se presenta la interfaz del programa de gestión de llenado del "Tanque G"

Imagen:interfaz2_tf_m18131.jpg


En la parte superior izquierda contamos con los principales comandos:

  • Encendido (On/ Off): Arranca o Para el llenado del tanque.
  • Vaciado Manual (On / Off): Para la bomba, los sensores de monitoreo de nivel y vacía el tanque.
  • Emergencia (Push Button): el paro de emergencia cierra la válvula de salida y apaga el motor, haciendo del tanque un sistema cerrado.
  • Rearme(Push Button): el botón rearme reinicia la marcha después de haber utilizado el paro de emergencia.


En la parte inferior izquierda contamos con un Gauge que te permite regular la velocidad de la simulación.


En la parte central tenemos los reguladores de nivel.

En la parte derecha tenemos una representación gráfica del tanque, que muestra los caudales de entrada y salida, cuenta con indicadores tipo led que muestran cuando se alcanzan los niveles máximos o mínimos previamente establecidos.


A continuación se puede observar la interfaz en funcionamiento:

Imagen:interfazenfunc_tf_m18131.jpg


Código

A continuación se presenta el código contenido en el archivo "proyecto final.c"


Imagen:codigo1_tf_m18131.jpg


Imagen:codigo2_tf_m18131.jpg


Imagen:codigo3_tf_m18131.jpg


Imagen:codigo4_tf_m18131.jpg


Imagen:codigo5_tf_m18131.jpg


Conclusión

Conforme ha ido evolucionando la tecnología también lo ha hecho la industria, por lo que cada día se automatizan más los procesos y se utilizan cada vez más los PLC´s y las interfaces hombre-máquina (HMI). Con la 4ta revolución industrial (industria 4.0) cada vez se tiene más control en las empresas. En los próximos años aparecerá la industria 5.0, la cual aprovechara al máximo todos los recursos disponibles como en internet de las cosas (IOT) y distintos medios de conexión a red. Como ingenieros debemos de estar preparados para poder desarrollar la tecnología que la industria nos va a demandar, por ello es de vital importancia el aprender lenguajes de programación y tener el conocimiento para poder automatizar máquinas y procesos industriales.

Tarea 2: Sistema de Adquisición de Datos Generados

Realización de la siguiente interfaz de usuario de un sistema de adquisición de datos generados en tiempo real.


Imagen:T4_86304.jpg


Se nos solicitan las siguientes modificaciones: 1) ¿Cómo se analiza un "set" de datos de forma estadística?

2) ¿Cómo se realiza el volcado de un "set" de datos a un fichero, y como se puede recuperar ese "set" de datos en un gráfico de un panel diferente?

Una vez, ajustándonos a la solicitud del profesor nos queda el siguiente display.

Imagen:984m18131_t2_interfase.jpg


Ingresamos el siguiente código: Imagen:984m18131_t2_var.jpg


Con los siguientes CALLBACKS:

Imagen:984m18131_t2_c1.jpg


Imagen:984m18131_t2_c2.jpg


Imagen:984m18131_t2_c3.jpg


Ejecución del programa Ejecutamos el programa y le ponemos "Guardar Set de Datos", nos aparece la siguiente pantalla para guardarlo en tus documentos. Se muestra en la siguiente imagen:

Imagen:984m18131_t2_probando.jpg


Ahora para cargarlos presionas "Mostrar Set de Datos" y lo cargas desde tus documentos. Se muestra en la siguiente imagen:


Imagen:984m18131_t2_load.jpg




Y finalmente al cargarlo, nos queda:

Imagen:984m18131_t2_pantallaf.jpg



Archivo .Rar: Media:M984_M18131_t2.rar

Tarea 1

Realización de la siguiente interfaz de usuario para la representación de ondas de tipo senoidales. Imagen:sd5454fsdfsf.jpg


Al ejecutar este programa graficador de ondas senoidales con ruido tienes que ingresar el número de ciclos, la amplitud y el ruido deseado. Como accesorio adicional, cuenta con la opción de poder fijar un color para cada curva. A continuación se presenta el código:

  1. include <analysis.h>
  2. include <cvirte.h>
  3. include <userint.h>
  4. include "DEBER 1.1.h"

static int panelHandle; double seno [1000]; double ruido [1000]; int ciclos; int noise; int i; double SenoRuidoso [1000]; int color;

int main (int argc, char *argv[]) { if (InitCVIRTE (0, argv, 0) == 0) return -1; /* out of memory */ if ((panelHandle = LoadPanel (0, "DEBER 1.1.uir", PANEL)) < 0) return -1; DisplayPanel (panelHandle); RunUserInterface (); DiscardPanel (panelHandle); return 0; }

int CVICALLBACK SALIR (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_COMMIT: QuitUserInterface (0); break; } return 0; }

int CVICALLBACK GENERAR (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_COMMIT:

GetCtrlVal (panelHandle, PANEL_NUMERIC_CICLOS, &ciclos); GetCtrlVal (panelHandle, PANEL_COLORNUM_COLORES, &color); GetCtrlVal (panelHandle, PANEL_NUMERIC_Amplitud, &noise); SinePattern (1000, 5, 0.0, ciclos, seno); WhiteNoise (1000, noise, -1, ruido); for (i=0; i<=999; i++)

{

SenoRuidoso[i]=seno[i]+ruido[i]; }


PlotY (panelHandle, PANEL_GRAPH_SENONOISE, SenoRuidoso, 1000, VAL_DOUBLE, VAL_THIN_LINE, VAL_EMPTY_SQUARE, VAL_SOLID, 1, color); break; } return 0; }

Al ejecutar el programa nos queda la siguiente pantalla:

Imagen:cgsd454g.jpg

Archivo.rar: Media:ffgdfggfd.rar

Herramientas personales