CAPITULO IV. RESULTADOS DE LA INVESTIGACIÓN. 1.- FASES DE LA INVESTIGACIÓN. FASE 1. Definición de las especificaciones. FIGURA 19 Modulo Principal Segundo Modulo Tercer Modulo FUENTE: RIVERA (2003) Se desarrolló un sistema prototipo de simulador de procesos para la medición y control de nivel, utilizando un microcontrolador PIC16F877, como cerebro principal de la tarjeta de control del mismo. El sistema esta formado por tres módulos ver (figura 9): el módulo principal que lo constituye el computador (PC), el cual poseerá el softwa re de control de todo el sistema de simulación. Mediante este software se podrá activar o desactivar el funcionamiento de la tarjeta de control, como también se 144 145 visualizará la simulación, casi en tiempo real, del proceso de control de nivel o llenado de un tanque. El segundo módulo es el Interfaz de comunicación entre el PC y el microcontrolador PIC, el cual se realiza serialmente bajo el protocolo RS232. Tercer módulo, Se tiene la tarjeta de control capaz de monitorear y controlar el nivel de un tanque, utilizando un censor de ultrasonido para la medición del mismo. Este envía una señal o nivel de tensión a la tarjeta controladora, la cual entra en un canal de entrada convertidor análogo / digital que posee el microcontrolador, y de acuerdo con los parámetros de nivel (set point) escogido desde el computador la tarjeta controladora enciende o apaga una bomba de llenado o vaciado hasta que se cumpla con los requisitos de la simulación. La tarjeta interfaz posee una pantalla de cristal líquido LCD para la visualización del nivel actual de la medición del ultrasonido y si la bomba está en encendida o apagada. La información del estado de nivel o dato censado por el ultrasonido y el estado de la bomba de llenado se envía serialmente hacia el PC a través del interfaz serial a una velocidad de transmisión es de 9600 bits por segundo. El computador recibe la información de la simulación mediante el software desarrollado en Visual Basic (versión 6.00), éste las representa en forma gráfica en el monitor. El sistema recibe palabras de comando desde el computador a la velocidad de transmisión y recepción mencionada anteriormente. 146 De acuerdo a las diferentes palabras de comando, el sistema calcula y muestra gráficamente el estado de la simulación y de acuerdo al nivel de llenado o vaciado escogido, envía el comando de encendido o apagado de la bomba de llenado o vaciado. FASE 2. Esquema general del hardware. FIGURA 20 COMPUTADOR MONITOR Computador Interfaz MAX232 PIC16F877 BOMBA DE VACIADO SENSOR DE NIVEL TANQUE FUENTE: RIVERA (2003). LCD BOMBA DE LLENADO 147 Se puede notar en el diagrama de bloques funcionales, que el módulo Principal Computador es el que controla el flujo de información mediante un software de comunicación entre el microcontrolador PIC16F877 y el mismo a través del módulo interfaz (MAX232), el cual es un intermediario que controla la conversión de las señales de la transmisión y recepción. El flujo de información el bidireccional, ya que el computador será capaz de ordenar al PIC el comienzo y el fin de entrega de datos del proceso de simulación y control de nivel. Monitor: es una pantalla donde se visualizan los diferentes procesos de simulación en el módulo principal o PC, tanto el vaciado del tanque como el llenado del mismo. LCD: es una pantalla de cristal líquido por el cual se visualizarán las etapas del proceso y la información del nivel del líquido contenido en el tanque proveniente del circuito sensor de nivel, en el módulo de control. Bomba de llenado: es el actuador o circuito de potencia encargado del encendido y apagado de la bomba de llenado del tanque. Bomba de vaciado: es igual al anterior pero con la función de encender y apagar la bomba de vaciado del tanque. Sensor de nivel: es un transductor detector de distancia, el cual traduce dicha distancia, a un nivel de tensión DC, la tecnología utilizada por este sensor es el ultrasonido. Tanque: es el recipiente utilizado en el simulador al cual se le medirá el nivel tanto en el proceso de llenado como en el proceso de vaciado del mismo. 148 FASE 3. Ordinograma general del sistema. A continuación se presenta el ordinograma general del sistema de simulación de procesos de medición de nivel. FIGURA 21 INICIO 1. 2. 3. 4. MENÚ FIJAR NIVEL SIMULACIÓN MANUAL SALIR OPCIÓN OPCION=1 SI SET POINT NO SI OPCION=2 SIMULADOR NO OPCION=3 SI NO NO OPCION=4 SI FIN FUENTE: RIVERA (2003) MANUAL 149 El software general del sistema comienza con la iniciación de los registros y puertos y con el despliegue del menú Principal. En este menú se tienen 4 opciones: - La Opción=1 constituye la bifurcación del sistema al bloque de un procedimiento denominado SET POINT, el cual no es más que la rutina de fijación del nivel de referencia inicial del simulador. Al salir de esta opción el programa retornará al menú Principal. - La Opción=2 es el procedimiento en el cual el sistema comienza el proceso de simulación, en el cual se realiza la comunicación serial de la información que fluirá a través del módulo interfaz entre el PC y el microcontrolador. Para esta opción se visualizará en el monitor el estado del nivel del tanque y el set point escogido por el usuario. - La Opción=3 es una bifurcación del sistema a modo manual, donde el usuario tendrá la posibilidad de leer la información procedente del sensor de nivel con solo presionar “click” un botón en el monitor. También podrá encender o apagar la bomba desde el PC manualmente. - La Opción=4 es la opción de salida del sistema . 150 FASE 4. DISEÑO DEL HARDWARE DEL SISTEMA. Para el diseño eléctrico y electrónico se consultó las referencias de las bibliografías de los diferentes componentes según sus fabricantes, asegurando así la correcta utilización de los elementos y al mismo tiempo conocer los niveles aceptables que estos puedan soportar referente a los parámetros más importantes, como lo son el voltaje y la corriente. Se calcularon las especificaciones de los circuitos necesarios a utilizar en cada etapa del diseño de control, tomando en cuenta los elementos incluidos en esta fase para la protección y buen desempeño de los componentes. A continuación se explica cada una de etapas y componentes del diseño electrónico de la modulo interfaz y el módulo de control mostrado en el anexo X2: Modulo interfaz. Se realiza a través del MAX232, el cual es un circuito integrado que permite realizar la comunicación serial vía RS232, el cual está sirve de interfaz serial con el computador. Este transforma las señales de niveles TTL (0 y 5 VDC) a niveles RS232 (+12 y -12 VDC) respectivamente y viceversa, de RS232 a TTL. La velocidad de transmisión y recepción es de 9600 baudios o bits por segundo, con envío de un bit de ‘star’ o comienzo, 8 bits de datos y un bit de ‘stop’ o parada. El microcontrolador PIC16F877 controla la transmisión por la salida RC6 y la recepción por la entrada RC7. 151 Módulo de control. A continuación se explicarán por partes los diferentes circuitos que conforman el módulo de control. Circuito de reloj y reset del microcontrolador PIC16F877. El circuito de reloj está formado por un cristal de 20 MHz, utilizado para la sincronización de los ciclos de las operaciones de lectura y escritura del Microcontrolador PIC16F877. El circuito de reset está formado por un condensador (0.1uF electrolítico), dos resistencias, una de 10K ohmios y otra de 470 ohmios, y un diodo (1N4148). El PIC16F877 se coloca en estado de reset cuando en su entrada MCLR (master clear reset) está a un nivel lógico “0”; situación que ocurre automáticamente cuando se energiza el sistema, ya que el condensador está descargado o puesto a un nivel lógico “0” a través del diodo, éste comienza a cargarse a través de la resistencia de 10K a un nivel de tensión de 5 voltios o nivel lógico “1”, quedando el microcontrolador listo para operar en modo normal, hasta que sea puesto en estado de reset manualmente mediante el pulsador que descarga al condensador a tierra. El diodo 1N4148 es un diodo de conmutación rápida, el cual se encuentra polarizado inversamente y su función es la de descargar al condensador hacia la fuente en forma rápida y directa y no a través de la resistencia de 10K. Circuito de visualización. Está constituido por una pantalla de cristal líquido (LCD) de 2 líneas y 16 caracteres por línea. La comunicación con el microcontrolador es de 8 bits de datos que se 152 enumeran del menos al más significativo como D0, D1, D2, D3, D4, D5, D6 y D7. Estas líneas son conectadas al puerto B del PIC16F877 (RB0, RB1, RB2, RB3, RB4, RB5, RB6 y RB7) respectivamente. También posee un bus de control de pantalla el cual es conectado al puerto E del PIC RE0, RE1 y RE2, las cuales se programarán como salidas del PIC para controlar a la LCD. Estas se conectan respectivamente a las entradas nombradas como RS, R/W y E. Donde si RS=0 es dato, y si RS=1 es control. Si la entrada R/W=0 es lectura de la LCD y si R/W=1 el escritura en la misma. La entrada E(enable)=0 la LCD permanece inhabilitada y si E=0 está habilitada. Circuito sensor de nivel de ultrasonido. El sensor de ultrasonido es elaborado por la Corporación Senix. Sus características principales son: alimentación de entrada igual a 12 VDC. Su señal de salida: 10 VDC cuando no hay un objeto frente del mismo, en rango aproximado desde 20 centímetro delante hasta 1,5 metros, es deicr mide 1,3 metros de distancia y envía una señal de nivel de tensión DC entre 0 y 10 voltios. Como podemos ver en nuestro diseño se realiza un divisor de tensión a la salida el primer amplificador operacional para obtener un nivel de tensión de entrada al canal análogo/digital del PIC no mayor de 5 voltios DC cuando se produzca el nivel máximo de salida del sensor (10VDC). Circuitos de potencia. Para los circuitos de salidas de potencia se utilizaron optotriacs (ECG3048), para el cebado de triac (ECG5608), los cuales energizan con 110 VAC a las bombas de llenado y vaciado. 153 FASE 5. Adaptación entre el hardware y el software. En esta etapa del estudio se analizan y determinan diferentes mecanismos para que exista la comunicación necesaria entre el hardware y el software previamente seleccionados es decir, se especifican las instrucciones vía software que van a ser utilizadas garantizando que la información que entra y sale se encuentra en perfecto estado. Se estudió la compatibilidad entre el hardware y el software desarrollado. De acuerdo al número de circuitos de entrada y salida del sistema, se hace necesario que el microcontrolador sea capaz de tener varias líneas de entrada y de salidas. Para establecer la comunicación entre el prototipo y el computador se utilizó el puerto serial RS-232. Para la transmisión de los datos se utilizó la versión profesional de Visual Basic 6.0 bajo Windows, la cual incluye un controlador personalizado denominado “COMUNICACIONES”, que permite establecer una comunicación serie entre computadoras, basados en el estándar RS-232 de una forma rápida y sencilla. Para realizar esta comunicación se llevaron a cabo los siguientes pasos; v Se estableció el puerto a utilizar; para realizar esta operación se le asignó a la propiedad Commport de MSComm1 el valor de 2; MSComm1.Commport=2 v Se abrió el puerto de comunicación; se le asigno el valor “True” a la propiedad Portopen de MSComm1; MSComm1.Portopen=True. 154 v Se establecieron las características de comunicación. Para ello se asignó la propiedad Settings de MSComm1, los valores que definan las mismas; esto es velocidad de transmisión en baudios, paridad, número de bits por carácter y número de bits de parada. (9600 baudios, paridad ninguna, ocho bits por carácter y 1 bits de parada): MSComm1.Settings = (9600, N,8,1). Para enviar los datos al puerto de comunicación se realizó por medio de la propiedad OutPort de MSComm1. Esta propiedad permite escribir caracteres en el buffer de transmisión. MSComm1.OutPut = Datos. Enviados $. Cabe destacar que el puerto serial RS-232 se escogió por las siguientes características. Velocidad: El puerto serial puede manejar de 110 a 256000 Bps, lo cual lo hace óptimo como alternativa de uso, ya que el sistema debe poseer una velocidad de respuesta inmediata. Inmunidad al Ruido: El puerto maneja niveles de voltajes de -12 voltios para un uno (1) lógico y 12 voltios para un cero (0) lógico, lo que hace que el puerto sea estable con respecto a estímulos al sistema. Conectores: Para las comunicaciones serie los ordenadores tipo PC disponen de hasta cuatro (4) puertos seriales identificados como: COM1, COM2, COM3, y COM4, los cuales son conectores machos que pueden tener 9 o 25 pines de conexión. Interconexión: El puerto serial para su interconexión sólo necesita tres (3) conectores, lo cual lo hace sencillo y de fácil conexión con cualquier sistema externo. 155 FASE 6. ORDINOGRAMA MODULARES Y CODIFICACIÓN DE LOS PROGRAMAS. Sobre la base de los diagramas generales y los diagramas de flujo se crea un software codificado con las instrucciones propias para el microcontrolador, cuya base de programación es el lenguaje assembler para microcontroladores PIC serie 16. El programa editor utilizado es el MPLAB versión 5.31. El software de control del computador es realizado en Visual Basic versión 6.00. Los diagramas de flujo de las principales rutinas del software de control del microcontrolador PIC y del computador se muestran en los anexos XX1a y XX1b. La codificación de los software de control del microcontrolador PIC y del computador se muestran en los anexos XX2a y XX2b. DEPURACIÓN DEL SOFTWARE. La depuración del software se llevó a cabo separándolos en dos como lo son el programa del microcontrolador PIC16F877 y el del computador hecho en Visual Basic, ya que la depuración de cada programa es diferente, aunque luego de terminada la depuración individual se realizó una global para poder alcanzar los objetivos previstos en esta investigación; estas dos partes se explicarán a continuación. 156 • Software del PIC. Una vez realizado dicho programa se procedió a su depuración y para esto se corrió el programa en frió, usando las herramientas que posee el lenguaje de programación MPLAB, las cuales permiten simular cada una de las entradas para observar la salida al igual que los cambios producidos en cada uno de los registros a todo lo largo del procedimiento, pudiéndose comparar lo ejecutado por el programa con lo estipulado para ser realizado por la programación personal y así ejecutar las correcciones necesarias para que el software se una con el hardware. En los software de transmisión y recepción se elaboró unas rutinas de retardo: 1 bit de retardo, y 1 ½ bit de retardo para (1/9600) = 104.167 µ segundos (1bit) y 156.25 µ segundos (1 ½ bit). A estas rutinas se les midió su tiempo de duración depurando la rutina en el MPLAB y con la ventana ‘STOPWATCH’, con un PIC trabajando con un cristal de cuarzo de 4 MHz. • Programa principal de control del computador. Este software se depuró conectando la interfaz al puerto serial COM 2. A continuación se presenta la panta lla inicial del software de control con sus diferentes opciones: 157 FASE 7. INTEGRACIÓN DEL HARDWARE Y EL SOFTWARE. En esta fase, se procede a integrar todos los elementos y componentes físicos, con las instrucciones vía software que se aplican para el control y manejo de todas las etapas del sistema. Luego de haber depurado el software del sistema en la fase anterior, con la ayuda de los siguientes cuadros se logra, entender aún más las diferentes palabras de programación en assembler (lenguaje de máquina) y las instrucciones utilizadas en las distintas rutinas de control del sistema. A continuación se presentan los cuadros de conexión física de los diferentes puertos del microcontrolador. PUERTO A RA5 IN Reserva FIGURA 22 RA4 RA3 RA2 RA1 RA0 IN IN IN IN IN Reserva Reserva Reserva Reserva Canal AN0 Sensor de nivel PUERTO B RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 I/O I/O I/O I/O I/O I/O I/O I/O D7 D6 D5 D4 D3 D2 D1 D0 158 PUERTO C RC6 RC5 RC4 RC3 RC2 RC1 RC0 IN OUT IN IN IN IN OUT OUT RX TX Reserva Reserva Reserva Reserva Bomba 2 Bomba 1 PUERTO D IN RD6 RD5 RD4 RD3 RD2 RD1 RD0 IN IN IN IN IN IN IN Reserva Reserva Reserva Reserva Reserva Reserva Reserva Reserva PUERTO E RE1 RE0 OUT OUT OUT E R/W RS RE2 CONTROL LCD Conexión de puertos. FUENTE: RIVERA (2003). 159 FASE 8. CONSTRUCCIÓN DEL PROTOTIPO DEFINITIVO Y PRUEBAS FINALES. FIGURA 23 INICIO BIT DE ARRANQ CONTADOR TX EN BAJO ROTA A LA DERECHA REGISTRO TX CARRY = NO TX EN SI RUTINA DE RETARDO CONTADOR CONTADOR = BIT FIN ALGORITMO PARA LA TRANSMISIÓN FUENTE: RIVERA (2003). 160 FIGURA 24 INICIO NO RX=0 SÍ RUTIN A CONTADOR CARRY=0 RX= 0 CARRY= NO 1 SI ROTA A LA DERECHA REGISTRO RX RUTINA DE RETARDO 1 CONTADOR =CONTADOR -1 NO CONTADOR =0 SI FIN ALGORITMO PARA LA RECEPCIÓN FUENTE: RIVERA (2003). 161 Como podemos ver, el programa de control del simulador realizado en Visual Basic 6.0 consta de tres módulos: 1. Parámetros del sistema, 2. Acción del sistema, y 3. Simulador y gráfica del sistema. En el módulo de parámetros del sistema tenemos tres cajas de texto: una muestra la capacidad del tanque, la cual es variable de 0 a 1000 litros, con la barra horizontal ubicada en su parte inferior inmediata podemos fijar el valor de la capacidad. La segunda caja texto muestra el set point en porcentaje de 0 al 100% de la capacidad del tanque. Y por último la tercera caja texto muestra el resultado de la multiplicación de los 162 valores de las dos primera cajas, o sea el valor del porcentaje expresado en litros. En el segundo módulo se encuentran tres botones de acción: LLENADO, VACIADO y SALIR. Cuando se presiona el botón de LLENADO, este cambia a color verde indicando que la bomba de llenado está encendida y el proceso de sensado se realiza cada 100 mili segundos. En caso de que el tanque llegue al nivel igual al set poitn o más el sistema enviará la orden de detener el bombeo y por consecuencia se apaga la bomba e y el botón de LLENADO vuelve a tomar su color orinal gris. Para el caso cuando se presiona el botón de VACIADO, este también cambia a color verde indicando que la bomba de vaciado está encendida. Igual que en el caso anterior se produce el sensado y envío de la información del nivel por parte del interfaz; esto se realiza cada 100 mili segundos. Cuando el nivel del tanque sea igual o menor al nivel prefijado la bomba de vaciado de detendrá y el botón de VACIADO se colocará de color gris. El botón de SALIR se utiliza para terminar el programa de simulación. Por último, tenemos el módulo de simulación y gráfica donde se visualizan de dos forma el llenado y vaciado del tanque. Del lado izquierdo del módulo se ve el tanque y el nivel actual y del lado derecho se realiza una gráfica de la simulación tanto del llenado como el vaciado.