Usuario:984 M18160

De Wikifab

Contenido

TRABAJO 1

Para crear la interfaz gráfica de este problema, se ha seguido los siguientes pasos:


1º Crear un nuevo "User Interface"
2º Añadir los controles al panel, que incluye: 2 Numeric , 1 Color Numeric y 2 Command Botton.
3º Configurar los argumentos y escribir el código.

Se ha empleado las funciones GetCtrlVal para hacer el llamamiento de los valores de ciclos y amplitud, modificables por el usuario. También, la función GetCtrlVal permite al usuario poder escoger el color de la línea de la gráfica senoruidoso, y se escribe antes de la línea de PlotY.(El color de la gráfica en este caso es un "int" y es declarado al comienzo de todo el código).
Se ha programado también que al pinchar el botón "ADD WAVES" con el click derecho de la ratón aparecerá el mensaje de ayuda que explicará la funcionalidad de dicho comando.


http://wikifab.dimf.etsii.upm.es/wikifab/images/f/fc/TRABAJO1.rar --984 M18160 22:27 24 nov 2018 (CET)



TRABAJO 2

Para este ejercicio, se ha desarrollo los siguientes pasos:


.uir

Imagen:Ilustracion1_984M18160.PNG
.c

En las variables globales, declaro 2 controladores de panel (PanelHandle y PanelHandle2).
Luego cargo el panel por:
Imagen:imagen2_984M18160.png
Siendo PANEL y PANEL_2 los nombres de los paneles.
A la entrada, sólo se muestra el panel principal PANEL con el orden:
DisplayPanel (panelHandle);
En el cuál, se permite visualizar un StripChart con 3 curvas, una aleatoria, otra constante y otra ajustable por el usuario mediante el NUMERICDIAL.
Por encima de la gráfica se ha añadido una señal LED que se enciende (luz roja) cuando el punto de la curva aleatoria supera en ese instante al valor determinado por el usuario.
Existe también, un command button (GRÁFICA) en el panel principal que permite acceder al panel segundo mediante el siguiente llamamiento: DisplayPanel (panelHandle2);
En el cuál, aparece 4 command button.
Cuando clickea (primer click) al botón “Grabar Set Dato” el programa empezará a guardar valores generados del vector aleatorio en un archivo .txt durante un periodo de tiempo que depende del usuario cuándo clickea por segunda vez el mismo botón (set de datos).
Para ello, se ha definido primero en la parte de variables globales un parámetro llamado “recordState” igual a 1 de entrada. Y en la parte del “timer” se ha escrito:
Imagen:imagen3_984M18160.png
Cuya función es escribe el valor en la posición 0 del vector 'valor' en el archivo.
Y posteriormente, en el control CALLBACK grabar, le decimos que abra el archivo .txt y empieza a escribir los valores en él, al mismo tiempo que cuando el usuario clickea el botón aparecerá un mensaje que informa el estado de la grabación.
Si el usuario llama por segunda vez la función “grabar”, el programa detectará del cambio y cerrará la escritura en el archivo.
El segundo botón de dicho panel tiene la función de volver a leer el “set de datos” escritos en el .txt. pero para que pueda interpretarlo se ha declarado un vector v de dimensión 1, y se ha creado un bucle para que lea los datos:
Imagen:imagen4_984M18160.png
Y finalmente, pinta la curva con el set de datos en el segundo StripChart.
Destaca mencionar que el programa sobrescribe el set de datos en el archivo para cada llamamiento de “comienzo grabación-parada grabación”, no hace una escritura continuada de datos.
El tercer y el cuarto botón sirven para volver al primer panel y para salir del programa parando todos los paneles.

http://wikifab.dimf.etsii.upm.es/wikifab/images/7/74/Ejercicio2.rar



TRABAJO final

Imagen:Deposito.jpg

Se pide realizar un Interfaz Hombre-Máquina (HMI) similar a la ilustrada anteriormente, y con las siguientes condiciones de trabajo:
1. Plantear una función de control que simula la carga y descarga del depósito con caudales de entrada y salida diferentes.
2. Representar al menos el valor entero del contenido del depósito, con valores máximos y mínimos variables.
3. Representar consola típica de mando, con pulsadores de marcha y paro, emergencia, rearme.
4. Funcionamiento automático de bomba y manual de descarga de la válvula, operada desde el HMI.



Los requisitos establecidos para el diseño se listan a continuación:
- Para comenzar a funcionar, el sistema se tiene que tener el interruptor de encendido activado en ON. La desactivación de este interruptor implica una parada del sistema que no necesariamente desactiva el estado de la válvula o el de la bomba.
- El sistema dispone de una bomba que funciona automáticamente cuando detecta que el nivel de agua del depósito es igual o inferior al nivel mínimo (nivel_min) configurado por el usuario. Y se cierra cuando el sensor de máximo emite señal (nivel_max).
- La válvula es controlada por el usuario mediante un binaryswitch.
- Una vez activado el estado de emergencia, se cierra el suministro de agua (standby_bomba=0), se apaga la válvula (valvula=0) y se desactiva el encendido. Todos los interruptores se quedarán "bloqueados" debido a este estado.
- El estado de rearme es la única forma de "desbloquear" el estado de emergencia y poner a disposición de nuevo, el encendido, la bomba y la válvula.
- Se dispone también, de dos contadores de caudal, uno para el caudal de entrada al depósito (caudal_entrada) y el otro para el caudal de salida (caudal_salida).


Las variables creadas para este interfaz son mostradas a continuación:

- int encendido; /* inicio del sistema*/
- int nivel_max; /*nivel maximo configurado por el usuario*/
- int nivel_min; /*nivel minimo configurado por el usuario*/
- int valvula; /*solo 1 o 0, 1 es válvula encendida y 0 indica la válvula apagada*/
- int caudal[2]; /*caudal [0] es el caudal de entrada, caudal [1] es el caudal de salida*/
- int nivel; /* nivel de agua en cada intervalo de tiempo*/
- int standby_bomba; /*control de la bomba*/
- int emergencia;
- int caudal_entrada;
- int caudal_salida;

Segmento 1 del código: Condiciones iniciales de las variables

Imagen:Condiciones iniciales 984M18160.JPG

Segmento 2 del código: Emergencia

Imagen:Emergencia 984M18160.JPG

Segmento 3 del código: Rearme

Imagen:Rearme 984M18160.JPG

Segmento 4 del código: Rearme

Imagen:Encendido 984M18160.JPG

Segmento 5 del código: Bomba y Válvula

Imagen:BombaValvula 984M18160.JPG

Segmento 6 del código: Timer

Imagen:Timer_984M18160.JPG

Interfaz hombre máquina

Imagen:HMI_984M18160.JPG


Media:HMI 984M18160.RAR

Herramientas personales