SISTEMA DE CONTROL SUPERVISOR DE LAS CONDICIONES AMBIENTALES DE UNA BODEGA DE PECES ORNAMENTALES FERNANDO ANDRÉS MORENO PARRA PAULA ANDREA SEPÚLVEDA HOYOS PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIRÍA DEPARTAMENTO DE INGENIERÍA ELECTRÓNICA BOGOTÁ 2004 SISTEMA DE CONTROL SUPERVISOR DE LAS CONDICIONES AMBIENTALES DE UNA BODEGA DE PECES ORNAMENTALES FERNANDO ANDRÉS MORENO PARRA PAULA ANDREA SEPÚLVEDA HOYOS Trabajo de grado Director Ingeniero Fredy Orlando Ruiz PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIRÍA DEPARTAMENTO DE INGENIERÍA ELECTRÓNICA BOGOTÁ 2004 ARTICULO 23 DE LA RESOLUCIÓN No. 13 DE JUNIO DE 1946 "La universidad no se hace responsable de los conceptos emitidos por sus alumnos en sus proyectos de grado. Sólo velará porque no se publique nada contrario al dogma y la moral católica y porque los trabajos no contengan ataques o polémicas puramente personales. Antes bien, que se vea en ellos el anhelo de buscar la verdad y la justicia". A Dios por guiarme y mantenerme con fe A mis padres por ser la fuerza que alimenta mi espíritu y por hacer posible el haber llegado hasta acá… A Mis hermanos por ser un gran apoyo y un orgullo para mi Fernando A. A Dios por permitirme recorrer esta etapa de la vida, a mis papás por acompañarme, apoyarme, creer en mi, y por haberme ayudado a crecer como persona y realizar mis sueños, y a mi hermana por ser mi ejemplo y amiga incondicional. Paula A. AGRADECIMIENTOS Al Ingeniero Fredy Ruiz por su tiempo y su interés en el desarrollo y cumplimiento de cada uno de los objetivos del proyecto. A Julio González y Blanca Moreno por el espacio y tiempo brindado. Al Ingeniero Carlos Cotrino por su orientación. A todos nuestros amigos, por su apoyo y colaboración. CONTENIDO pág INTRODUCCIÓN 1 1. MARCO TEORICO 3 1.1 CONDICIONES BÁSICAS PARA LA SUPERVIVENCIA DE PECES FUERA DE SU HABITAT NATURAL 3 1.1.1 Temperatura. 3 1.1.2 Aireación. 4 1.1.3 Iluminación. 5 1.1.4 El agua 6 1.2. CAN 1.2.1 Propiedades del protocolo CAN. 2. ESPECIFICACIONES 8 9 11 2.1 ESPECIFICACIONES HARDWARE 13 2.2 ESPECIFICACIONES SOFTWARE 17 3. DESARROLLO 18 3.1 DESCRIPCIÓN DEL PROTOCOLO DE SUPERVISIÓN 21 3.2 MODULO PRINCIPAL 25 3.2.1 Administración e interpretación. 26 3.2.2 Iluminación. 27 3.2.3 Alarma sonora. 30 3.2.4 Reporte visual. 31 3.2.5 Bloque de comunicaciones 32 3.3 MÓDULO DE TEMPERATURA 33 3.3.1 Bloque de muestreo. 33 3.3.2 Bloque de amplificación. 34 3.3.3 Bloque de filtrado. 35 3.3.4 Bloque de conversión análogo digital. 36 3.3.5 Bloque de procesamiento de datos. 37 3.3.6 Bloque de comunicaciones. 37 3.4 MÓDULO DE AIREACIÓN 39 3.4.1 Bloque de muestreo. 39 3.4.2 Bloque de administración. 41 3.4.3 Bloque de comunicaciones. 42 3.5 MODULO DE COMUNICACIÓN CON EL COMPUTADOR 43 3.6 SOFTWARE SUPERVISOR 46 3.6.1 Supervisión de temperatura. 47 3.6.2 Supervisión del estado de aireación. 50 3.6.3 Control del encendido y apagado de la luz. 51 3.6.3 Configuración de módulos de aireación. 52 3.6.4 Programación de tareas. 53 3.6.5 Consulta de historial. 54 3.6.6 Otras tareas. 55 3.7 DISEÑO DEL CONTROL DE TEMPERATURA 56 4. RESULTADOS 62 5. CONCLUSIONES 72 BIBLIOGRAFÍA 74 ANEXOS 76 LISTA DE TABLAS pág Tabla 1.1 Temperatura del agua según el tipo de pez. 4 Tabla 1.2 Relación entre la temperatura y la concentración de oxígeno en el Agua. 5 Tabla 1.3 Clasificación del agua según la dureza. 6 Tabla 3.1 Identificadores de los mensajes CAN del sistema. 22 Tabla 3.2 Tabla de verdad de filtros y máscaras. 23 Tabla 3.3 Identificadores de los mensajes de transmisión al PC. 24 Tabla 3.4 Identificadores de los mensajes de recepción del PC. 24 Tabla 3.5 Máscaras y filtros del módulo principal. 32 Tabla 3.6 Especificaciones operacional MPC6022. 34 Tabla 3.7 Máscaras y filtros del módulo temperatura. 38 Tabla 3.8 Valores del filtro de los diferentes módulos de temperatura. 38 Tabla 3.9 Máscaras y filtros del módulo aireación. 43 Tabla 3.10 Máscaras y filtros del módulo de comunicación con el computador. 45 Tabla 3.11 Diferencias de temperatura, superficie del agua y ambiente en la Bodega de peces. 57 Tabla 3.12 Variación de la temperatura del agua cuando se han cerrado los quemadores. 57 Tabla 3.13 Variación de la temperatura del agua cuando se han abierto los quemadores. 58 Tabla 3.14 Tabla de costos implementación del control de temperatura. 61 Tabla 4.1 Reporte de alarmas, acuario 32, distancia entre conductores de 3 cm. 67 Tabla 4.2 Alarmas falsas presentadas, distancia entre conductores de 3 cm. 68 Tabla 4.3 Alarmas falsas presentadas, distancia entre conductores de1 cm. 68 Tabla 4.3 Tabla de costos del sistema. 70 LISTA DE FIGURAS pág Figura 1.1 Relación del Modelo OSI y CAN. 8 Figura 1.2 Ejemplo transmisión MULTICAST. 9 Figura 2.1 Diagrama en bloque general del sistema. 12 Figura 3.1 Diagrama general del sistema. 18 Figura 3.2 Diagrama de flujo general del sistema. 20 Figura 3.3 Ejemplo manejo filtro y máscaras. 23 Figura 3.4 Diagrama en bloques del módulo principal. 25 Figura 3.5 Conmutación estado manual o controlado. Esquemático. 28 Figura 3.6 Señales iluminación. 29 Figura 3.7 Diagrama en bloques del módulo temperatura. 33 Figura 3.8 Filtro Butterworth empleado en el módulo de temperatura. 35 Figura 3.9 Respuesta en frecuencia del filtro Butterworth de ωc=1 kHz. 36 Figura 3.10 Diagrama de bloques del modulo de aireación. 39 Figura 3.11 Topología del sensor para detectar falla en el sistema de aireación. 40 Figura 3.12 Esquemático del sensor de aireación. 41 Figura 3.13 Diagrama en bloques módulo de comunicación con el computador. 44 Figura 3.14 Trama RS-232. 45 Figura 3.15 Tablas de la base de datos. 47 Figura 3.16 Visualización valor de la temperatura por zonas. 48 Figura 3.18 Visualización falla en el módulo de temperatura. 48 Figura 3.19 Ventana configuración modulo de temperatura. 49 Figura 3.20 Ventana de visualización variación de la temperatura en un día. 49 Figura 3.21 Visualización falla en el módulo de aireación. 50 Figura 3.22 Visualización de fallas en el acuario. 51 Figura 3.23 Ventanas de control de iluminación. 52 Figura 3.24 Proceso de configuración de módulo de aireación. 53 Figura 3.25 Ventana de programación de tareas. 54 Figura 3.26 Tabla de alarmas de módulos de aireación. 54 Figura 3.27 Ejemplo de ventana de consulta de detalles de un acuario. 55 Figura 3.28 Ventana de información de los datos de la última supervisión. 55 Figura 4.1 Condiciones de medida para prueba 1 en bodega. 63 Figura 4.2 Temperatura promedio. 64 Figura 4.4. Condiciones de medida prueba 2 en bodega. 64 Figura 4.3 Temperatura por zonas. 65 Figura 4.5 Comparación de medidas, sistema CAN-Fluke 51 II en la bodega de peces. 66 Figura 4.6 Comparación de medidas, sistema CAN-Fluke 51 II. 66 LISTA DE ANEXOS pág Anexo A Características del protocolo CAN. 76 Anexo B Diagramas de flujo del sistema. 82 Anexo C Esquemáticos del sistema. 110 Anexo D Tablas de resultados de mediciones de temperatura. 117 Anexo E Manual de hardware del usuario. Anexo F Manual de software del usuario. INTRODUCCIÓN A partir del aprovechamiento de la biodiversidad de la cual goza Colombia, ha surgido una forma de empresa nacional dedicada a la comercialización de peces ornamentales. En Bogotá se encuentran bodegas de almacenamiento de peces de este tipo, propiedad de empresas que tienen por objeto la comercialización de peces ornamentales de diferentes variedades con destino al mercado interno y externo del país. Estos peces proceden de la Orinoquía colombiana, Meta, Vichada, Guainía, Amazonas y en menor proporción de la Cienaga en el norte del país, donde cientos de personas se dedican a la actividad de la pesca, capturan variadas especies de peces y los empacan en bolsas de plástico con agua y oxigeno para enviarlos a Bogotá por vía terrestre o aérea; una vez son recibidos en las bodegas, estos son almacenados en acuarios de vidrio clasificados por especie, por un tiempo que puede variar entre 8 días y un mes, mientras son despachados a los clientes. La situación actual de las bodegas de almacenamiento de peces ornamentales en Bogotá, presenta un escenario caracterizado por la falta de automatización y control de las variables involucradas en la construcción del ambiente propicio para los peces. Surge entonces la necesidad de desarrollar un sistema para incrementar la eficiencia de los procesos de control y supervisión de algunas de estas variables, en la etapa de almacenamiento que tiene lugar dentro de la actividad comercial de las organizaciones dedicadas a esta labor, por lo cual el presente proyecto presenta una solución particular a esta situación, mediante el desarrollo de un sistema centralizado encargado de controlar y supervisar de una forma más eficiente, las variables de temperatura, aireación e iluminación. El centro de este proyecto es la empresa “JB peces tropicales Export”, cuya bodega de almacenamiento posee aproximadamente 500 acuarios, en los cuales se mantienen entre 50 y 100 especies diferentes de peces. El mantenimiento de condiciones como la temperatura y la aireación, son labores realizadas de forma totalmente manual y hasta cierto punto empíricas, no se cuenta con métodos o sistemas de supervisión y control de dichas variables, las tareas se llevan a cabo por ensayo y error o por simple acción repetitiva a partir de la consecución de resultados satisfactorios. El método empírico que hasta ahora se ha llevado en la bodega presenta fallas, ocasionando alteración en las condiciones ambientales de los peces. Gracias al sistema de control supervisor se tiene un conocimiento inmediato de las alarmas que se presentan cuando ocurran fallas en aireación en los acuarios o cambios en la temperatura, evitando pérdidas económicas representadas en la muerte de cierto número de peces. Con el desarrollo de éste proyecto no sólo se dio una solución al problema de una compañía en particular, sino que se abrieron las puertas para tecnificar una de las etapas de la comercialización de peces ornamentales como es su almacenamiento. Este documento presenta el desarrollo del sistema propuesto como solución a la supervisión de la aireación, temperatura e iluminación en la bodega centro de este proyecto. A lo largo de éste se muestra la descripción general del sistema desarrollado, sus especificaciones tanto de hardware como de software, así como los desarrollos que se realizaron para llegar al producto final. 2 1. MARCO TEORICO 1.1 CONDICIONES BÁSICAS PARA LA SUPERVIVENCIA DE PECES FUERA DE SU HABITAT NATURAL Para llevar a cabo el diseño y la implementación del sistema de control y supervisión es necesario conocer las variables de temperatura, aireación e iluminación y las características del agua en la supervivencia del pez. 1.1.1 Temperatura. Los peces de acuerdo a su procedencia requieren que el agua en donde se almacenan tenga una temperatura adecuada (Tabla 1.1), puesto que si la temperatura aumenta con respecto a su hábitat normal, el pez se debilita orgánicamente debido a que sus funciones metabólicas aumentan provocando que este tenga más hambre, y si la temperatura disminuye sucede el caso contrario; estas reacciones también varían de acuerdo a la edad del pez, un pez joven es menos propenso a sufrir enfermedades causadas por el cambio de temperatura, que un pez adulto. Los peces tropicales viven en aguas cuya temperatura no presenta grandes variaciones en el año, lo que impide que esta clase de pez desarrolle mecanismos que le permitan adaptarse a cambios bruscos de temperatura en el agua. Esto no significa que los peces deban mantenerse a temperatura constante todo el día, sino permitir que ésta varié en rangos normales. Un decrecimiento instantáneo de 2 a 3 ºC puede producir que el pez entre en un estado de shock adquiriendo enfermedades respiratorias y afecciones en la vejiga notatoria, que luego se ve reflejada en contaminación del ambiente. Para evitar esto, los cambios que se produzcan en la temperatura deben ser lentos, no mayores a 3 ºC por hora, teniendo en cuenta que no puede disminuir menos de 3 ºC ni aumentar más de 8 ºC, con respecto a su valor normal. Además los cambios de temperatura que se presentan entre el día y la noche no deben ser superiores a 3 ó 4 ºC. 3 Existen varios sistemas para mantener estable la temperatura del agua del acuario. Para acuarios de hogar se usan calefactores individuales generalmente eléctricos, y para uso industrial, como el caso de una bodega de almacenamiento de peces, se usan sistemas centrales de calefacción eléctricos o a gas. Tabla 1.1 Temperatura del agua según el tipo de pez TIPO DE PECES De agua fría De agua templada De agua caliente TEMPERATURA (ºC) 10-18 18-22 25-28 Los sistemas centrales de calefacción calientan el ambiente del recinto, produciendo a la vez, calentamiento de la superficie del agua. Gracias a que el sistema de aireación de los acuarios funciona todo el día, se dará lugar a una mezcla de las capas de agua que se encuentran a diferentes temperaturas, produciendo un calentamiento uniforme de ésta. 1.1.2 Aireación. La función del sistema de aireación dentro de un acuario que contenga un número normal de peces según la especie, es la de agitar el agua para producir el desprendimiento del anhídrido carbónico (producido por la respiración de los peces) y evitar que éste por ser más liviano se concentre en la superficie del agua. Además, la aireación produce ondulaciones en la superficie del agua, lo que facilita el intercambio gaseoso, permitiendo que se absorba oxígeno y que salga el anhídrido carbónico. Por tanto, no es necesario mantener sistemas para inyectar oxigeno a los acuarios, en lugar del aire presente en el ambiente, debido a que la purificación del agua se realiza por el contacto de la superficie de esta con el ambiente. Los peces jóvenes necesitan 100 veces más oxígeno que los adultos, debido a su proceso metabólico acelerado. Existe una relación directa entre la temperatura del agua y la cantidad de oxígeno en ella (Tabla 1.2), entre mayor sea la temperatura menos contenido de oxígeno presenta. 4 Tabla 1.2 Relación entre la temperatura y la concentración de oxígeno en el agua TEMPERATURA (ºC) 0 5 10 15 20 25 30 OXÍGENO (mg por lt)º 14.5 12.8 11.2 10.2 9.1 8.3 7.6 De acuerdo a la tabla 1.2, para los peces tropicales el proceso de aireación debe ser mas acelerado que para los de agua fría, sin embargo, los peces de agua fría necesitan mayor cantidad de oxígeno que los de agua tropical cuando se encuentran en épocas de temperatura alta, por no estar acostumbrados a esta condición del ambiente, mientras que los peces tropicales son menos sensibles a estas condiciones. El oxígeno también es importante para mantener un número adecuado de bacterias, que viven en el agua del acuario, y que son las encargadas de transformar los excrementos de los peces y restos de comida en materias nitrogenadas fertilizantes, si este proceso se retarda ocasiona la acumulación de amoníaco, elemento tóxico para los peces. Además de facilitar el intercambio gaseoso, la aireación también contribuye a mantener la temperatura uniforme dentro del acuario, a través del proceso de mezcla de las capas de agua que se encuentran a diferentes temperaturas; también ayuda a destruir la película de aceite que se forma en la superficie; y evitar en general desequilibrios en el nivel normal de la presión gaseosa. Si la cantidad de oxigeno disminuye en el acuario, la presión de los gases en la sangre del pez no disminuye de igual manera, lo que hace que los peces produzcan burbujas de nitrógeno que se acumularan debajo de la piel, ocasionando una enfermedad conocida como enfermedad de las burbujas, que cierra los vasos sanguíneos, llevando a una rápida muerte por embolia gaseosa. Esta enfermedad también puede presentarse por un cambio brusco de temperatura. 1.1.3 Iluminación. Es necesario mantener una buena iluminación en el sitio donde se encuentren los acuarios para evitar que éstos se vuelvan débiles y descoloridos. Además los peces en su medio 5 natural están acostumbrados a cambios graduales de la iluminación entre el día y la noche, por tanto si se presentan cambios bruscos en ella, éstos se asustan y saltan, y algunos caen fuera del acuario. 1.1.4 El agua A parte de las características de temperatura y aireación que debe tenerse en cuenta para mantener un ciclo vital óptimo para el pez, es necesario considerar otras características del agua, tales como la dureza, el pH, y saber cuando es necesario realizar el cambio del agua del acuario donde se encuentran almacenados. Dureza. La dureza indica la cantidad de sales de calcio y magnesio disueltas en el agua, entre mayor concentración de sales, más dura y entre menor, más blanda (Tabla 1.3). La dureza se mide en grados americanos o alemanes, un grado alemán equivale a 18º americanos. Tabla 1.3 Clasificación del agua según la dureza TIPO DE AGUA Excesivamente dura Muy dura Dura Semidura Blanda Muy blanda DUREZA (grados americanos) 720/1080 360/720 220/360 144/216 72/144 0/72 Una dureza normal para un acuario en general es de 100 grados americanos. Si el agua es muy dura, cuando se evapora deja una capa de color blanco amarillento en el borde del acuario, si el agua es blanda forma con el jabón una espuma suave, si el agua es dura la espuma es pegajosa. La dureza del acuario varía con el tiempo que lleve el agua almacenada, por ejemplo en el caso de los peces tropicales, la temperatura del agua hace que ésta se evapore produciendo que los minerales queden en el interior y se combinen con el anhídrido carbónico, formando bicarbonatos solubles. Para ablandar el agua excesivamente dura es necesario mezclar agua destilada o lluvia con agua común del acueducto. El agua del acueducto varía según la localidad, pero en general 6 contiene cloro, que es un veneno para los peces, por tanto es necesario dejarla reposar durante 48 horas, tiempo en el cual el cloro se desprenderá del agua. No es beneficioso hervir el agua para quitarle el cloro, debido a que este proceso afecta el pH y la dureza normal de esta. Para aumentar la dureza del agua, es necesario agregar cloruro de sodio, en proporción de 5 g, por cada 10 lt. Los peces de aguas templadas viven en aguas duras y los peces que viven en regiones tropicales, tales como Amazonas y Río de la Plata, donde se presentan muchas precipitaciones, viven en agua blanda y escasa de bacterias y microorganismos, que requieren aguas duras para su desarrollo. El pH. El pH indica el grado de acidez del agua, debido a la concentración iones de hidrógeno. Es necesario controlar el pH en el acuario, ya que la elevación de éste ocasiona aumento en la frecuencia respiratoria del pez y enfermedades caracterizadas por puntos blancos en su piel. Los valores de pH varían entre 0 y 14. La mayoría de los peces necesitan que el agua tenga un pH ligeramente ácido (6.8) porque éste favorece las secreciones de la piel de los peces protegiéndolos contra infecciones. Generalmente es necesario cambiar el pH alcalino por uno ácido, para esto se debe primero ablandar el agua (sección 4.2.1), y luego en intervalos de horas separadas agregar gotas de ácido fosfórico o clorhídrico, en solución al 10% y medir el pH hasta obtener el valor deseado. Cuando el agua es muy ácida debe agregársele bicarbonato de sodio para aumentar su pH. Cambio de agua del acuario. Los peces dentro de su proceso natural producen excrementos que contaminan y turban el agua donde se encuentran, por tanto, sino se hace un cambio oportuno ésta puede ocasionar infecciones y enfermedades que terminan en la muerte del animal. Además de cambiar el agua del acuario para garantizar su limpieza y una ambiente adecuado para los peces, es necesario, aspirar el fondo del acuario, por lo menos dos veces a la semana, para eliminar las impurezas y residuos gruesos. Además, Hay que reponer el agua que se evapora diariamente y una vez por semana cambiar 1/3 del total con agua debidamente preparada, es decir que posea los valores de dureza, pH y temperatura adecuados. 7 1.2. CAN En 1983, Robert Bosch y su grupo de investigadores, comenzaron estudios sobre el desarrollo de un protocolo para el área de control automotriz y en 1986 presentaron oficialmente el resultado obtenido bajo el nombre de Controller Area Network (CAN). CAN se definió como un protocolo de Bus de comunicación serial para aplicaciones en tiempo real, orientado a trabajar con dispositivos inteligentes, sensores y actuadores, dentro de diversos sistemas, orientado actualmente a diferentes campos además del automotriz. El bus CAN define la capa de enlace y parte de la capa física, dos de las siete capas del modelo OSI, como se ve en la figura 1.1, las capas restantes no son definidas por la especificación y deben ser implementadas por el diseñador, de acuerdo a la aplicación. Figura 1.1 Relación del Modelo OSI y CAN CAN MODELO OSI APLICACION PRESENTACIÓN SESIÓN TRANSPORTE RED ENLACE DE DATOS CONTROL LÓGICO DE ENLACE CONTROL MEDIO DE ACCESO CONTROLADOR CAN DEFINIDO POR LA ISO 11898 SEÑALIZACION FISICA FÍSICA TRANSCEIVER CAN MEDIO FISICO CABLES Y CONECTORES La capa de enlace se divide en dos, el enlace de control lógico y el control de acceso medio. El enlace de control lógico maneja las notificaciones, filtrado de mensajes y restablecimiento 8 de las funciones de administración. El control de acceso medio se encarga del encapsulamiento y desencapsulamiento de datos, detección y control de errores, proceso de bit stuffing y transmisión serial, en resumen se encarga de todo lo relacionado con el protocolo de comunicación. La señalización física es la parte de la capa física definida por CAN que se encarga de la codificación y descodificación de bit, el tiempo de bit y la sincronización, es decir, se encarga de las características eléctricas relacionadas con la transmisión de bits entre nodos diferentes. El medio físico, los cables y los conectores no están definidos por la especificación, así que deben ser escogidos por el diseñador una vez conocidos los requerimientos de señalización física necesarios. 1.2.1 Propiedades del protocolo CAN. El protocolo CAN tiene las siguientes propiedades: • Flexibilidad de configuración: Un nodo puede ser agregado a la red sin necesidad de cambiar la configuración de software o de hardware presentes en el sistema. • Recepción multicast: Un mensaje CAN es diferenciado por el campo llamado IDENTIFICADOR, que no indica el destino del mensaje, pero si describe el contenido del este. Cada nodo posee un filtro por medio del cual puede aceptar un mensaje o rechazarlo, como consecuencia, el sistema se convierte en multicast en el cual un mensaje puede estar dirigido a varios nodos al mismo tiempo, como se puede observar en la figura 1.2. Figura 1.2 Ejemplo transmisión MULTICAST NODO TX NODO RX FILTRO FILTRO BUS CAN FILTRO FILTRO FILTRO NODO RX NODO RX NODO RX 9 • • • Prioridad de mensajes: El IDENTIFICADOR define una prioridad para el acceso al bus. Multimaestro: Cuando el bus esta libre, cualquier nodo puede empezar la transmisión de un mensaje, y el mensaje con mayor prioridad ganara la arbitración del bus. Detección error : Retransmisión automática de mensajes corruptos tan pronto como bus este libre de nuevo. Para mayor información sobre el protocolo CAN, referirse al Anexo A. 10 2. ESPECIFICACIONES El control supervisor CAN, es un sistema que permite el manejo centralizado de algunas variables ambientales tales como, aireación, temperatura e iluminación, necesarias para garantizar la supervivencia de peces ornamentales que se encuentran en bodegas de almacenamiento. Este sistema esta conformado por ocho módulos de hardware y una aplicación de software que interactúan entre sí para permitir al operador de la bodega, el conocimiento del estado del lugar por medio de historiales y mensajes de alarma y la manipulación de otras variables por medio de programación de tareas. Existen cuatro tipos de módulos en el sistema: • Módulo principal: Es el encargado de solicitar, recibir, interpretar y reportar al computador, el estado de las variables bajo supervisión, a través de el bus CAN. • Módulo de temperatura: Es el encargado de medir la temperatura de la bodega en un determinada zona y reportar su valor cada vez que el módulo principal se lo solicite. Existen cuatro módulos de temperatura en el sistema. • Módulo de aireación: Es el encargado de supervisar la presencia de aire en 16 acuarios y reportar el estado cada vez que el módulo principal lo solicite. El número de módulos de este tipo, varía de acuerdo a la cantidad de acuarios que deseen ser supervisados, el sistema permite un número máximo de 32 módulos, es decir 512 acuarios. • Módulo de comunicaciones: Es el encargado de traducir los mensajes provenientes del computador al sistema y viceversa. Además se cuenta con una Interfaz de comunicación tipo BUS, que utiliza el protocolo CAN. La estructura general de sistema puede ser observada en la figura 2.1. 11 Figura 2.1 Diagrama en bloque general del sistema INTERFAZ DE COMUNICACIÓN MÓDULO PRINCIPAL UNIDAD DE COMUNICACIÓN INTERFAZ ADMINISTRADOR RS232 DISPLAY 2X16 DETECTOR DE CRUCE POR CERO LÍNEA OPTOACOPLADOR PIC18F258 BLOQUE ILUMINACIÓN TRIAC1 O SW1 BOMBILLO1 PIC18F458 OPTOACOPLADOR TRIAC6 O SW6 BOMBILLO6 MCP2551 OPERACIONES ALARMA SONORA NOTIFICACIONES MCP2551 CAN Bus MCP2551 PIC18F248 ... DETECTOR FALLA AIREACIÓN ACUARIO 1 DETECTOR FALLA AIREACIÓN ACUARIO 16 MÓDULO AIREACIÓN EXPANSOR MCP2551 MCP2551 MCP2551 MCP2551 PIC18F248 PIC18F248 PIC18F248 PIC18F248 MCP6024 MCP6024 MCP6024 MCP6024 LM35 LM35 LM35 MÓDULOS DE SESORES DE TEMPERATURA LM35 TRANSCEIVER CAN SESOR TEMPERATURA 2.1 ESPECIFICACIONES HARDWARE Las especificaciones de cada uno de los componentes del sistema se describen en las siguientes tablas: MÓDULO PRINCIPAL ESPECIFICACIÓN Microcontrolador Número de entradas análogas (Voltaje de LInea) Número de salidas análogas (Bombillos) Voltaje Corriente Número de entradas-salidas digitales(Bus de datos) Tasa de transmisión de datos Voltaje de alimentación Consumo de corriente Frecuencia de trabajo Tipo de alimentación Alimentación suplementaria Dimensiones ( largo x ancho x alto) Conectores –Puerto busCable de comunicación ACCESORIOS VALOR PIC18F458 2 6 115 1 1 125.000 5 0.5 60 BUS CAN Directamente a la linea 23 x 18 x 11 RJ45 UTP LCD OPTREX DMC16207 (2x16 - Líneas x caracteres) Alarma Sonora Interruptor Alarma sonora 3 Leds de visualización de alarmas Pulsador de reset del sistema UNIDAD V A Kb/s V A Hz cm - MÓDULO DE TEMPERATURA ESPECIFICACIÓN Microcontrolador Número de entradas análogas (Sensor de temperatura) Número de entradas-salidas digitales(Bus de datos) Tasa de transmisión de datos Rango de temperatura Voltaje de alimentación Consumo de corriente Frecuencia de trabajo Tipo de alimentación Dimensiones (largo x ancho x alto) Conectores –Puerto busCable ACCESORIOS Display doble 7 segmentos para visualización Sensor de temperatura LM35DZ 14 VALOR PIC18F258 1 UNIDAD - 1 125000 0 – 50 5 100 60 BUS CAN 11 x 11 x 6 RJ45 UTP Kb/s ºC V mA Hz cm - MÓDULO DE AIREACIÓN ESPECIFICACIÓN Microcontrolador Número de entradas análogas (Sensor de presencia de datos) Número de entradas-salidas digitales(Bus de datos) Tasa de transmisión de datos Voltaje de alimentación Consumo de corriente Frecuencia de trabajo Tipo de alimentación Dimensiones (largo x ancho x alto) Conectores –Puerto busCable ACCESORIOS Sensores de presencia de agua Número de sensores Separación mínima terminales de los sensores 15 VALOR PIC18F258 16 UNIDAD - 1 125.000 5 120 60 BUS CAN 16 x 11.5 x 8 RJ45 UTP Kb/s V mA Hz cm - 16 3 cm MÓDULO DE COMUNICACIÓN ESPECIFICACIÓN Microcontrolador Número de entradas-salidas digitales(Bus de datos, serial) Tasa de transmisión de datos -CAN-RS232Voltaje de alimentación Consumo de corriente Frecuencia de trabajo Tipo de alimentación Dimensiones (largo x ancho x alto) Conectores –Puerto CAN-Puerto RS232Cable BUS CAN ESPECIFICACIÓN Estado de bit dominante en el hilo CANH Estado de bit dominante en el hilo CANL Estado de bit recesivo Impedancia Longitud máxima Máximo numero de nodos Offset entre tierras Resistencia de terminación Tasa de transmisión de datos Tolerancia del oscilador Voltaje DC Voltaje transiente 16 VALOR PIC18F258 2 UNIDAD - 125.000 115.200 5 45 60 BUS CAN 8.5 x 6 x 4 RJ45 DB9 UTP Serial 3 hilos Kb/s Kb/s V mA Hz cm - VALOR 2.75 a 4.50 0.50 a 2.25 2a3 120 500 100 -12 a 12 120 125.000 0.5 a 1.5 -40 a +40 -250 a 250 UNIDAD V V V m V Kb/s % V V 2.2 ESPECIFICACIONES SOFTWARE • Supervisión remota de la temperatura: 0 – 50 °C, Promedio y en cuatro puntos distribuidos. • Supervisión remota de la presencia de aireación en 11 Secciones equivalentes a 512 acuarios • Control y supervisión remota de la iluminación de la bodega: 6 áreas • Almacenamiento, edición y consulta de información especifica de los acuarios: • número de acuario, número de peces, especie, sección, módulo que lo supervisa • Reporte automático de alarmas: mensajes de alerta, visualización de alarmas recientes: Falla en módulo de temperatura Falla en módulo de aireación Falla en acuario Alarma en valor de temperatura (rango configurable por el usuario) • Consulta de Historial de fallas y alarmas por fecha y tipo de falla. • Consulta de curvas de temperatura: últimos 5 días, y por horas. • Consulta del estado de supervisión general del sistema más reciente. • Programación de mensajes para la ejecución de tareas. • Configuración del identificador de los módulos de aireación: Agregar módulo Quitar módulo Cambiar ID módulo • Requerimientos de Hardware: Procesador Pentium III 1GB. 256 MB de RAM. 50 MB libres en disco duro. Se recomienda Windows 2000. Resolución de monitor 1024x768. 17 3. DESARROLLO El Sistema de Control Supervisor de las Condiciones Ambientales de una Bodega de Peces Ornamentales, se conforma por diferentes tipos de módulos, encargados de realizar una o más tareas diferentes dentro de la labor principal del sistema, como es la supervisión. Para ello se desarrolló todo el protocolo de capas superiores en OSI a partir del protocolo de comunicación CAN, permitiendo que todo el conjunto de módulos estén dispuestos para llevar a cabo el procesamiento de datos e información, generación de alarmas, ejecución de procesos instantáneos o que hayan sido previamente programados, visualización de tareas y almacenamiento de información. Como se ve en la figura 3.1 el sistema se encuentra conformado por cuatro tipos de módulos, un módulo principal, un módulo de comunicaciones, cuatro módulos de temperatura, módulos de aireación cuyo número puede aumentar, de acuerdo a las necesidades de la bodega, de 0 a 32 y una interfaz gráfica a través de un computador que comunica la arquitectura del sistema con el operario o usuario final del producto. Figura 3.1 Diagrama general del sistema 18 En un principio se pensó en desarrollar el sistema supervisor por medio de interrupciones, aprovechando las capacidades multimaestro del protocolo CAN, es decir que cada módulo, de manera independiente, enviara mensajes concernientes a la variable bajo inspección cada determinado tiempo y que estos mensajes fueran administrados y transmitidos por el módulo principal al computador. Este método fue analizado y probado pero generó pérdida de información en el bus, debido a que el módulo principal recibía todos los mensajes pero ocasionalmente generaba una señal de alerta de overflow producida por el alto número de mensajes en el bus con destino a éste módulo, que tiene solo dos bufers de recepción. El problema del overflow en este sistema, es causado por tramas regulares (sin errores), que es reconocida por cualquier módulo presente en el bus, pero que su destinatario final no puede recibir en ese momento, por encontrarse con sus registros de datos de entrada llenos, lo que quiere decir que no se da retransmisión automática al haber sido reconocida por otros módulos, y porque al no recibirla en sus registros el módulo que la recibe no tiene la capacidad de solicitar la retransmisión. Debido a lo anterior, se planteo la posibilidad de desarrollar un algoritmo en el módulo principal, en cual se solicitara cada determinado tiempo, el estado de las variables bajo supervisión a los diferentes módulos, pero a cada tipo de módulo a la vez, por ejemplo primero temperatura luego aireación. Al realizar el análisis de este método se concluyó que la administración de los módulos de aireación sería complicada, debido a su característica de ser expandibles, y en el momento de tener los 32 módulos en el sistema se produciría el mismo efecto de overflow del caso anterior. Se decidió por tanto llevar a cabo el proceso de supervisión de manera periódica y específica sobre las variables de temperatura y aireación, conociendo el tipo y número de módulos presentes en el sistema, con el fin de poder preguntar por cada módulo y esperar respuesta de cada uno dentro de un periodo de tiempo determinado antes de continuar la rutina. Mientras esto sucede el sistema se encuentra en capacidad de atender acciones tales como manipular la iluminación, cambio y actualización de la constitución de la red, y consulta de información y estados, por parte del usuario, en la aplicación del computador en tiempo real. De forma general, dentro de la rutina de supervisión, la primera tarea que se realiza es la solicitud del número de módulos de aireación presentes en el sistema con el fin de incluirlos en la rutina mencionada; éste dato se encuentra disponible en una base de datos en el computador. Luego se revisa el estado de las variables de temperatura y aireación y se reportan a la aplicación, en donde se procesan de una manera adecuada para que sean entendibles por el usuario, al igual que el número de módulos de aireación presentes; la base de datos guarda de manera ordenada otra información relevante como fallas en los módulos, fallas de aireación, variaciones de temperatura y datos sobre los acuarios bajo supervisión. Con esta información se da lugar a la siguiente labor, solicitar al computador el estado de fallas presente en el sistema, para que las personas que se encuentren trabajando 19 dentro de la bodega y no tengan acceso directo a la aplicación, puedan también conocer el estado del sistema a través de un visualizador presente en el módulo principal. Por último, se generan alarmas sonoras a partir de las variables almacenadas que indican estado de falla. Este proceso se encuentra resumido en el diagrama de flujo de la figura 3.2. Figura 3.2 Diagrama de flujo general del sistema INICIO Configuración del sistema Tiempo de espera para configuración Petición número de módulos de aireación configurados Petición estado de la temperatura Petición estado de la aireación de los acuarios Petición de falla para reporte en display Reporte alarma sonora 20 3.1 DESCRIPCIÓN DEL PROTOCOLO DE SUPERVISIÓN La comunicación de los diferentes módulos se realiza por medio de seis tipos de mensajes: Mensaje de respuesta Mensaje de petición Mensaje de confirmación Mensaje de orden Mensaje de alarma Mensaje de reporte Cada mensaje dentro de la comunicación tiene su propio identificador, ya sea un mensaje CAN o RS-232. El identificador para CAN indica tanto el significado de los datos como la prioridad. En la tabla 3.1 se presentan los diferentes tipos de mensajes CAN organizados de mayor a menor prioridad. Debido a la característica cíclica de algunas tareas, hay mensajes que nunca competirán por el bus, por tanto su prioridad no es tan relevante como otros. Por ejemplo, un mensaje de respuesta a petición del valor de temperatura, nunca competirá con uno de respuesta a estado de un módulo de aireación, en cambio si podrá competir con un mensaje de orden de encendido de luces, que se genera de manera esporádica. El criterio utilizado para la asignación de prioridades, fue la frecuencia de aparición del mensaje en el bus y la repercusión que traería si éste no es atendido de inmediato. La más alta se prioridad se asignó a las alarmas de aireación, ya que la aireación, se presenta como la variable más critica bajo supervisión, es decir, sino no es atendida de inmediato el riesgo de mortalidad de los peces es mayor que si existiera una falla en la temperatura. La respuesta al número de módulos de aireación que se encuentran supervisando acuarios en el sistema, también es un dato importante, ya que sin éste no se sabrá por cuales módulos se debe preguntar en la rutina de supervisión y por lo tanto no se supervisará el estado de un número determinado de acuarios, lo que lo convierte en un mensaje de alta prioridad. Los mensajes de petición de configuración de módulo de aireación poseen alta prioridad, pero a diferencia de los dos anteriores, no tienen este tipo de prioridad por la importancia del contenido del mensaje sino porque son poco comunes en el bus de datos y se atenderán rápidamente. 21 Tabla 3.1 Identificadores de los mensajes CAN del sistema TIPO ID 0x021 0x030 0x031 0x032 0x033 0x041 0x042 0x05X 0x061 0x101 0x104 0x105 0x106 0x107 0x201 0x202 0x204 0x300 0x31X 0x400 0x510 SIGNIFICADO DEL MENSAJE Alarma de aireación en algún acuario Respuesta a petición número de módulos de aireación presentes en el sistema Respuesta a petición de configuración de módulo de aireación Orden de cambiar ID o desconfigurar módulo Petición de confirmación de configuración Petición de configuración Respuesta a petición de confirmación de configuración del modulo Petición modulo de temperatura No X Petición modulo de aireación Reporte no responde modulo de aireación Petición numero de módulos de aireación Reporte no responde un modulo de temperatura Reporte temperatura cuatro módulos de aireación Reporte de la temperatura promedio del sistema Orden de prender la luz Orden apagar la luz Respuesta de petición de errores a ser reportados en el Display. Petición fallas para reportar al display Respuesta a petición temperatura modulo X Respuesta a petición estado de aireación de acuarios bajo supervisión Confirmación de estado de la luz DE Principal Supervisor PC PARA Supervisor PC Principal Supervisor PC Supervisor PC Aireación Principal Aireación Principal Aireación Aireación Aireación Supervisor PC Supervisor PC Principal Principal Principal Temperatura X aireación Supervisor PC Principal Supervisor PC Principal Supervisor PC Principal Supervisor PC Principal Supervisor PC Supervisor PC Supervisor PC Supervisor PC Principal Principal Principal Principal Temperatura X Supervisor PC Principal Aireación Principal Principal Supervisor PC Supervisor PC Los mensajes CAN que viajan por el BUS son filtrados en cada nodo, por medio de estos identificadores, para ello los microcontroladores empleados en el desarrollo del sistema cuentan con un bloque de filtrado de mensajes, el cual emplea dos herramientas al comparar 22 con el identificador del mensaje entrante, las mascaras y los filtros de aceptancia. Los filtros guardan el valor del identificador (11 bits), determinado en la configuración inicial, de los mensajes que serán de interés para el nodo en particular, las máscaras se utilizan para indicar cuales bits de los 11 del identificador serán revisados al ejecutar el proceso de filtrado, es decir cuales serán comparados contra el mensaje entrante, esto para poder hacer mas organizado y rápido el proceso, al poder tener distintos tipos de mensajes de interés para el mismo nodo y así aceptarlos más rápido sin necesidad de revisar todo el identificador. El proceso descrito anteriormente, se expresa en la tabla 3.2 y la figura 3.3. Tabla 3.2 Tabla de verdad de filtros y máscaras Bit n del Bit n máscara Bit n filtro identificador 0 1 1 1 1 x 0 0 1 1 x 0 1 0 1 Aceptado o rechazado Aceptado Aceptado Rechazado Rechazado Aceptado Figura 3.3 Ejemplo manejo filtro y máscaras 0X330 0X031 0X030 0X330 0X031 0X030 0X330 0X031 0X030 MÁSCARA ---- 0xFFF MÁSCARA ---- 0xFF0 MÁSCARA ---- 0x00 FILTRO --- 0x031 FILTRO --- 0x031 FILTRO --- 0x031 Los microcontroladores cuentan con dos filtros de recepción para evitar pérdida de información por overflow, denominados RXB0 y RXB1, el primer filtro cuenta con dos posibilidades de filtros y una máscara, y el segundo cuenta con cuatro posibilidades de filtros e igualmente una máscara, permitiendo agrupar los mensajes según su significado. 23 Otro tipo de mensajes empleados en la comunicación del sistema hacia el computador, viajan sobre el protocolo RS-232. Al transmitir un mensaje vía RS232 no es necesario el manejo de prioridades en los mensajes, debido a que se trata de un enlace punto a punto, por tanto los identificadores se utilizan para distinguir el significado del contenido de los mismos, y se permite que existan mensajes hacia el computador con el mismo identificador de aquellos que provienen del mismo. En la tabla 3.3 se muestran los identificadores de los mensajes que van hacia el computador y en la tabla 3.4 los que vienen del computador. Tabla 3.3 Identificadores de los mensajes de transmisión al PC TIPO ID 1 2 3 4 5 6 7 9 10 11 20 SIGNIFICADO DEL MENSAJE Petición numero de módulos de aireación Alarma de aireación en algún acuario Petición de configuración Reporte no responde módulo de aireación Reporte no responde un módulo de temperatura Reporte temperatura cuatro módulos de temperatura Reporte de la temperatura promedio del sistema Petición fallas para reportar al display Confirmación de estado de la luz Petición de estado de la aplicación Respuesta a petición de confirmación de configuración del módulo DE Principal Principal Aireación Principal Principal Principal Principal Principal Principal Supervisor PC Aireación Tabla 3.4 Identificadores de los mensajes de recepción del PC TIPO ID 1 2 3 4 5 SIGNIFICADO DEL MENSAJE Orden de prender la luz Orden apagar la luz Respuesta a petición de configuración de modulo de aireación Orden de cambiar ID o desconfigurar modulo Petición de confirmación de configuración 24 PARA Principal Principal Aireación Principal Aireación Principal Aireación 6 7 8 9 Respuesta a petición numero de módulos de aireación presentes en el sistema Respuesta de petición de errores a ser reportados en el display Reporte aplicación de supervisión abierta y se puede iniciar la transmisión al PC Reporte aplicación de supervisión cerrada, parar la transmisión al PC Principal Principal Supervisor PC Supervisor PC 3.2 MODULO PRINCIPAL El módulo principal es el corazón del sistema; sus funciones son solicitar y recibir la información de temperatura, aireación e iluminación, solicitar fallas a reportar a través del display y reportar el estado actual de las variables bajo supervisión a la aplicación de software presente en el computador. El módulo se divide en (figura 3.4): Bloque de administración e interpretación de la información Bloque de iluminación. Bloque de alarma sonora. Bloque de reporte visual. Bloque de comunicaciones. Figura 3.4 Diagrama en bloques del módulo principal Reporte visual Comunicación Administración e interpretación Alarma sonora Iluminación 25 BUS CAN 3.2.1 Administración e interpretación. Como su nombre lo indica, este bloque se encarga de interpretar los datos provenientes del módulo de comunicaciones y tomar decisiones acerca de ellos. También, es el que administra el orden en el que se debe ejecutar el algoritmo de supervisión y atender las interrupciones que se puedan generar ya sea por un mensaje de recepción CAN, interrupción del temporizador 0, interrupción del comparador o interrupción externa presentada en el pin RB1 del microcontrolador, como se explica luego. La rutina principal del programa esta conformada por 39 casos, los cuales se ejecutarán todos o algunos, dependiendo del número de módulos de aireación que se encuentren presentes en el sistema. En cada uno de los casos se transmite un mensaje diferente de solicitud del estado de una variable involucrada en el proceso de supervisión, luego de cada solicitud, se inicia un temporizador (Timer0) aproximadamente de 8 ms, tiempo de espera en el cual se debe recibir alguna respuesta, si no es así, el módulo realiza un nueva transmisión de solicitud e inicia de nuevo el temporizador, si pasados tres intentos no se recibe respuesta, se genera una acción en la cual se avisa que existe algún error que debe ser solucionado por el operario. El primer caso que ejecuta es la solicitud del número de módulos de aireación presentes en el sistema, si ocurren tres interrupciones del temporizador y no se obtiene una respuesta, el sistema reporta un mensaje en el display de error (ver sección de reporte visual) y ningún otro caso se lleva a cabo. Si el mensaje de respuesta llega exitosamente, se continúa con el siguiente caso correspondiente a la petición del valor de temperatura a cada módulo de temperatura. Cada vez que se solicita un módulo de temperatura y éste no responde, se envía un mensaje al supervisor del computador, reportando estado de falla. Cuando ya se ha realizado la solicitud a los cuatro módulos de temperatura, el bloque se encarga de calcular, teniendo en cuenta el número de módulos que respondieron a la petición de temperatura, el valor promedio de la variable en el lugar y envía un mensaje al computador reportando dicho valor, el número de módulos que se tuvieron en cuenta para calcularlo y la temperatura que cada módulo reportó por aparte. En los casos del 6 al 37 se solicita el estado de aireación de los acuarios de la bodega, de acuerdo a los módulos presentes, es decir, si no existe un módulo en el sistema no se solicita su estado; para esto el microcontrolador debe revisar las variables donde se encuentran almacenados los números de los módulos que están supervisando. Cada vez que el módulo no responde se reporta error al computador y cada vez que exista una respuesta satisfactoria a la solicitud de su estado, se interpretan los datos recibidos, para 26 saber si alguno de los acuarios que están bajo supervisión, presenta estado de falla; de ser así, se transmite un mensaje de alarma al computador, indicando los acuarios sin aire y el módulo al cual pertenecen. En el último caso se realiza la rutina de alarma sonora, la cual no genera ningún mensaje de solicitud, por tratarse de un proceso dependiente únicamente de la información presente en el módulo principal (ver sección alarma sonora), de igual manera, se realiza el reporte visual de fallas a través de un display (ver sección reporte visual). En este punto, la rutina vuelve a comenzar, y se solicita de nuevo el estado de la temperatura y así sucesivamente. El caso uno sólo se ejecuta cada vez que el módulo es reiniciado, debido a que si existe algún cambio en la configuración de los módulos de aireación (quitar módulo, cambio de identificador o agregar nuevo módulo) se generan mensajes automáticos desde el computador que actualizarán pertinentemente el tipo de cambio, al módulo principal. El diagrama de flujo mostrado en el Anexo B, resume el algoritmo realizado por este bloque, incluyendo la rutina principal y las rutinas de interrupción y atención a eventos. 3.2.2 Iluminación. La bodega cuenta con seis zonas de luz, las cuales se manejan de manera independiente, de acuerdo a las necesidades del operario que se encuentre trabajando en ella. Por esta razón, el módulo principal cuenta con seis salidas de iluminación, para prender o apagar una o más zonas simultáneamente. Adicionalmente, el módulo cuenta con dos salidas que permiten escoger si se desea controlar la iluminación de forma gradual, por medio del mensaje enviado desde la aplicación (modo controlado), ó por acción mecánica del interruptor de la bodega (modo manual), el cual no permite el control gradual de la luz. Cuando el sistema se encuentra apagado, el modo manual esta por defecto, cuando el sistema entra en funcionamiento, se hace un cambio automático a modo controlado. Para la conmutación entre modo controlado y modo manual, se utilizó un relé de 5 V, el cual es controlado por medio de una señal originada en el microcontrolador, esta señal provoca la conmutación del relé entre sus estados, normalmente abierto y normalmente cerrado. El interruptor manual de cada bombillo, se encuentra alambrado al pin normalmente cerrado del relé, estado por defecto del sistema, y el TRIAC se encuentra alambrado al pin normalmente abierto, como se puede observar en la figura 3.5. 27 Figura 3.5 Conmutación estado manual o controlado. Esquemático VCCA R1 trisw1 R4 180 220 6 1 U1 MOC3010 Q1 TRIAC A1A2G 2 b1 (microcontrolador) R7 10k Q4 4 Q2N2222 K1 0 VCCA f ase 6 1 4 SW1 3 5 2 RELAY SPDT D1 D1N4148 J1 Q7 1 2 3 ma1 (micro) 10k R10 Q2N2222 trisw1 SW1 f ase CON3 0 En modo controlado cuando el microcontrolador recibe la orden de prender o apagar la luz de una o mas zonas, inicia un conteo de pulsos a través de los temporizadores internos, cuyo objetivo es controlar el ancho de pulso de la señal de disparo del TRIAC. El número de pulsos esta determinado por el valor de un comparador interno, este se inicia con un valor máximo para el caso del encendido de la luz, y un valor mínimo para el caso del apagado, en este punto se habilitan las interrupciones tanto del comparador como la interrupción externa (detector de cruce por cero), que determina cuando la línea tiene un voltaje de cero, señal que sirve para sincronizar el proceso de control gradual en el encendido apagado de la iluminación. Para el detector de cruce por cero se utilizó un transistor, que realiza la función de detector. Mientras la señal de la línea tenga un voltaje menor a 0.6 V el transistor se satura y con un voltaje mayor, el transistor se corta. Esta señal indica aproximadamente cuando la línea llega a un valor de cero voltios y sirve como sincronismo del sistema. En la figura 3.6 se muestra la señal de salida de cruce por cero y la señal de control de los bombillos. 28 Figura 3.6 Señales iluminación El encargado de permitir la circulación de corriente a través del bombillo es un TRIAC BTB16 el cual es manejado a través de un optoacoplador MOC3010, que separa las señales digitales de las de potencia, y que se controla a través de una de las salidas digitales del microcontrolador. Una vez ocurre la primera interrupción del detector de cruce por cero, se empieza el proceso de encendido gradual. Uno de los temporizadores del microcontrolador se habilita y cuando llega al valor asignado al comprador, éste genera una interrupción, momento en cual el valor de comparación decrece (apagar la luz) o aumenta (prender la luz) un valor fijo, la señal que controla la corriente de los bombillos se activa y el temporizador se deshabilita. Cuando ocurre la interrupción de cruce por cero, la señal de control de los bombillos, se baja, y se inicia el temporizador de nuevo, para que se genere una nueva interrupción del comparador. El proceso termina, una vez se hallan realizado cierto número de pasos, dejando la señal de control en un valor de voltaje alto, permitiendo el paso continuo de corriente por el bombillo (estado prendido) o en un valor de voltaje bajo (estado apagado); las interrupciones del comparador y externa se deshabilitan y se envía un mensaje, al computador, de confirmación del estado de la luz en la bodega. (Ver diagrama de bloques del módulo, figura 3.4 ) 29 El valor máximo en el cual se inicia el comprador se estableció con relación a la frecuencia de la línea y la frecuencia del temporizador de microcontrolador. El temporizador aumenta su valor después de una ciclo de instrucción, el cual equivale a cuatro ciclos de reloj, lo que quiere decir que para un reloj de 4 MHz, el temporizador aumentará su valor cada 1 µs. Como se describió anteriormente la señal de control de los bombillos, varia cada medio ciclo de reloj, por tanto en este tiempo (8.3 ms), el temporizador puede contar 8300 (0x206C) ciclos de instrucción y para garantizar el encendido correcto sin picos de iluminación se asignó valor máximo de 8000 (0x1F40) al comparador. El valor del paso de incremento o decremento del comparador es de 8 unidades y el valor total de pasos, para llegar a un estado final, es de 1000, lo que ocasiona un tiempo de encendido y apagado de 8 s, tiempo adecuado para que los peces no sientan cambios bruscos en dicha variable. Para mayor información sobre los esquemáticos de este bloque referirse al Anexo C, esquemáticos módulo principal. 3.2.3 Alarma sonora. Debido a que la aplicación de supervisión de la bodega se encuentra en el área administrativa de la misma, surgió la necesidad de implementar un sistema que permitiera al operario que se encuentra trabajando directamente en el área de los acuarios, enterarse de las fallas que se presentan. La alarma sonora es la solución a dicha necesidad, en el momento en el que se presenta una falla, tal como la ausencia de algún módulo en la rutina periódica o de falta de aireación en algún acuario, la alarma sonora se activa y seguirá en ese estado hasta que el problema sea corregido. La alarma sonora además cuenta con un interruptor que permite habilitarla o deshabilitarla. El módulo principal dentro de su rutina está revisando continuamente las fallas en el sistema, en el momento en el que se presenta cualquiera de ellas, una variable cambia de estado. Durante la rutina de alarma sonora se revisa el estado de esa variable, si ésta se encuentra en un nivel alto, la señal que controla la alarma se activa durante un tiempo de seis segundos y se desactiva otros seis; pasado ese tiempo se vuelve a revisar si aun existe algún tipo de falla, si es así, la alarma se activa nuevamente, de lo contrario se desactiva hasta que se presente una nueva falla. La alarma sonora es independiente de la aplicación en el computador, el microcontrolador activa y desactiva las señales de control de la misma, de esta forma si la aplicación se cierra o ocurre algún error grave en el computador, se podrá conocer si existe una falla en el sistema. Como complemento a esta alarma se implementaron tres leds indicadores de falla 30 que le permiten identificar al operario, de una forma mas clara, el tipo de falla que se esta reportando. El esquemático del circuito de la alarma se puede consultar en el Anexo C. Se utilizó un transistor para disminuir la corriente de salida del microcontrolador, un interruptor para poderla deshabilitar de forma manual y un diodo de protección para evitar sobrecargas en el zumbador. 3.2.4 Reporte visual. Para el reporte visual de alarmas se utilizó un display LCD DMC OPTREX de dos líneas, el cual, a diferencia de la alarma sonora, permite conocer con exactitud el tipo y el número de módulo que esta fallando, el estado de funcionamiento del sistema y falla en la comunicación con el computador. El módulo principal tiene la capacidad de saber qué tipo de falla existe, pero el que hace realmente el proceso de identificación del número de módulo, de acuario o la zona de temperatura que esta en éste estado, es la aplicación. Por esta razón, el reporte visual depende directamente de la información almacenada en el computador, y en el momento que éste se ausente, el microcontrolador se da cuenta y el bloque de visualización reportará error en la comunicación con el computador, aviso que se mantiene hasta que se inicie de nuevo la aplicación. Otro mensaje importante que se muestra a través del display, es el que indica la necesidad de reiniciar el módulo a través del botón de RESET. Esta situación se presenta cuando el sistema se inicia y pide el número de módulos activos en la red y no recibe información al respecto, error grave, pues necesita de este valor para iniciar la supervisión de las variables. Antes de empezar la rutina de reporte visual, es necesario configurar el display para indicarle aspectos tales como el número de líneas que va a emplear para los mensajes. Una vez configurado, el módulo principal envía un mensaje solicitando los errores en el sistema y espera la respuesta, que al llegar es interpretada, y enviada de manera adecuada al display para ser mostrada. 31 3.2.5 Bloque de comunicaciones El módulo principal se comunica con todos los elementos de la red a través del protocolo CAN de topología tipo bus. El módulo de comunicaciones se encarga de administrar la transmisión y la recepción de mensajes presentes en el bus, de una manera adecuadamente a través del buffer de recepción y transmisión, las máscaras y filtros de este módulo, ver tabla 3.5. Tabla 3.5 Máscaras y filtros del módulo principal MÁSCARA FILTRO 0x310 0xFF0 0x200 0x031 0x400 No usado No usado 0xFF0 A través del filtro uno, se reciben los mensajes provenientes de los módulos de temperatura y a través del filtro dos, las órdenes que tienen que ver con la iluminación. El filtro tres recibe los mensajes que contienen el número de módulos presentes en el sistema, el cuatro el reporte de estado de aireación y el cinco y el seis no se usan. Cada vez que llega un mensaje, el bloque de comunicaciones lo descarga lo mas rápido posible para evitar overflow y como consecuencia perdidas de mensajes en el bus. Para la transmisión de mensajes el bloque se encarga de cargar cualquiera de los cinco bufer que encuentre vacíos y esperar que el bus este libre para transmitirlo. En la tabla 3.1 (mensajes CAN), se observan los diferentes tipos de mensaje que él transmite con sus respectivos identificadores y a quien son dirigidos. Este bloque cuenta con un transceiver que se encarga de convertir la señal de transmisión en diferencial y de esta forma protegerla del ruido presente en el ambiente, asi como de asegurar los voltajes respectivos manejados por el protocolo en el BUS. De la misma forma recibe la señal diferencial y la convierte en una señal referida a tierra. 32 El diagrama de bloques puede ser consultado en el Anexo B, en cual se especifica la rutina principal, rutinas de visualización y rutinas de atención a interrupciones. 3.3 MÓDULO DE TEMPERATURA El módulo de temperatura se divide en (figura 3.7): Bloque de sensado Bloque de amplificación Bloque de filtrado Bloque de conversión análoga digital Bloque de procesamiento de datos Bloque de comunicaciones Figura 3.7 Diagrama en bloques del módulo temperatura MUESTREO BUS CAN AMPLIFICACIÓN FILTRADO CONVERSIÓN ANÁLOGA DIGITAL PROCESAMIENTO DE DATOS COMUNICACIÓN 3.3.1 Bloque de muestreo. Este bloque está conformado por un semiconductor LM35D cuyo voltaje de salida es linealmente proporcional al valor de temperatura ambiente en grados centígrados. Éste 33 sensor no necesita calibración externa y proporciona una precisión, a temperatura ambiente de ± ¼ °C, óptimo para medir la temperatura de la bodega cuya variación se encuentra en el rango de 20 °C a 33 °C y en el momento de realizar un control las variaciones a detectar son de 1 °C, lo que concuerda con la precisión brindada por éste. El sensor es capaz de manejar una capacitancia de carga menor a 50 pF, por tanto se incluyó una resistencia de carga de 200 Ω a la salida del dispositivo lo que hace que la capacitancia del cable se convierta en un bypass de tierra a fuente. Además se utilizó una configuración recomendada por el fabricante, para tomar muestras de temperatura remotamente e inmunizar al sensor de ruido en el ambiente. (Ver esquemáticos, Anexo C, módulo de temperatura) 3.3.2 Bloque de amplificación. El nivel de voltaje entregado por el sensor se relaciona con la temperatura medida a través de la siguiente ecuación: Vo = 10mV * (Tamb + 10°C ) Para el rango de temperaturas que se desea medir (0 °C - 50 °C) el valor de voltaje entregado por el sensor varía de 0.1 V a 0.6 V, para adecuar esta medida a un valor óptimo para el conversor análogo digital, se implementó una amplificador no inversor con una ganancia de 7.5. En este bloque, se utilizó un operacional referencia MPC6022 cuyas especificaciones se presentan en la tabla 3.6. Tabla 3.6 Especificaciones operacional MPC6022 ESPECIFICACIÓN Entrada/salida Ancho de banda Voltaje de alimentación Rango de temperatura Voltaje de offset max. VALOR Rail-to-rail (VSS - 0.3V a VDD + 0.3V) 10 MHz 2.5 V- 5.5 V -40 °C a 80 °C ±500 µV 34 La característica rail-to-rail del operacional, permite tener una señal de entrada con variaciones mayores a las de un amplificador convencional lo que se refleja en una valor de ganancia mayor al que se le pueda dar a un amplificador convencional, además, el voltaje de offset bajo, garantiza que la conversión realizada por el ADC sea de alta precisión debido a que el voltaje entregado por el sensor no se modifica de manera considerable en la amplificación. 3.3.3 Bloque de filtrado. En el diseño de un dispositivo donde interviene uno o más convertidores análogo digital, es necesario tener ciertas consideraciones para evitar y rechazar el ruido del ambiente que generalmente se suma a la señal de entrada del ADC, produciendo conversiones erróneas. Por esta razón, el módulo de temperatura cuenta con un filtro Butterworth pasabajos (antialiasing) topología Sallen-Key (ver figura 3.8), que debido a la baja frecuencia de variación de la temperatura rechaza señales de frecuencia mayor a 1KHz. Figura 3.8 Filtro Butterworth empleado en el módulo de temperatura Al tener una frecuencia de muestreo de ADC de 125 kHz, las señales que tienen una frecuencia menor a la mitad de ésta (62.5 kHz) son las que se desean digitalizar (criterio de Niquist), pero si existen algunas señales con una frecuencia mayor a 62.5 kHz, serán reflejas en la porción de banda de interés y el ADC no podrá discernir entre una señal de alta frecuencia y una de baja, por tanto el filtro también fue diseñado para que la atenuación de las frecuencias mayores a la mitad de la frecuencia de muestreo sea lo suficientemente alta, de tal manera que éstas sean transparentes para al convertidor. En resumen los criterios que se tuvieron en cuenta en el diseño del filtro son: Ganancia de banda constante y unitaria. Frecuencia de corte de 1kHz.. 35 Frecuencia de muestreo del convertidor análogo digital de 125 kHz. Atenuación de 68 dB a la mitad de la frecuencia de muestreo. La respuesta en frecuencia del filtro se puede observar en la figura 3.9. Figura 3.9 Respuesta en frecuencia del filtro Butterworth de ωc=1 kHz 3.3.4 Bloque de conversión análogo digital. El conversor análogo digital usado, es el interno del microcontrolador PIC18F258, el cual es un conversor por aproximaciones sucesivas de 10 bits, cuya referencia puede ser externa o interna. Antes de empezar alguna conversión se lleva a cabo la configuración del ADC teniendo en cuanta los siguientes pasos: • • • • Configurar el pin RA0 como entrada de señal análoga Establecer la referencia interna igual a la fuente de polarización del microcontrolador Escoger el canal 0 (AN0) como el canal de entrada Establecer el reloj de conversión. Para la selección del reloj de conversión se tuvo en cuenta el mínimo tiempo de adquisición requerido para este tipo de ADC, 16 µs, así para el reloj del módulo de 4 MHz, el tiempo de reloj adecuado es de 125 kHz. Al terminar la configuración, el ADC, entra en estado de espera de orden de inicio de conversión, señal enviada por el bloque de procesamiento de datos. Cuando recibe dicha 36 orden, el ADC se abre y espera un tiempo de 20 µs, necesario para que el condensador interno sobre el cual se hace la medida de la señal a convertir, se haya cargado voltaje de la señal de entrada. Después de este tiempo, se le da la orden de iniciar la conversión y cuando el resultado este listo se envía al bloque de procesamiento. La exactitud de la respuesta de la conversión, de acuerdo a la resolución del ADC, está dada por: 10 bits equivalen a 210=1024 paso de voltaje y resolución=5/1024 (paso de voltaje por bit) 4.88 mV. 3.3.5 Bloque de procesamiento de datos. Este bloque, como se mencionó anteriormente, es el encargado de ordenar al ADC iniciar la conversión y recibir el resultado de la misma. Adicionalmente debe procesar dicho resultado, entregarlo al bloque de comunicaciones y visualizarlo correctamente en un display 7 segmentos. Cuando el bloque de procesamiento recibe el mensaje de solicitud de temperatura proveniente del modulo principal, le ordena al ADC realizar 10 conversiones, para obtener una medida más aproximada a la temperatura real ambiente y almacena el resultado en un bufer. Teniendo las 10 medidas, se realiza el promedio de ellas, y el resultado es entregado al bloque de comunicaciones. Debido a que el modulo no cuenta con un circuito integrado para manejar el display 7 segmentos, el bloque de procesamiento debe tomar la señal promedio de las 10 conversiones, relacionarla con la temperatura, por medio de la ecuación del sensor (ver bloque de amplificación) y la ganancia dada a la señal, y a través de un algoritmo implementado en el microcontrolador, (ver Anexo B, diagrama de flujo de módulo de temperatura), mostrar la temperatura en el display. 3.3.6 Bloque de comunicaciones. El módulo de temperatura al igual que los demás módulos de la red, se comunica a través del protocolo CAN de topología tipo bus. El módulo de comunicaciones se encarga de administrar la transmisión y la recepción de mensajes presentes en el bus de una manera adecuada a través del bufer, las máscaras y filtros de este módulo. 37 Tabla 3.7 Máscaras y filtros del módulo temperatura MÁSCARA FILTRO 0x05X 0xFFF No usado No usado No usado 0xFF0 No usado No usado En la tabla 3.7 se puede observar que solo se utiliza el filtro 1, debido a que solo hay un mensaje en el bus de su interés –solicitud modulo de temperatura X- de la misma forma el módulo tiene un único mensaje de transmisión hacia el modulo principal, reportando el valor de la temperatura medida. El valor asignado al filtro 1 depende del numero del numero del modulo (ver tabla 3.8). Tabla 3.8 Valores del filtro de los diferentes módulos de temperatura No de módulo 1 2 3 4 Valor Filtro 1 0x051 0x052 0x053 0x054 Este bloque cuenta con un transceiver que se encarga de convertir la señal de transmisión en diferencial y de esta forma protegerla al hacerse dos veces más grande que la señal de ruido presente en el ambiente. Se puede deducir que también debe hacer el proceso inverso al recibir una señal diferencial y convertirla en referida a tierra. 38 3.4 MÓDULO DE AIREACIÓN El módulo se aireación se divide en (ver figura 3.10) Bloque de muestreo Bloque de administración Bloque de comunicaciones Figura 3.10 Diagrama de bloques del modulo de aireación SENSOR ADMINISTRACIÓN COMUNICACIONES BUS CAN 3.4.1 Bloque de muestreo. Para detectar la presencia de aire en el sistema, en una primera aproximación se considero emplear acelerómetros, con el fin de detectar el movimiento del agua causado por la agitación del aire circundante en la cercanía del tubo de aireación, y por lo tanto la presencia de aire en el acuario. Otra opción considerada fue implementar pequeños sistemas mecánicos a base de engranajes y leds infrarrojos, cuya función seria detectar el movimiento de los piñones por causa igualmente de la agitación del agua en cercanía al tubo de aireación. Teniendo en cuenta las necesidades de la bodega y las cualidades que debe tener un sensor apropiado para esta, este se escogió de acuerdo a: Costos de acuerdo al número de acuarios presentes en una bodega de este tipo. Resistencia frente al proceso de cambio de agua en el acuario y al aseo del filtro que soporta la manguera que suministra el aire al acuario. 39 El costo elevado de un acelerómetro (10 US) descartó esta posibilidad, mientras que la opción mecánica se veía limitada por el trato al que se ven sometidos los acuarios diariamente en el trabajo de la bodega. Por lo tanto se decidió implementar un sensor de paso de agua, instalado en el interior de la manguera que lleva la aireación a cada acuario. Cuando el flujo de aire es interrumpido por cualquier causa, la manguera se llena de agua, el sensor la detecta y cambia su estado; en el caso contrario, en el cual el sistema de aireación se encuentre funcionando correctamente, la presión del aire, no permite el ingreso de agua en la manguera y el estado del sensor es diferente al descrito anteriormente (ver figura 3.11). Figura 3.11 Topología del sensor para detectar falla en el sistema de aireación SENSOR MANGUERA SOPORTE FILTRO ACUARIO CON AIREACIÓN ACUARIO SIN AIREACIÓN El circuito consta de dos cables conductores y dos transistores bipolares que se cortan o se saturan. Los conductores, son los que se encuentran en la parte interior de la manguera y están separados cierta distancia para evitar que al juntarse o en la presencia de una burbuja de agua dentro de la manguera, se generen fallas erróneas. Uno de los conductores se encuentra conectado a una de las terminales de una resistencia que se encuentra enlazada a fuente y el otro se encuentra conectado a la base de un transistor. En el momento en el que se detecta presencia de agua en la manguera, por medio de sus propiedades conductivas, el voltaje de fuente se refleja en la base del primer transistor, saturándolo, estado de falla. Mientras el agua no penetre en la manguera, el voltaje en la base del primer 40 transistor es cero, asegurando el transistor en estado de corte, estado de no falla. El segundo transistor cumple la función de inversor. El esquemático del sensor se muestra en la figura 3.12 y de manera más amplia en el Anexo C, esquemáticos módulo de aireación. Figura 3.12 Esquemático del sensor de aireación VCCA VCCA R6 VCCA R8 R9 SALIDA Q2N2222 Q2N2222 R7 R10 2 1 CONDUCTOR 0 0 0 3.4.2 Bloque de administración. En la red CAN de supervisión de la bodega, existe un número variable de módulos de aireación, de acuerdo a la cantidad de acuarios de almacenamiento que se tengan. El sistema desarrollado tiene la capacidad de supervisar 512 acuarios, es decir como máximo soporta 32 módulos de este tipo. De acuerdo a lo anterior, el módulo de aireación es de tipo expandible, es decir, el propietario puede adquirir cualquier número de módulos (dentro del rango mencionado) y en el momento en el que requiera uno mas, no se necesita de ningún tipo de configuración complicada por parte de operario del sistema para instalar el módulo, simplemente debe conectarlo a la red y a través de un procedimiento sencillo guiado en la aplicación del computador, la configuración se llevará acabo. El bloque de administración es el encargado del proceso de configuración del módulo, confirmación de la configuración y de revisar y reportar el estado de la aireación del los acuarios que tiene bajo supervisión. Cada vez que un módulo es activado, lo primero que hace es revisar si tiene un identificador asignado o si es un módulo nuevo, proceso que realiza a través de la lectura de una dirección específica de su memoria EEPROM; si el resultado de la lectura es 256, significa que es un nuevo módulo que necesita ser configurado, el bloque de administración detecta este estado y genera un mensaje CAN de solicitud de configuración. El mensaje lo recibe directamente el computador, que a través de la base de datos, reconoce los identificadores 41 ya asignados para este tipo de módulos y le presenta como posibilidad al usuario los que no se encuentran asignados, para que él libremente asigne un ID cualquiera. Una vez configurado el módulo, éste recibe un mensaje de solicitud de confirmación de configuración, lo que genera una nueva lectura de la memoria EEPROM y enviar mensaje de confirmación de configuración exitosa. Cabe resaltar, que el módulo principal debe enterarse de la existencia de un nuevo módulo configurado exitosamente para incluirlo en la rutina de supervisión, por tanto los mensajes de configuración y de confirmación también son dirigidos al bloque de comunicaciones del módulo principal (ver sección módulo principal). El módulo que presenta una configuración exitosa se pone en modo de espera de un mensaje CAN, en este caso aquel que hace solicitud del estado de los acuarios que tiene bajo supervisión. Cuando este mensaje llega, el módulo lee los puertos en donde se encuentran los sensores y los reporta a través de un mensaje dirigido al módulo principal. Adicionalmente el sistema cuenta con la posibilidad de retirar un módulo o cambiarle el número de identificación. Ambos procesos causan cambio del dato almacenado en la EEPROM, en el caso de retirar un módulo, se guarda un 256 en la dirección de memoria destinada a la configuración, de ésta forma el módulo será desconfigurado y podrá ser retirado de la red sin generar errores de ningún tipo, para ser configurado nuevamente el módulo debe ser desconectado de la red. En el caso de cambio de identificación, el dato que se almacena en EEPROM, es el nuevo ID enviado desde la aplicación. La utilización de la memoria EEPROM permite conservar la configuración del identificador en los módulos cuando el sistema se apaga por alguna razón, por lo tanto no es necesario configurar los módulos de aireación cada vez que el sistema se enciende. Este proceso es descrito en el Anexo B, diagrama de flujo módulos de aireación. 3.4.3 Bloque de comunicaciones. El módulo de aireación al igual que los demás módulos de la red se comunica a través del protocolo CAN de topología tipo bus. El módulo de comunicaciones se encarga de administrar la transmisión y la recepción de mensajes presentes en el bus, de una manera adecuadamente a través del bufer, las máscaras y filtros de este módulo. 42 Tabla 3.9 Máscaras y filtros del módulo aireación MÁSCARA FILTRO 0xFF0 0xFFF 0x031 No usado 0x061 No usado No usado No usado Los módulos de aireación cuentan con el mismo valor de máscaras y filtras en cada uno, lo que causa que todas los mensajes de configuración dirigidos a un módulo específico, sean aceptados por todos los demás módulos existentes en el sistema a través del filtro 1, al igual que los mensajes de petición que son aceptados a través del filtro 3; por tanto, el bloque de comunicaciones debe discernir, de alguna otra manera y no a través del identificador de la trama, como en los otros módulos, que mensajes de estos le conciernen a él y no a otro módulo. La identificación de los mensajes de interés para cada módulo de aireación se hace por medio del primer dato transmitido en la trama CAN. El módulo recibe el mensaje, descarga el dato 0 y lo compara con el ID que tiene guardado en la memoria EEPROM; si coinciden toma el mensaje y lo pasa al bloque de administración para ser interpretado, sino simplemente lo descarta. 3.5 MODULO DE COMUNICACIÓN CON EL COMPUTADOR Este módulo realiza la función de intérprete entre el computador y la red CAN. Está encargado de obtener, descifrar y proveer todos y cada uno de los datos presentes en el bus de forma adecuada al computador usando el puerto serie como medio de comunicación, como también se encarga de tomar los mensajes provenientes del computador y comunicarlos con el resto de hardware del sistema, usando como medio un BUS CAN. En la figura 3.13 se puede observar el diagrama de bloques de este módulo 43 Figura 3.13 Diagrama en bloques módulo de comunicación con el computador CONVERSIÓN DE PROTOCOLOS Datos RS-232 COMPUTADOR BUS CAN Este módulo cuenta con dos tipos de interrupciones, recepción de un mensaje CAN y recepción de un mensaje RS-232, que se encuentran con diferente nivel de prioridad. Los mensajes CAN al ser más frecuentes y repetitivos tienen una prioridad menor que los mensajes RS-232, de otra forma el algoritmo de este módulo, se dedicaría a atender solo mensajes CAN e ignorando la mayor parte del tiempo aquellos provenientes del computador, que al no ser repetitivos tienen alta probabilidad de perderse o generar overflow en el bufer de recepción de la USART, lo que causa serios problemas en el proceso de supervisión de la bodega. (ver diagrama de bloques módulo de comunicación) Para la transmisión de mensajes al computador, se implementó un protocolo de comunicación que viaja sobre RS-232, el cual consiste de (figura 3.14): Identificador. Es el que le permite al computador o al sistema CAN, interpretar correctamente los datos para saber su significado y realizar tareas de acuerdo a su contenido. Existen 11 mensajes diferentes a transmitir al computador (ver tabla 3.3) y 9 mensajes diferentes que provienen del computador, por esta razón y pensando la posibilidad de agregar otros mensajes que se requieran en un futuro, se destino un byte para este campo de la trama. Datos. La longitud de la trama de datos depende de la dirección de transmisión al computador. Cuando baja un mensaje del computador la longitud de los datos es de 6 y cuando suben es de 8, valores que fueron asignados de acuerdo al número de datos máximos a transmitir en cualquiera de las dos vías. Checksum. Es la parte de la trama usada para detectar posibles errores durante la transmisión del mensaje RS-232, cuyo valor depende del resultado de la suma de cada uno de los datos y el identificador y su longitud es de 2 Bytes. 44 Figura 3.14 Trama RS-232 IDENTIFICADOR (1 Byte) DATOS (7 – 9 Bytes) CHEKSUM (2 Bytes) Cuando el módulo recibe un mensaje por medio de la USART, primero distingue el contenido del mismo a través del identificador, luego descarga los datos transmitidos, calcula el checksum de esta parte de la trama, y por último compara el valor calculado con el transmitido en el mensaje, si no coinciden, se solicita retransmisión al computador y si coinciden se transmite un mensaje CAN con un identificador de acuerdo al contenido del mensaje recibido por la USART. Además de recibir y transmitir datos, el módulo de comunicaciones también se encarga de detectar el estado de la aplicación del computador, cada vez que en la red CAN se inicia el proceso de supervisión; esto se hace por medio de un mensaje de identificador 11 que el módulo de comunicación transmite al computador, si la aplicación se encuentra abierta, se enviará un mensaje de confirmación que le indica al módulo que puede iniciar la transmisión de datos de subida, mientras no se reciba esta confirmación no se subirán datos. En el momento en el que todo el sistema se encuentre supervisando correctamente y la aplicación se cierra, el módulo recibe un mensaje del computador que le indica que debe parar la transmisión al computador hasta nueva orden, es decir cuando la aplicación sea iniciada de nuevo. Al igual que todos los bloques de comunicación de cada modulo, la recepción de mensajes provenientes del bus CAN se lleva a cabo a través de bufers controlados por los filtros y máscaras CAN. Los valores de los filtros y las máscaras se pueden observan el la tabla 3.10. Tabla 3.10 Máscaras y filtros del módulo de comunicación con el computador MÁSCARA FILTRO 0x100 0xFF0 0x300 0x041 0x021 0x510 No usado 0xFF0 45 El filtro 1 recibe los mensajes relacionados con la iluminación, solicitud del número de módulos de aireación activos, falla de los módulos de temperatura y reporte de temperatura; el filtro 2 recibe el mensaje de solicitud de las fallas a ser reportadas en el display; el filtro 3 recibe los mensajes relacionados con la configuración de un módulo de aireación; el filtro 4 recibe la alarma de falla en el sistema de aireación: el filtro 5 recibe la confirmación del estado de la iluminación y el filtro 6 no se usa. Como todos los módulos del sistema, cuenta con un transceiver para el bus CAN que se encarga de convertir la señal de transmisión en diferencial y de igual forma recibir una señal diferencial y convertirla en referida a tierra. Adicionalmente cuenta con un transceiver para RS 232 (MAX232) que se encarga de convertir las señales de voltaje a niveles adecuados para el computador y para el microcontrolador. 3.6 SOFTWARE SUPERVISOR El software supervisor es el encargado de procesar, almacenar y administrar los mensajes provenientes de los diferentes módulos de la red. Se divide en dos partes, un ambiente gráfico desarrollado en el programa Visual Basic y una base de datos Access, que se comunican entre sí por medio de sentencias SQL. La base de datos guarda información de supervisión relevante para el buen funcionamiento del sistema a través de tablas que se clasifican según su información en (ver figura 3.15): Tablas de alarmas Alarmas de módulo de aireación Alarmas de acuario sin aire Alarmas de módulo de temperatura Alarma de temperatura fuera del rango Tablas de información Número de módulos de aireación en el sistema Información de los módulos de aireación Detalles de acuarios Cambios de temperatura en un día Tablas para supervisión Datos de la última supervisión realizada en el sistema Rango normal de temperatura Programación de tareas 46 Figura 3.15 Tablas de la base de datos El tipo de programación que se empleó en el desarrollo de la aplicación de software, es orientada a objetos, donde el programa no actúa de una manera cíclica, sino responde a eventos generados, a través del puerto de comunicación RS-232 por la recepción de mensajes o por medio de acciones manuales realizadas por la intervención directa del administrador de la aplicación. La atención de mensajes recibidos por el puerto COM, se describe de manera específica, en el diagrama de flujo de la aplicación Anexo B. La respuesta a los eventos origina: 3.6.1 Supervisión de temperatura. Existen tres tipos de mensajes CAN que recibe el computador, a través del módulo de comunicación, relacionados con la temperatura, reporte del valor de la temperatura de cada uno de los módulos, reporte de la temperatura promedio de la bodega y reporte de estado de alarma de uno de los módulos. En los dos primeros casos el computador recibe en los datos del mensaje, el valor de voltaje equivalente a la temperatura, por esta razón antes de ser mostrados en la interfaz gráfica, se ejecuta un algoritmo de transformación a temperatura por medio del uso de la ecuación del sensor y el valor de la ganancia dada a la señal medida por el mismo. La interfaz cuenta con cinco termómetros distribuidos en la pantalla principal, de esta manera, el operario puede conocer tanto el promedio, como el valor de la temperatura en las diferentes zonas donde se encuentran los sensores. El algoritmo de transformación también es utilizado para animar el termómetro donde se presenta la temperatura promedio. 47 Figura 3.16 Visualización valor de la temperatura por zonas Estado OK Termómetro Ventana de valor temperatura de la promedio temperatura Termómetro de zona Figura 3.17 Visualización temperatura promedio de la bodega En el tercer caso, el software interpreta el número de módulo que falló y genera un mensaje de alerta en la pantalla, como se ve en la figura 3.18. Figura 3.18 Visualización falla en el módulo de temperatura Ventana de reporte de falla en módulo de temperatura Estado Falla Como evento manual, el administrador del programa puede configurar niveles de temperatura máximos y mínimos permitidos en el hábitat temporal de los peces, cuyos valores se almacenan en la base de datos. De esta forma, cada vez que se recibe el promedio de la temperatura se determina si esta dentro del rango preestablecido y si se sale de éste, se genera un mensaje de alarma en la pantalla que se mantendrá mientras la temperatura no se normalice. 48 Figura 3.19 Ventana configuración modulo de temperatura El sistema almacena, cada media hora, en la base de datos, el valor de la temperatura promedio de la bodega y a través de éstos valores genera gráficas donde se puede observar las variaciones de esta variable durante el día o la noche, así en caso de presentarse enfermedades o muerte de los peces, las gráficas pueden ayudar a determinar si fueron causadas por el un cambio brusco de esta variable. Figura 3.20 Ventana de visualización variación de la temperatura en un día 49 3.6.2 Supervisión del estado de aireación. En el caso de aireación dos tipos de mensaje CAN son recibidos a través del módulo de comunicaciones, el primero es de reporte de módulo que no responde y el segundo de alarma de un acuario con falla en el suministro de aire. El primer evento produce la generación de un mensaje de alerta en la pantalla que reporta el número de módulo que no responde en el sistema, figura 3.21. Figura 3.21 Visualización falla en el módulo de aireación La interpretación del segundo mensaje es un poco mas compleja, debido que en el momento en el cual el módulo fue configurado, se le asigna un intervalo fijo de acuarios pertenecientes a una sección de la bodega, que no tiene relación con el número de identificador que le fue asignado. Por este motivo, el computador, en el momento de recibir un mensaje de este tipo, realiza un algoritmo en el cual lee de la base de datos la información que relaciona el número de módulo con la sección a la que pertenece y el rango de acuarios que supervisa, información que junto con los datos recibidos en el mensaje, genera mensajes de alarma de acuario. En el momento en el que un mensaje de alarma se interpretado, el recuadro del mapa de supervisión en la ventana principal que representa la sección con estado de falla, cambia su color a rojo y haciendo clic sobre ella se podrá conocer exactamente que acuario esta en estado de alarma; una vez resuelto el problema, el color de la sección y el acuario vuelve automáticamente al que representa estado normal. 50 Figura 3.22 Visualización de fallas en el acuario Vista ventana principal Vista específica de una sección 3.6.3 Control del encendido y apagado de la luz. El encendido y apagado de la luz, se realiza por eventos manuales generados por el usuario en la ventana principal, ya sea al oprimir un botón de encendido o apagado, o seleccionar opción de modo manual o controlado de la iluminación, como se observa en la figura 3.23. Cuando se selecciona un modo de iluminación, la aplicación envía un mensaje de reporte de cambio en el modo, y espera recibir confirmación de cambio exitoso, sino se recibe dicho mensaje en un intervalo de tiempo determinado por un temporizador, una ventana avisara al usurario que no se pudo realizar el proceso. Al oprimir el botón de prender o apagar, una ventana del mapa de la bodega que ilustra la distribución de las áreas de iluminación, se abre. En esta ventana se pueden seleccionar las áreas que desean ser iluminadas, teniendo en cuenta el estado actual de cualquiera de ellas, de prendido o pagado, de esta manera las áreas sobre las cuales se ha ejercido una acción de iluminación previamente conservarán su estado para el momento en que se desee realizar la siguiente operación sobre la iluminación, por ejemplo, si se dio la orden de prender la luz en el área 1 y área 2 una variable guarda este estado, por tanto en el momento en el que se seleccione la opción de prender la luz, el área 1 y 2 no están habilitadas. De igual forma si se desean apagar y solo estas dos zonas tienen la luz encendida, el usuario solo 51 podrá enviar la orden de apagar una de las dos o las dos zonas, las demás estarán deshabilitadas. Figura 3.23 Ventanas de control de iluminación Acción Modo de iluminación Pantalla principal Venta zona de iluminación Cuando se ejecuta la acción iluminación, el software interpreta la información del recuadro de encendido de luces (ver figura 3.23), y de acuerdo a esta, arma una trama que le indica al modulo principal el tipo de acción a realizar y sobre cuales áreas. En este caso también se espera recibir un mensaje de confirmación, para generar un aviso de proceso exitoso. 3.6.3 Configuración de módulos de aireación. Como se observa en la figura 3.24, los módulos de aireación realizan transmisión automática de un mensaje de solicitud de configuración al computador, evento que produce la carga de una ventana de configuración que contiene la información de los números de módulos que han sido configurados, el número de identificador de módulo disponibles para ser asignados, y el rango de acuarios que el módulo va a supervisar, información que se obtiene por medio de la interpretación de datos almacenados en la tabla de información de los módulos de aireación de la base de datos. Cuando la información de configuración ha sido enviada al módulo, se lleva a cabo la transmisión de un mensaje de confirmación de la configuración, si se recibe respuesta, la base de datos es actualizada con la información del modulo entrante, sino se avisa al usuario que se presentó algún problema en el proceso. 52 Figura 3.24 Proceso de configuración de módulo de aireación Solicitud de configuración Respuesta de configuración Supervisor PC Módulo de aireación Solicitud de configuración Solicitud de confirmación Respuesta de confirmación El programa permite cambiar el número de identificación o desconfigurar un módulo que se encuentre activo en la red, en el primer caso la tabla de información del módulo de la base de datos se modifica, en el segundo además de esta se modifican también las tablas de detalles y de número de módulos. Una vez ejecutados estos dos eventos, se solicita confirmación de cambio de identificación exitoso. 3.6.4 Programación de tareas. El usuario tiene la posibilidad de programar avisos para recordar ejecución de tareas tales como: Encendido controlado de la luz Apagado controlado de la luz Cambio de agua de determinado acuario Alimentación de los peces La información de la programación de tareas (figura 3.25) es almacenada en la base de datos y consultada a través de temporizadores que interrumpen el programa cada determinado tiempo, evento en el cual se revisan si existe alguna tarea a reportar, si es así se abre una ventana con un mensaje de aviso de la tarea que debe ser realizada a esa hora. 53 Figura 3.25 Ventana de programación de tareas 3.6.5 Consulta de historial. La consulta de las tablas de alarmas se realiza a través del historial del programa. Las tablas de alarmas guardan la fecha y hora en el que falló la variable y cuando volvió a estado normal. La figura 3.26 muestra como está organizada la información en una de las tablas de alarmas de la base de datos. La consulta del historial se puede hacer de acuerdo a un tipo de falla especifica presente en uno o todos los elementos de la red. Figura 3.26 Tabla de alarmas de módulos de aireación 54 3.6.6 Otras tareas. El uso de la base de datos permite también almacenar, consultar y modificar detalles específicos de cada acuario de la bodega, que se encuentre o no bajo supervisión como se ve en la figura 3.27. Figura 3.27 Ejemplo de ventana de consulta de detalles de un acuario Además, existe una ventana que permite conocer la hora, fecha y valores de los últimos datos de supervisón que fueron realizados, de esta forma si por algún motivo se cierra la aplicación, se podrá conocer el tiempo durante el cual no existió supervisión por parte de la aplicación. Figura 3.28 Ventana de información de los datos de la última supervisión 55 3.7 DISEÑO DEL CONTROL DE TEMPERATURA El calentamiento del agua de los acuarios de la bodega se hace por medio de cinco quemadores de gas LP, dispuestos en diferentes zonas del lugar, los cuales al calentar el ambiente, calientan el agua por medio del fenómeno de convección natural, en el cual por causa de la diferencias de densidad y temperatura entre el aire y el agua tiene lugar un proceso de transferencia de calor de uno al otro. Debido a lo anterior, para el diseño del control de temperatura es necesario considerar la presencia de este fenómeno en el proceso de calentamiento del lugar así como en el mantenimiento de la temperatura dentro del mismo. A partir de teoría de termodinámica la ecuación que describe la tasa de calor empleada en un proceso de convección natural, denominadla ecuación de Newton o ley de enfriamiento es: Q = hA(∆t ) En donde, Q A ∆t h Transferencia de calor (Btu/h) Área de transferencia de calor (ft2) La diferencia de temperatura entre la superficie y el aire fuera de la superficie (°F) Coeficiente de transferencia de calor (Btu/°F*ft2*h) Para determinar la transferencia de calor, es necesario conocer el coeficiente de transferencia, este coeficiente depende del coeficiente de expansión, la densidad, la viscosidad, la aceleración de la gravedad, el diámetro o longitud de la superficie, el calor específico y de variables dependientes del sistema que son en parte determinadas por la clase de flujo, turbulento o laminar. De los anterior se determina que el cálculo del coeficiente es bastante complejo, razón por la cual se tiene ecuaciones deducidas a partir de mediciones experimentales en las cuales considerando el flujo de aire como turbulento, que actúa sobre una placa horizontal cuadrada, en donde el lado caliente es el superior (superficie de los acuarios), se puede utilizar la siguiente aproximación: h = 0.22(∆t ) 56 1 3 Tabla 3.11 Diferencias de temperatura, superficie del agua y ambiente en la Bodega de peces. Temperatura aire prom.(°C) Temperatura agua prom. (°C) 28 26.2 28 26.6 28 26.4 Con los valores de la tabla 3.11 y la ecuación de coeficiente para flujo turbulento se determinó el valor de dicho coeficiente, teniendo en cuenta que las variaciones del diferencial de temperatura son de 1.8 °C (35.24 °F), 1.6 °C (34.88 °F) y 1.4 °C (34.52 °F), por tanto el coeficiente varía entre 0.721 y 0.716 Btu/(h* ft2*°F). Utilizando un valor promedio del coeficiente de 0.72 Btu/(h* ft2*°F), la transferencia de calor actual en el lugar, teniendo en cuenta los 512 acuarios es de: A ∆t h 1.72 ft2 (área de 1 acuario) 34.9 °F 0.72 Btu/(h* ft2*°F) Q = 22.34 kBtu / h Debido a las mediciones realizadas en la bodega (ver tabla 3.12 y 3.13), la disminución de la temperatura en el ambiente produce un cambio muy lento en la temperatura del agua, lo que permite cortar el flujo de gas durante un tiempo determinado, haciendo que la temperatura del ambiente promedio baje un grado centígrado mientras que la temperatura del agua permanece casi constante. Tabla 3.12 Variación de la temperatura del agua cuando se han cerrado los quemadores. Hora Temperatura a.m en el agua (ºC) 7 26 7:30 26 7:40 26 7:50 26 8:00 26 8:10 26 57 8:20 8:30 8:40 8:50 9:00 9:10 9:20 10:00 10:30 11:00 11:30 12:00 26 26 26 26 25.8 25.8 25.8 25.6 25.5 25.5 25.5 25.2 Tabla 3.13 Variación de la temperatura del agua cuando se han abierto los quemadores. Temperatura agua Característica Temperatura una hora después de haber siso apagado el quemador Temperatura una hora después de haber siso encendido el quemador 26.4 ºC Temperatura ambiente 27 ºC 26.5ºC 28 ºC Si la temperatura ambiente baja 27 °C permitiendo una diferencia de temperatura de grado centígrado , la transferencia de calor sería: Q = 21.2 kBtu / h Lo que equivale mantener cerrado el flujo de gas durante un 5% del tiempo del día. En la bodega de interés, se utilizan un promedio de 18 pipetas de gas de 100 libras al mes (720 h), cada una con un costo de $48.000, por tanto utilizando el control de temperatura, las mismas 18 pipetas de gas tendría una duración de 750 h. Dado que el año tiene 8760 h, el sistema de calefacción sin control consume 219 cilindros al año equivalentes a un costo de $ 10´513.000. Ahora con el control se calcula un consumo de 210 cilindros al año que equivalen a 10´100.000, lo que implica un ahorro de $413.000 Para saber la viabilidad de la implementación del proyecto es necesario conocer la inversión para realizar el control de una manera confiable y segura, por tanto es necesario tener en 58 cuenta que los equipos e instrumentación en general deben cumplir con una serie de normas que se encuentran reglamentadas en los documentos: NFPA 58 Normas para el almacenamiento y manejo de gases licuados de petróleo. Ratificada a nivel nacional por las normas NTC 3853 equipo, accesorios, manejo y transporte de GLP. Para escoger los instrumentos necesarios para la implementación del control de acuerdo a la seguridad que se debe tener cuando se trabaja con gases tipo GLP se consultaron estas normas, además de otras relacionadas. Algunos de los aspectos a tener en cuenta para el caso en particular de este proyecto se mencionan a continuación: Los contenedores de gas deben instalarse en la parte exterior de la edificación, los cilindros o pipetas deben estar de acuerdo al capitulo 2 de dichas normas, para su disposición, distancia a otros, exposición a materiales inflamables y funcionamiento, así como con el volumen máximo permitido para instalaciones de es tipo, en esta caso 100 lb es un valor adecuado. En los quemadores de gas, se debe estar de acuerdo al capitulo 2.6 sobre aparatos de consumo y cumplir el numeral 2.6.2.2(NFPA 58) que determina que en lugares con calefacción destinados a la cría de animales, con quemadores sin cuidado se deben tener dispositivos que corten el paso de gas al ambiente en caso de falla en el piloto o en la llama de los quemadores. Las mangueras y tubería utilizada debe cumplir con los numerales 2.4(NFPA 58) de cañerías, tubería mangueras, para evitar selección equivocada, debe ser de acero flexible o tubería de cobre, manipulación errada, instalación defectuosa e inadecuada, fugas de gas, maltrato excesivo, exposición a ambientes no aptos, y riesgo de incendios en caso de fallas en el sistema. Los sensores de llama se necesitan para controlar los fallos presentados en los pilotos de los quemadores de gas, y así impedir acumulación de gas en el ambiente. Según la norma NTC 3531 en sus numerales 4.4.1 y 4.4.2, deben existir estos detectores de falla en el encendido o en la llama para impedir el paso de gas al ambiente por un tiempo de máximo 60 s. Estos artefactos también se requieren para ayudar a tener un encendido controlado del quemador como se enuncia en los numerales 3.2.2.7. La instalación en general de sistemas que consumen GLP deben cumplir con las normas NFPA 58 más específicamente con todo lo especificado en el capitulo 2 Instalaciones de sistemas de Gas LP, en cuanto a selección de los componentes y sus requisitos básicos de funcionamiento y seguridad. Por seguridad se recomienda instalar sistemas antiincendios tales como extintores y bombas que provean herramientas para extinguir el incendio, numeral(NFPA 58) 3.10 59 Almacenamiento de GLP. Se deben tener marcados y debidamente señalizados los dispositivos de control para las emergencias. Se recomienda instalar ventilación adecuada para el lugar, ya sea por entradas o salidas de aire o por medios mecánicos como lo expresa el numeral 7.2.2 de ventilación de estructuras o edificios. Se recomienda tener medidores de presión adecuados en cada uno de los cilindros tal como se enuncia en las norma NTC3853 numerales 2.5.6 y 2.5.7. Así como reguladores a lo largo de la red de gas en el lugar para interrumpir el paso de gas en caso de falla o aislar sectores para mantenimiento, válvulas y sistemas de alivio en los contenedores y en la red en general. De acuerdo a lo anteriormente expuesto y teniendo en cuenta que la bodega cuenta con 5 quemadores administrados por 2 cilindros de gas propano, se presenta una alternativa para el equipo necesario para la implementación del control: • • • • 2 válvulas VE4000 Honeywell Controladores de ignición FIREEYE. 5 Sensores de llamas Ultravioleta FIREEYE. 4 sensores de temperatura distribuidos, dispuestos en el sistema de supervisión CAN • Esquema de control, ejecutado por el sistema de supervisión desarrollado en torno a la red CAN dispuesta en el lugar. En la tabla 3.14 se muestran los costos de implementación de control, teniendo en cuenta que el sistema ya cuenta con los 4 sensores de temperatura distribuidos. De acuerdo análisis realizado, el tipo de control es ON/OFF por tanto se necesita una válvula ON/OFF que permita mantener cerrado o abierto el flujo de gas y además que cumpla con condiciones de seguridad para este tipo de gases. Los sensores de llama se cotizaron en dos diferentes empresas, FIREYE y UVETRON, las ventajas del controlador FEREYE frente al UVETRON es que incluye un controlador de ignición. Otra opción a considerar es cambiar los quemadores actuales de gas que no ofrecen ningún tipo de seguridad por otros quemadores. Los quemadores Mr. HEATER poseen detector de llama y controlador automático de ignición, esta podría llegar a ser la opción mas acertada al comparar su costo con el de los demás elementos de la lista. 60 Tabla 3.14 Tabla de costos implementación del control de temperatura COSTO UNIDAD COSTO TOTAL (EN DOLARES) (EN DOLARES) ACCESORIO Sensores de llama ultravioleta UVTRON R2868 + controlador FIREYE MBFP100S 80 330 400 1.650 LENOX, Control de ignición, 97L4801 190 950 150 300 300 1500 200 1000 Válvula ASCO 42205 ON/OFF Explosion proof Quemador Mr. HEATER MH170FAVT para gas propano cilindro de 100 lb. Mr. Heater MH125FAV para gas propano cilindro de 40 lb. A partir de los costos que implican la obtención de todos estos equipos y apoyados en los resultados del análisis que se hizo sobre el ahorro que el control permitiría realizar en el funcionamiento normal del lugar, se concluye que la implementación de este control no es viable, sin embargo se deja en claro que se debe colocar atención a los aspectos relacionados con la seguridad del lugar, dado que se está manejando gas LP, el cual como se mencionó debe cumplir con cierta normatividad de seguridad industrial para evitar accidentes causados por su mala utilización y manipulación. 61 4. RESULTADOS El sistema fue puesto a prueba en el lugar objetivo de este proyecto y en el laboratorio de desarrollo para evaluar los resultados alcanzados en el desarrollo del mismo, de esta forma se llevaron acabo una serie de pruebas para determinar su nivel de desempeño y funcionamiento. La red completa, constituida por 4 módulos de temperatura, 2 módulos de aireación, un módulo principal y un módulo de comunicación, fue conectada y dispuesta alo largo de la bodega para supervisar las variables de interés y en la zona administrativa de la misma para la utilización de la aplicación de software. Se evaluó el comportamiento del sistema durante las horas de la noche en un periodo de las 12:00 a.m a las 4 a.m, y en la horas de la tarde en un periodo de 3:00 p.m a 6:30 p.m, tiempo durante el cual la aplicación registró los valores de la temperatura cada 15 minutos, y supervisó el estado de la aireación en 5 acuarios del lugar. Todo esto implica tráfico en el BUS CAN de supervisón durante todo este tiempo, permitiendo evaluar la confiabilidad de la comunicación de la información durante este tiempo. En la prueba de la tarde se tomaron medidas de la temperatura con un termómetro Fluke 51 II, para realizar posterior comparación y análisis con las registradas por la base de datos de la aplicación de software. A continuación se relacionan los resultados de las pruebas descritas: Las pruebas del comportamiento del sistema en la bodega se realizaron bajo un ambiente húmedo, a una temperatura entre 26 °C y 28 °C. La distribución de los módulos de temperatura en la bodega se realizó como se muestra en la figura 4.1. 62 Figura 4.1 Condiciones de medida para prueba 1 en bodega Zona 4 5.40m 6.72m 6.15m b a 2.30m 1.8m Zona 1 2.30m 4 1 1.6m 4m Zona 3 Zona 2 1.38m 1.87m 3 2 Sensor temp. Calentador a gas Módulo temperatura Alturas: 1) 0.40 m a) 0.20 m 2) 1.43 m b) 0.40 m 3) 0.44 m Línea de acuarios 4) 0.30 m El análisis de los resultados de estas pruebas se presenta a continuación: 63 Figura 4.2 Temperatura promedio 27,3 Temperatura [ºC] 27,2 27,1 27 26,9 26,8 26,7 26,6 26,5 26,4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Muestras Figura 4.3 Temperatura por zonas 29,00 28,50 Temperatura [°C] 28,00 Zona 1 Zona 2 Zona 3 Zona 4 27,50 27,00 26,50 26,00 25,50 25,00 24,50 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Muestras En la figura 4.3 se observan cambios abruptos en el comportamiento de la temperatura, éstos se deben a cambios realizados en la ubicación de los módulos, a las 2:00 a.m el módulo de temperatura No 2 se movió de la zona 2 a la posición a de la zona 4 y a las 3:27 a.m el módulo de temperatura No 1 se movió a la posición b, como se muestra en la figura 4.1. Se observa que los módulos que se encuentran a la misma altura presentan un comportamiento muy similar, y en las zonas altas la temperatura es mayor al igual que en aquellas que se encuentran mas cercanas a los calefactores de gas. Para llevar a cabo la comparación entre el sistema CAN y el termómetro digital Fluke 51 II, se cambió la disposición de los módulos de temperatura como se observa en la figura 4.4. El 64 termómetro Fluke se colocó en diferentes zonas y se tomaron medias cada diez minutos, que luego fueron comparadas con las almacenadas en la base de datos, los resultados se muestran en la figura 4.5 (referirse al Anexo D para consultar las tablas de resultados). 4 3 2.56m Zona 4 Zona 2 6.15m 2 Zona 3 2.84m 1.70m Figura 4.4. Condiciones de medida prueba 2 en bodega Zona 1 1.6m 4m 1 1.38m 1.87m Sensor temp. Calentador a gas Módulo temperatura Alturas: 1) 0.75 m 2) 0.61 m 3) 0.68 m 65 Línea de acuarios 4) 0.61 m Figura 4.5 Comparación de medidas, sistema CAN-Fluke 51 II en la bodega de peces 29,50 29,00 28,50 28,00 Fluke 27,50 Sist ema 27,00 26,50 26,00 25,50 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Muest r as Esta prueba se repitió bajo diferentes condiciones ambientales, en un de los cubículos del edificio de la facultad de Ingeniería de la Universidad Javeriana, en donde el termómetro Fluke y los módulos de temperatura se encontraban midiendo la temperatura ambiente del recinto a un distancia mínima uno del otro. Los resultados obtenidos en esta prueba se muestran en la figura 4.6. Figura 4.6 Comparación de medidas, sistema CAN-Fluke 51 II 25 24 Temperatura [ºC] 23 Fluke Sistema 22 21 20 19 1 3 5 7 9 11 13 15 17 19 21 23 Muestra 66 25 27 29 31 33 35 37 39 41 43 Se puede observar que la diferencia absoluta entre las medidas del sistema con las del fluke, es menor a 0.7 ºC, y el valor promedio de diferencia entre las dos mediciones es de 0.25 ºC (ver Anexo D, tabla de comparación de medidas realizadas en la bodega JB Peces Tropicales), lo cual indica que el sistema presenta una respuesta adecuada a la medición de temperatura bajo diversas condiciones, tal como se determina en la figura 4.6 (ver Anexo D, tablas de comparación de medidas realizadas en el laboratorio de trabajo) , donde la diferencia promedio entre las medidas es 0.13 ºC. A partir de las pruebas realizadas con el sensor de presencia de agua, tanto en la bodega, en el transcurso de tiempo ya descrito, como en la Universidad Javeriana equivalentes a 30 horas, se determinó que para obtener un funcionamiento adecuado del mismo, la mejor alternativa es dejar una distancia mínima entre los conductores de 3 cm, y una distancia de 10 cm al interior de la manguera desde uno de sus extremos, debido a que a una distancia menor se presentan falsas alarmas por causa de burbujas presentes en la interacción del aire con el agua en el proceso de aireación, mientras que a la distancia sugerida este inconveniente baja considerablemente, en forma más concreta se presentaron 3 falsas alarmas en las pruebas, las cuales por su naturaleza desaparecen instantáneamente. Por otra parte el sistema se muestra efectivo a la hora de reportar las alarmas por falta de aire, el tiempo de retardo está determinado por la velocidad con la cual el agua penetra en la manguera hasta alcanzar el par de conductores, siendo en promedio equivalente a 10 s, este tiempo no es critico para la aplicación y por lo tanto para la supervisión de los acuarios. Sin embargo cuando se presenta un estado de falla en la aireación el sensor tiende a reportar al supervisor una alarma intermitente pero constante durante el todo el tiempo que la falla persista. Los resultados de la supervisión bajo las diferentes condiciones descritas se muestran en las siguientes tablas (4.1,4.2,4.3) a partir de los registros reportados en la base de datos de la aplicación. Tabla 4.1 Reporte de alarmas, acuario 32, distancia entre conductores de 3 cm No Acuario 32 32 32 32 32 Hora 06:33:08 p.m. 06:38:26 p.m. 06:38:26 p.m. 07:15:46 p.m. 07:15:46 p.m. 67 Fecha 30/10/2004 30/10/2004 30/10/2004 30/10/2004 30/10/2004 Estado ERROR Ok ERROR Ok ERROR Tabla 4.2 Alarmas falsas presentadas, distancia entre conductores de 3 cm No Acuario 32 32 19 19 32 32 Hora 04:15:33 p.m. 04:15:33 p.m. 05:36:47 p.m. 05:36:47 p.m. 03:47:15 p.m. 03:47:15 p.m. Fecha 21/10/2004 21/10/2004 27/10/2004 27/10/2004 30/10/2004 30/10/2004 Estado ERROR Ok ERROR Ok ERROR Ok Tabla 4.3 Alarmas falsas presentadas, distancia entre conductores de1 cm No Acuario 31 31 31 31 31 31 31 31 31 31 31 31 31 31 Hora 05:17:51 p.m. 05:17:51 p.m. 05:17:53 p.m. 05:17:54 p.m. 05:18:50 p.m. 05:18:51 p.m. 05:18:53 p.m. 05:18:53 p.m. 05:18:58 p.m. 05:18:58 p.m. 05:19:00 p.m. 05:19:00 p.m. 05:19:02 p.m. 05:19:02 p.m. Fecha 30/10/2004 30/10/2004 30/10/2004 30/10/2004 30/10/2004 30/10/2004 30/10/2004 30/10/2004 30/10/2004 30/10/2004 30/10/2004 30/10/2004 30/10/2004 30/10/2004 Estado ERROR Ok ERROR Ok ERROR Ok ERROR Ok ERROR Ok ERROR Ok ERROR Ok La red de supervisión y en general el protocolo de comunicación presentó un resultado satisfactorio en las pruebas realizadas tanto en la bodega como en el laboratorio de desarrollo, la información de supervisión fue reportada de forma exitosa desde los cuatro módulos de temperatura, los dos módulos de aireación, a través del módulo principal, en condiciones normales de operación hacia la aplicación de software de forma continua durante el tiempo de duración de las pruebas, manteniendo actualizada tanto la base de datos como el mismo supervisor mostrando el estado de la red en el mismo tiempo. La distancia de la red equivale a 50 m, distribuidos en topología de BUS dispuesta desde el computador en la parte administrativa de la bodega en la segunda planta de la edificación hasta la primera, donde queda el conjunto de acuarios tal como se mostró antes en los planos de las condiciones de medida. Las pruebas de desconexión intencional de los diversos módulos procedieron acorde a lo esperado, la falla es reportada en la aplicación de supervisión luego de reportar la ausencia del módulo en la rutina de supervisión, del mismo modo cuando el módulo de aireación o de 68 temperatura, es nuevamente conectado, vuelve a entrar en operación normal de forma correcta. El protocolo de comunicación permite que los errores en el Bus sean transparentes al usuario, pues estos son detectados y corregidos por el motor CAN retransmitiendo los mensajes que sean necesarios, de esta forma es preciso enunciar que se presentan ocasionalmente tramas inválidas en el Bus al conectar un módulo nuevamente a la red, debidas a manipulación tosca del conector o conexiones desacertadas del mismo, estas tramas inválidas son detectadas e ignoradas por el resto de módulos. Así mismo en el tiempo de duración de las pruebas se presentó una falla de comunicación en el Bus debido a una interrupción en la rutina de supervisión por parte del módulo principal. La aplicación de supervisión en el computador, reportó y almacenó cada una de las alarmas y pruebas realizadas, registró la temperatura y no presentó fallas por si misma, su rendimiento va de la mano con los requerimientos de hardware adecuados, se comprobó la efectividad de las herramientas de confirmación de tareas hechas sobre la red desde la aplicación tales como el encendido-apagado de la luz, y la configuración de los módulos de aireación. Por lo tanto de presentarse errores de comunicación en el bus o por causas externas se genera desconexión de los módulos de iluminación o de aireación la aplicación reporta adecuadamente la imposibilidad de llevar acabo estas tareas. A partir de todos los resultados antes expuestos y del diseño realizado a través de toda la fase de desarrollo del proyecto, se determina que este cumple satisfactoriamente con los objetivos propuestos, se ha alcanzado el objetivo de desarrollar un sistema de supervisión modular distribuido en una red, de variables como la aireación, la iluminación y la temperatura, se ha elaborado una aplicación de software con distintas posibilidades de consulta de información relevante para el manejo adecuado del almacenamiento de los peces así como del estado de funcionamiento de los sistemas bajo supervisión en el lugar. Por último en la tabla 4.3 se presenta el costo de desarrollo, respecto del presupuesto realizado al principio del proyecto, no se encuentra muy alejado. Para obtener el costo neto se han tenido en cuenta tres principales factores, la materia prima, la mano de obra y los costos indirectos, los incrementos se deben por los cambios que sufrió el esquema general del sistema planteado. Ahora para obtener un valor o precio final del producto, se tiene en cuenta un margen de utilidad, además de suponer que de comercializarlo se trabajaría bajo un esquema en el cual se dispondría una producción en serie en la cual se tendrían costos variables como los materiales que dependerían de la cantidad de unidades producida, permitiendo que algunos de los costos antes expuestos bajen en un 50% y por lo tanto los de producción, como ejemplo se tiene el costo de los circuitos impresos, el costo de los microcontroladores y de materiales en general, mientras que los costos del grupo humano y la maquinaria permanecerían constantes, dejando como conclusión final que el producto podría venderse a un costo total de: $ 8’000.000 69 Tabla 4.3 Tabla de costos del sistema HORAS X PERSONA Director trabajo de grado 24 semanas * 2h Asesor 24 semanas * 2h 24 semanas Desarrolladores *40h*2 TOTAL RECURSOS HUMANOS INGENIERIA Y APLICACIÓN DE SOFTWARE RECURSOS HUMANOS MATERIA PRIMA PIC18F458 PIC18F458 PIC18F248 PIC18F258 Sensor temperatura LM35DZ Sensor aireación (cable dos pares) Caja plexo IP 55 (módulo principal) Caja plexo IP55 (módulo temperatura) Caja plexo IP55 (módulos de aireación) Caja módulo de comunicación Prensaestopas Impresos (módulos) Cajas para bus CAN Componentes varios Cable UTP Cable serial TOTAL MATERIALES EQUIPO Alquiler de equipo TOTAL EQUIPO PAPELERÍA Papel CANTIDAD 1 1 6 1 4 32 (96 m) 1 4 2 1 10 9 10 50 m 2m VALOR HORA $ 30.000 $ 20.000 $ 15.000 VALOR UNIDAD $24.000 $24.000 $21.000 $24.000 $3.500 $250 (1 m) $55.000 $28’800.000 $31’200.000 $4’000.000 TOTAL $24.000 $24.000 $126.000 $24.000 $14.000 $24.000 $55.000 $10.000 $40.000 $13.000 $26.000 $8.000 $700 $800 $700 - $8.000 $7.000 $390.000 $8.000 $150.000 $35.000 $4.000 $1’270.000 Varios CANTIDAD 2 Resmas VALOR UNIDAD $10.000 70 $1’440.000 $960.000 TOTAL VALOR UNIDAD - CANTIDAD TOTAL TOTAL $5’000.000 $5’000.000 TOTAL $20.000 Fotocopias Empaste Cartucho Discos Compactos Disquetes TOTAL PAPELERIA LICENCIAS DE SOFTWARE 800 3 2 10 10 CANTIDAD Herramienta de desarrollo 1 TOTAL LICENCIAS DE SOFTWARE COSTOS INDIRECTOS Energía Transporte TOTAL COSTOS INDIRECTOS TOTAL COSTOS CANTIDAD 1000 h 600 viajes 71 $50 $10.000 $80.000 $1.000 $1.000 VALOR MEDIO $1’500.000 VALOR UNIDAD $161 $1.000 $40.000 $30.000 $160.000 $10.000 $10.000 $270.000 TOTAL $1’500.000 $1’500.000 TOTAL $161.000 $600.000 $761.000 $44’001.000 5. CONCLUSIONES La estrategia de supervisión escogida es adecuada para la aplicación en cuestión, ya que la red diseñada cumple el objetivo de ser una red dedicada a la supervisión de la bodega, y no tiene funciones tales como la transmisión de datos administrativos o la manipulación de otro tipo de dispositivos como redes de seguridad o redes de información etc, y por tanto la forma en que se lleva acabo esta labor, de modo continuo y constante, es acertada para cumplir con efectividad el objetivo principal del proyecto. Para el análisis de un sistema que no posee direcciones especificas para cada módulo, es más recomendable desarrollar un sistema en el cual cada uno de los dispositivos sea consultado cada determinado tiempo, limitando la libertad que estos tengan para entregar sus datos sobre el bus de información, esto para evitar la perdida de información por causa de saturación de información hacia el sistema ante la ausencia de un ente maestro que regule el trafico en el bus de datos. En el diseño de este tipo de sistemas es clave determinar y tener en cuenta todos y cada uno de los entes y variables participantes que afecten el desarrollo del mismo, de ello depende el éxito de las rutinas de funcionamiento implementadas. Es preciso llevar a cabo diseños basados en diagramación lógica de los eventos y situaciones que tendrán lugar dentro de un sistema destinado para un fin como la supervisión de aplicaciones industriales. Por eso se recomienda ampliamente una fase de planeación y organización de las variables en papel y de forma teórica, en la cual se puedan revelar los posibles inconvenientes a la hora de coordinar y hacer funcionar un sistema que se compone de un numero considerable de módulos a administrar, como es el caso de este proyecto. La realización de diagramas de flujo es una tarea básica que se hace indispensable para lograr ordenar y comunicar distintos equipos dentro de un sistemas modular, no es suficiente contar con la herramienta común que los comunica, como es el protocolo de comunicación, en este caso CAN, este solo es el primer paso, sino que es necesario desarrollar algoritmos efectivos que aprovechen al máximo el idioma común de comunicación y aumenten el nivel de desempeño del sistema para llevar a cabo las labores para las cuales fue diseñado. Las variables que intervienen en el mantenimiento de este tipo de sitios, son variadas y en cierto punto complejas una vez que estas se interrelacionan unas con otras, a la hora de aplicar y desarrollar sistemas de control distribuido o de medición. Es por esto que se han escogido aquellas más relevantes y que se encontraban al alcance de los medios humano- 72 económicos disponibles para desarrollar el sistema producto de la ejecución este proyecto. Sin embargo es claro el cuidado que se debe tener al escoger dichas variables, como ejemplo en la bodega que se trabajó en este proyecto, el sistema de temperatura funciona a partir de quemadores de gas, lo cual hace la temperatura en este lugar una variable de sumo cuidado a la hora de desarrollar un sistema automático de control de la misma, puesto que esto exige tener en cuenta consideraciones de seguridad industrial que en primera instancia podrían pasarse por alto, pero que una vez tenidas en cuenta pueden generar por sí mismas la necesidad de dar una solución robusta, segura y efectiva a un control de temperatura adecuado para el lugar, lo que implica aumento en tiempo, costos y complejidad de un proyecto de este estilo. El proyecto desarrollado deja las puertas abiertas a futuros desarrollos en el área de la supervisión industrial y más aún, en el área del control. Las capacidades del protocolo de comunicación CAN son apropiadas para diseñar e implementar aplicaciones de este tipo, desde aquellas sencillas hasta grandes aplicaciones caracterizadas por tener un número considerable de actuadores y subsistemas a supervisar. El estado actual del trabajo realizado deja un balance positivo, los objetivos se han alcanzado y se encuentra en un punto apropiado para futuras mejoras y adiciones, en si la aplicación y el protocolo escogido son flexibles a cambios cuyo origen se podría encontrar en la inclusión de nuevas variables a supervisar dentro de la bodega tales como el pH, niveles de agua en tanques de reserva, contaminación del agua entre otras, además del control de algunas de ellas. Entre las mejoras se podría trabajar en la detección de fallas mecánicas del sistema de aireación en los acuarios como la desconexión de la manguera, que transporta el aire, del filtro que se encuentra en el fondo del acuario causando un proceso de oxigenación deficiente del agua y por lo tanto para los peces. También se podría trabajar sobre la supervisión del estado de la tubería de distribución del aire, a partir de la medición de presión en diferentes partes de la red de tubería y así poder detectar fugas por causa de desconexión de secciones de ella. Como área mas próxima para futura investigación a partir de este proyecto, se encuentra el desarrollo de herramientas que permitan llevar el sistema de supervisón a convertirse en un aplicación de carácter remoto, es decir, tener la posibilidad de supervisar estas variables vía comunicaciones celulares o través de la misma red de datos Internet, dando más utilidad y versatilidad al sistema mismo. 73 BIBLIOGRAFÍA AXELROD, H., BURGESS, W., EMMENS, C. “Dr. Axelrod´s mini atlas of freshwater acuarium fishes”. Editorial T.F.H. Publications, Inc. BAKER Bonnie C. Layout Tips for 12-Bit A/D Converter Application. Nota de aplicación AN688. Microchip Technology Inc. _______ Anti-Aliasing, Analog Filters for Data Acquisition Systems. Nota de aplicación. AN699. Microchip Technology Inc. ________ Techniques that Reduce System Noise in ADC Circuits. Nota de aplicación. AN699. Microchip Technology Inc. BOSCH, Robert. CAN Specification Version 2.0 1991. FAIRCHILD. Application Note AN-3003. Applications of Non Zero Crossing Triac Drivers. Featuring the MOC3011. GARBUTT, Mike. Asynchronous Communications with the PICmicro USART. AN774. Microchip Technology Inc. GRANET, Irving. Termodinámica. México: Prentice Hall Hispanoamérica, S.A..1988. 742 pag. KREITH, Frank. Principios de transferencia de calor. México: Herrero Hermanos, sucesores, S.A, 1970. 660 pag. MICROCHIP TECHNOLOGY INC. High-Speed CAN Transceiver MPC2551 _________ PIC18FXX8. Data Sheet. NATIONAL SEMICONDUCTOR. LM35. Precision Centigrade Temperature Sensors. 2000. OGATA, Katasuhiko. Ingeniería de control moderna. México: Prentice Hall Latinoamerica. 1998. 997 pag. 74 POVEY, P. J. Usted y el acuario. Madrid: Paraninfo. 1982. RAMIREZ, Hernando. “La pesca en la baja Orinoquía colombiana: una visión integral”. Editorial Produmedios. Diciembre de 2001. RICHARDS, Pat. A CAN Physical Layer Discussion. AN228. Microchip Technology Inc. YOUNG, Vicent W. Basic Engineering Thermodynamics. New York: Mc Graw Hill Book Company, INC. 1952. 545 pag. 75 ANEXO A PROTOCOLO CAN CARACTERÍSTICAS DEL PROTOCOLO CAN La mayoría de las redes CAN se basan en la ISO 11898-2 para definir la capa física del sistema, cuyas características básicas se encuentra en la tabla A.1. Tabla A.1 Características protocolo CAN CARACTERÍSTICA Tasa máxima de transmisión Distancia a la máxima tasa de transmisión Distancia máxima de transmisión Impedancia característica de la línea Tiempo de retardo nominal de propagación Tipo de codificación de bit Arbitración del bus VALOR 1 Mb/s 40 m 1 Km @ 50 kb/s 120 Ω 5 ns/m NZR Bit-wise Al utilizar codificación de bit NRZ (no retorno a cero), la cual mantiene el nivel señal constante en relación con el tiempo de bit, es necesario utilizar un mecanismo, como bit stuffing, para evitar que se pierda la sincronización. Este mecanismo introduce un uno después de ser transmitidos cinco ceros seguidos o un cero después de transmitir cinco unos seguidos. Los conflictos generados por la competencia de acceso al bus son resueltos por medio de la utilización de arbitramiento tipo bit-wise, el cual se basa en la observación constante, por parte de los nodos, del nivel de señal presente en el bus. Si uno o mas nodos empiezan una transmisión al mismo tiempo, pierde la arbitración del bus aquel que trata de transmitir un nivel recesivo y observa que algún otro transmite un nivel dominante. La lucha por el bus se realiza únicamente durante la transmisión del identificador, por esto dos nodos no pueden transmitir un mensaje con el mismo identificador. Una vez que el bus este libre, los nodos que no hayan podido transmitir su mensaje, iniciaran una nueva competencia y de esta 76 forma, un nuevo proceso de arbitramiento se llevará acabo. Los niveles manejados en el BUS se explican más adelante. Un ejemplo de este proceso se puede observar en la figura A.1 en donde los nodos 1,2,3 empiezan a transmitir un mensaje al mismo tiempo. El nodo 1, es el primero que pasa a ser receptor del mensaje al tratar de transmitir un bit recesivo mientras los otros dos transmitían un bit domínate, lo mismo pasa con el nodo 3 un tiempo después, así que por último el que logra transmitir el mensaje exitosamente es el nodo 2. Figura A.1 Ejemplo de la arbitración de bus CAN S O F IDENTIFICADOR NODO 1 PIERDE EL BUS ... ... NODO 2 PIERDE EL BUS NODO 3 BUS CAN ... ... TRAMA CAN El protocolo CAN soporta dos tipos de mensajes, estándar o CAN 2.0 A y extendido o CAN 2.0 B., cuya diferencia es la longitud del identificador. Un mensaje estándar tiene una longitud de identificador de 11 bits y un mensaje extendido tiene un identificador de longitud de 29 bits. En general la trama CAN se conforma de (figura A.2): Figura A.2 Trama CAN S O F IDENTIFICADOR R T R I D E r0 DLC DATOS 77 CRC ACK EOF IFS • • • • • • • • Inicio de trama (Start of Frame). Campo de arbitración. Se divide en un identificador y una solicitud de trama remota (Remote transmision Request), Campo de control. Se divide en un identificador de mensaje extendido (IDentifier Extension) y un identificador de número de datos transmitidos (Data Length Code). Campo de datos. Su longitud puede variar entre cero y ocho bytes. Campo de código de redundancia cíclica. Campo que garantiza la integridad del sistema. El campo de reconocimiento (ACK). El nodo que transmite la trama CAN envía un bit recesivo y los que la reciben sobrescriben este campo con un bit dominante, lo cual indica que el mensaje ha sido transmitido correctamente. Final de trama (End of Frame) Campo de intermisión. Indica el mínimo número de bits de separación entre dos tramas CAN seguidas. Control de errores. El protocolo CAN utiliza cinco mecanismos para el control de errores: • Redundancia cíclica: El controlador CAN antes de transmitir un mensaje calcula el CRC y lo adjunta a éste; el controlador receptor toma el mensaje quita el CRC enviado y calcula uno nuevo y lo compara con el enviado, sino coinciden los valores, se genera un error en la transmisión. • Revisión de trama: El controlador CAN revisa la estructura del mensaje y la compara de acuerdo a la longitud de datos e identificador, con una estructura fija de los menajes CAN. • Errores de reconocimiento: Una vez transmitida una trama CAN se espera recibir un reconocimiento, si esto no sucede se genera un error de reconocimiento. • Monitoreo: En el proceso de transmisión de un mensaje, el controlador que envía datos por el bus mantiene un monitoreo constante de los niveles de bit que están él, de esta forma puede detectar diferencia entre lo que transmite y lo que se esta recibiendo, errores de bit. • Bit stuffing 78 Si uno o mas errores son detectados en la transmisión de un mensaje por uno o más nodos CAN, la transmisión es abortada y una trama de error es transmitida para que el mensaje no sea recibido por ningún nodo, luego se intentara una retransmisión. REQUERIMIENTOS DE TIEMPO DE BIT El tiempo de bit nominal esta definido como el tiempo de transmisión de un bit y se conforma, según la especificación CAN por cuatro segmentos como se ve en la figura A.3. Figura A.3 Tiempo nominal de bit TIEMPO NOMINAL DE BIT SEGMENTO DE SINCRONIZACION SEGMENTO DE PROPAGACION SEGMENTO FASE 1 SEGMENTO FASE 2 PUNTO DE MUESTREO • Segmento de sincronización: Durante este segmento de tiempo se espera recibir un borde de bit, que es usado para que los diferentes nodos de la red CAN se sincronicen. • Segmento de propagación: Esta segmento del bit es usado para compensar el retardo físico en el medio de transmisión, que puede presentar en la red. • Fase de segmento 1 y Fase de segmento 2: Este par de segmentos son usados para compensar los errores de fase y para determinar el punto adecuado en cual se toma el valor de Bit visto en el BUS. Son de longitud de tiempo variable, lo que permite sincronización del sistema. • El punto de muestreo: Es el tiempo en el cual el nodo revisa el nivel del bus, lo lee y lo interpreta. 79 OTROS ASPECTOS CAN Topología de la red. La topología de una red CAN es tipo bus en el cual las señales eléctricas se reflejan al final de este sin no hay un acople adecuado. Por tanto para que un nodo lea correctamente las señales que viajan en el bus es necesario el uso de impedancias terminación en cada extremo del bus o evitar derivaciones innecesarias del BUS demasiado largas. Niveles de bus. La especificación CAN define dos estados de bit, dominante y recesivo, cuyos niveles lógicos se encuentran definidos por la ISO 11898. En estado recesivo el voltaje diferencial entre las señales de CANH y CANL debe ser menor que 0.5 v en el la entrada del receptor y menor que 1.5 v en la salida del transmisor. En estado dominante debe ser mayor a los niveles de voltaje mencionados anteriormente (Ver figura A.4). Figura A.4 Niveles presentes en el BUS CAN Voltaje Dominante 3.5 2.5 Voltaje diferencial Recesivo Recesivo 1.5 Tiempo CANH CANL Características del transceiver. La especificación CAN también requiere que los transceivers utilizados cumplan con ciertas especificaciones eléctricas definidas por la ISO 11898 (ver tabla A.2). 80 Tabla A.2 Especificaciones CAN para los transceivers VALOR MAXIMO -3 -150 2 10 2.75 0.5 PARAMETRO Voltaje DC en CANH y CANL Voltaje transigente en CANH y CANL Voltaje Recesivo Resistencia Interna diferencial Voltaje dominante de salida (CANH) Voltaje dominante de salida (CANL) VALOR MINIMO 32 100 3 100 4.5 2.25 UNIDADES V V V V V Tabla A.3. Especificaciones módulo CAN microcontroladores MÓDULO CAN FAMILIA PIC18FXX8 ESPECIFICACIÓN VALOR Tasa de transmisión de mensajes 125.000 Longitud de identificador 11 Longitud de datos de mensaje 1a8 Buffers de recepción 3 Buffers de transmisión 2 Máscaras para recepción de mensajes 2 Filtros de aceptancia 6 81 UNIDAD Kb/s Bits Bytes - ANEXO B DIAGRAMAS DE FLUJO DEL SISTEMA MÓDULO PRINCIPAL MAIN Configurar puertos E/S Configurar CAN tasa de transmisión 125.000 kb/s Tiempo de espera para configuración CAN (200 µs) Abrir el LCD Las interrupción del comparador e interrupción externa (cruce por cero ) son de alta prioridad y la de CAN es de baja prioridad Proceso de configuración del display a dos linea Habilitar interrupciones con prioridades Tiempo de espera para estabilidad de las adquisición de datos del sistema (1 s) Escritura predeterminada en el display Caso es la variable que controla que dato debe ser pedido por el módulo principal Caso=1 1 82 1 Caso para solicitar el número de módulos de aireación activos en el sistema Si Tx mensaje CAN solicitando número de módulos de aireación Caso==1 Caso=0 No a es una variable que indica de que caso se esta esperando respuesta a través de un mensaje CAN a=1 Abrir Timer0 (tiempo de 30ms) Caso para establecer por primera vez el estado de la luz en modo controlado (estado por defecto ) y solicitar el valor de la temperatura del módulo 1 Si * Si Se acaba de iniciar el sistema Caso==2 No No Pasa la luz a modo controlado Tx mensaje CAN solicitando la temperatura al módulo 1 Caso=0 a=2 Abrir Timer0 (tiempo de 30ms) Caso para solicitar el valor de la temperatura del módulo 2 Caso==3 Si * Tx mensaje CAN solicitando la temperatura al módulo 2 No Caso=0 2 a=3 Abrir Timer0 (tiempo de 30ms) 83 * 2 Si Caso para solicitar el valor de la temperatura del módulo 3 Tx mensaje CAN solicitando la temperatura al módulo 3 Caso==4 Caso=0 No a=4 Abrir Timer0 (tiempo de 30ms) Caso para solicitar el valor de la temperatura del módulo 4 Si * Tx mensaje CAN solicitando la temperatura al módulo 4 Caso==5 No Caso=0 a=4 Abrir Timer0 (tiempo de 30ms) Caso para solicitar el valor el estado de aireación del módulo 1 que supervisa 16 acuarios * Si Caso==6 a=6 No Si No Existe algún módulo supervisando aireación con ID entre 1 y 8 No El módulo 1 esta supervisando Caso=14 Caso=7 * Si * Tx mensaje CAN solicitando el estado de la aireación del módulo 1 Caso=0 3 No es una variable que indica el número del módulo de aireación del que se espera recibir respuesta a través de un mensaje CAN Abrir Timer0 (tiempo de 30ms) No=1 84 * Si 3 Caso==6 Si No El módulo 2 esta supervisando No Tx mensaje CAN solicitando el estado de la aireación del módulo 2 Caso=7 Caso=0 ... No=2 Abrir Timer0 (tiempo de 30ms) * Si Caso==31 Existe algún módulo supervisando aireación con ID entre 25 y 36 Si No Caso=31 El módulo 25 esta supervisando Caso=38 * Si * Tx mensaje CAN solicitando el estado de la aireación del módulo 25 Caso=0 No=25 Abrir Timer0 (tiempo de 30ms) 4 No * 85 4 ... Si Último caso de solicitud del estado de la aireación Caso==37 No Si Tx mensaje CAN solicitando el estado de la aireación del módulo 32 Caso=0 El módulo 32 esta supervisando Caso=38 No=32 Abrir Timer0 (tiempo de 30ms) Caso de reporte de alarmas sonoras y solicitud de fallas para reportarlas en el display * Si Caso==38 No No se han pedido retransmisiones de este caso No Rutina de reporte de fallas a través del display * 1 86 Si Rutina de alarma sonora 1 2 No El estado de error actual es de falla Desactivación alarma sonora Si Contador2 ++ Activación alarma sonora El estado anterior del sistema guarda el estado actual del sistema El estado actual del sistema toma el estado de no falla Contador2 >=1 No Contador2 ==20 No Si Contador2 ++ Si Desactivación alarma sonora Contador2 =0 Retorno de rutina 87 Rutina de reporte de fallas a través del display No Si Conespera == 0 Conespera es un contador que hace posible que los datos mostrados en el display se mantengan un tiempo adecuado para que el usuario del sistema pueda distinguir las diferentes fallas Conespera == 20 No Si Tx mensaje CAN solicitando las fallas del sistema Caso=0 Conespera=0 Conespera++ a=38 Abrir Timer0 (tiempo de 30ms) Caso=2 Retorno rutina del display 88 RUTINA DE INTERRUPCIÓN DE ALTA PRIORIDAD (COMPARADOR O INT1) Si Interrupción del comparador? No Baja las señales de los MOCs 3010 de acuerdo a las luces que desean ser prendidas o apagadas Cierra el Timer1 Activa las señales de los MOCs 3010 de acuerdo a las luces que desean ser prendidas o apagadas Baja la bandera de interrupción del externa Int1 Baja la bandera de interrupción del comparador i es una variable que lleva el registro de los pasos de encendido o apagado de la luz , tiene un valor máximo de 1000 . Valor del compardor= Valor de comparador + aux i++ No Abre el Timer1 i==1000 Si Deja a los MOCs 3010 en estado de encendido o apagado Cierra el Timer1 i=0 Tx de mensaje CAN confirmado en estado de la luz Retorno de rutina de interrupción 89 RUTINA DE INTERRUPCIÓN DE BAJA PRIORIDAD (Rx CAN O TIMER0) Si Respuesta de número de módulos de aireación Actualización de número de módulos de aireación No A Descarga 4 palabras que indican que módulos estan supervisando caso1=1 1 caso 1 es una variable que indica de que caso se esta recibiendo con relación al main del sistema No Este caso se presenta cuando se ha configurado un nuevo módulo de aireación Rx CAN Descarga 4 palabras que indican que módulos estan supervisando 1 Descarga 4 palabras que indican que módulos estan supervisando 1 No Este caso se presenta cuando se ha cambiado el ID de un módulo o se ha quitado uno Actualización de número de módulos de aireación1 No Orden de prender la luz Descarga de las áreas de luz que desean ser prendidas No Cambio de modo de iluminación a controlado No 2 Si Activa la señal de control de los relés Cambio del estado de iluminación a un modo conocido (apagado) Tx de mensaje CAN confirmado el cambio del modo de iluminación 3 1 90 3 2 Cambio de modo de iluminación a manual Si Desactiva la señal de control de los relés Desactiva las señales de los TRIACS Tx de mensaje CAN confirmado el cambio del modo de iluminación No Inicia el comparador a un valor de 0x206C 1 aux es una variable que indica el tamaño de los pasos de encendido de la luz aux=-8 b es una variable que indica si quiere prender la luz (b=1) o apagar (b=0) b=1 Habilita la interrupción Int1 con borde de subida Habilita la interrupción del comparador Orden de apagar la luz Si 1 Descarga de las áreas de luz que desean ser apagadas Inicia el comparador a un valor de 0x0000 aux=0 No b=0 Habilita la interrupción Int1 con borde de subida Habilita la interrupción del comparador 4 1 91 4 Si Reporte temperatura módulo 1 Descarga el valor de la temperatura medido por el módulo caso1=2 1 No Reporte temperatura módulo 2 Si Descarga el valor de la temperatura medido por el módulo caso1=3 1 No Reporte temperatura módulo 3 Si Descarga el valor de la temperatura medido por el módulo caso1=4 1 Descarga el valor de la temperatura medido por el módulo caso1=5 1 Guarda el ID del módulo que esta reportando su estado y el estado de los acuarios que el supervisa caso1=6 1 Descarga del tipo de falla y del número de módulo o acuario que la presenta caso1=38 1 No Reporte temperatura módulo 4 Si No Reporte módulo de aireación Si No Reporte falla al LCD Si No 1 92 A Baja la bandera de interrupción del Timer0 Cierra el Timer0 Indica el número del caso de cual se estaba esperando respuesta Indica el número del caso del cual se obtuvo respuesta Si a==1 Caso1==1 Si es verdadero es porque ya se han pedido tres retransmisiones , se reporta error No Si No No Contador==3 Si Contador=0 Caso=2 Contador++ Contador=0 Caso=1 Contador es una variable que lleva la cuenta del número de retransmisiones que se han solicitado del mismo caso, su máximo valor es 3 Caso=0 LCD muestra que no hay comunicación con el PC 1 a==2 Si Si Caso=3 Div++ Contador++ Caso=2 ... Contador==3 Si Contador=0 Caso=3 Tx mensaje CAN reportando error en el módulo de temperatura 1 1 a==5 Si Caso1==5 No No No Si Proceso llego lo que se esperaba Proceso de retransmisión 5 6 93 Contador==3 Si Proceso de reporte de daño en el módulo PROCESO DE REPORTE DE DAÑO EN EL MÓDULO Contador=0 No PROCESO DE RETRANSMISIÓN Div variable que lleva el registro del número de módulos de temperatura que han reportado su temperatura en cada ciclo No PROCESO LLEGO LO QUE SE ESPERABA No Caso1==2 5 6 No Si Caso==6 Este caso se presenta cuando se tiene el valor de las cuatro temperaturas de los módulos Contador=0 Tx mensaje CAN reportado el valor de las cuatro temperaturas reportadas por los módulos 1 No Div==0 Cálculo del promedio de la temperatura de acuerdo al número de módulos de temperatura que no han reportado falla Si Búfer de transmisión CAN<-0 Tx mensaje CAN reportando el valor de la temperatura promedio y los módulos OK º Limpiar variables proceso temperatura 1 a==6 Caso1==6 & No == ID módulo No Si Ultimo módulo de aireación No Caso=No+6 Si Caso=38 Contador =0 Alguno de los acuarios presenta falla de aireación Tx CAN reportando el ID del modulo y el estado de los acuarios que él supervisa Si No 7 8 94 7 8 Si No Contador==3 Levanta la variable que controla la alarma sonora Contador++ Caso=No+5 Ultimo módulo No Caso=No+6 Si Caso=38 º Tx CAN reportando error del modulo que fallo 1 Si a==38 Caso1==38 Si caso=2 Contador=0 No Si Contador==3 Si caso=2 Contador=0 Contador++ Caso=38 Reporte de no hay comunicación con es sistema supervisor No Reporte del sistema OK Se reporta que se ha cerrado el programa del PC No Hay alguna falla en el sistema Si Reporte de falla de acuerdo al tipo y al número de módulo o acuario que ha fallado 1 Retorno de interrupción de baja prioridad 95 MÓDULO DE TEMPERATURA MAIN Configuración de los puertos E/S Configuración CAN Tiempo de espera para configuración CAN (200 µs) Habilitar interrupción CAN Interrupción de CAN No Si Rutina de Interrupción CAN 96 Rutina de Interrupción CAN No Mensaje de solicitud de temperatura Si Rutina de conversión ADC No El ADC ha tomado 10 muestras Si Hallar promedio de las 10 muestras tomadas No Transmisión mensaje CAN reportando valor de la temperatura medida Rutina para manejar el display para la visualización de la temperatura en el módulo Retorno de interrupción 97 Rutina de conversión ADC Abrir ADC Tiempo de espera (20µs) Iniciar la conversión Se ha terminado la conversión Si Retorno de rutina 98 No MÓDULO DE AIREACIÓN MAIN Configuración de los puertos I/O Configuración CAN Tiempo de espera para configuración CAN (200 µs) Habilita interrupciones CAN y Timer0 Dir. 0x10 donde se encuentra el número de módulo que le ha sido asignado. Si el dato de la dir. Es 0xFF el módulo no ha sido configurado. Lee EEPROM dirección 0x10 y carga el dato en la variable DATA Si El módulo ha sido configurado No Carga variable que indica que el módulo no ha sido configurado Transmita mensaje CAN pidiendo configuración 0x041 es el ID del mensaje CAN de configuración de los módulo de aireación Inicia el Timer0 para un tiempo de respuesta de 8.16ms Ha llegado un mensaje CAN o el Timer0 ha interrumpido Si Rutina de atención de interrupción 99 No Rutina de atención de interrupción Si Si Escribe en la EEPROM el número de módulo que le ha sido asigando Interrupción CAN No Mensaje de configuración Cerrar el Timer0 No No Llegó mensaje de configuración del módulo Si Escribe en la EEPROM el nuevo número de módulo asignado o en caso de desconfiguración escribe 0xFF Si Lee la dirección donde se encuentra el número de módulo asignado Mensaje de desconfiguración o cambio de ID Si Transmite mensaje CAN pidiendo configuración No Inicia el Timer0 Mensaje de confirmación de configuración No Transmite un mensaje CAN con el dato que leyó 0x042 corresponde al ID del mensaje CAN de confirmación Si Toma el estado actual de los puertos que realizan la supervisión Transmite un mensaje CAN reportando el estado de la aireación de los acuarios Mensaje de petición del estado de los acuarios bajo supervisión por el módulo No 0x400 corresponde al ID del mensaje CAN de reporte de estado de la aireación de los acuarios Retorno 100 MÓDULO DE COMUNICACIONES MAIN Configurar puertos E/S Configurar USART con tasa de transmisión 115.200 b/s Configurar CAN con tasa de transmisión 125.000 b/s Tiempo de espera para configuración CAN (200 µ) Habilitar interrupciones con prioridades La interrupción de la USART es de alta prioridad y la de CAN es de baja prioridad Contador=0 Contador es la variable que indica cuantas veces se ha preguntado si el sistema supervisorio instalado en el computador se encuentra abierto 1 Ha interrumpido un mensaje CAN o de la USART No 2 101 Si Rutina de interrupción de alta (USART) o de baja (CAN) prioridad 2 Se han preguntado 20 veces si el sistema supervisor esta No Transmisión mensaje CAN solicitando el estado del sistema supervisor Tiempo de espera No El sistema supervisorio esta Contador ++ Si Contador = 20 1 Activar la transmisión de datos al PC 1 102 Si 1 Rutina de interrupción de alta prioridad (USART) Guardar el dato en el buffer de recepción Si Han llegado 9 Bytes No 1 Cálculo del Checksum de los datos de llegada Tx mensaje CAN ID 0x201 y el área de luz que desea ser iluminada Si Checksum calculado Si = Checksum recibido Pide retransmisión de la trama al computador No 1 Solicitud de prender la luz 1 No Solicitud de apagar la luz No Tx mensaje CAN: ID 0x031 y el dato de configuración Si Configuración de módulo de aireación 1 No 2 103 Si Tx mensaje CAN: ID 0x202 y el área de luz que desea ser apagada 1 2 Tx mensaje CAN ID 0x032, nuevo ID asignado al modulo Si 1 Cambiar el ID o quitar un módulo de aireación No Petición de confirmación de configuración de módulo de aireación Tx mensaje CAN ID 0x033 Si 1 No Tx mensaje CAN ID 0x204, el número de módulo o acuario que presento la falla y el tipo de falla que se reporto Si Reporte de alarmas al display No 1 Confirmación aplicación supervisor del computador abierta Si No Desactivar la transmisión de datos al computador Si 1 Reporte aplicación supervisor del computador se ha cerrado No Retorno 104 Activar transmisión de datos al computador 1 Rutina de interrupción de baja prioridad (CAN) Solicitud número de módulos de aireación activos en el sistema Si No Carga al búfer de transmisión de USART ID 0x02 y número de módulo que ha fallado Si Carga al búfer de transmisión de mensaje USART ID 0x01 1 Reporte alarma módulo de aireación No 1 Solicitud configuración módulo de aireación Si Carga al búfer de transmisión de USART ID 0x03 No Carga al búfer de transmisión de USART ID 0x20 y el ID del módulo al que se le ha solicitado la confirmación 1 Si Respuesta a confirmación de configuración módulo de aireación No 1 Reporte falla en módulo de aireación Si Carga al búfer de transmisión de USART ID 0x04 y el ID del módulo que ha fallado 1 2 105 2 Reporte falla módulo de temperatura Si Carga al búfer de transmisión de mensaje USART ID 0x05 y ID del módulo que falló No 1 Carga al búfer de transmisión de mensaje USART, ID 0x06 y temperatura de cada módulo Si Reporte temperatura de los cuatro módulos No 1 Reporte promedio de temperatura de los cuatro módulos Si Carga al búfer de transmisión de mensaje USART, ID 0x07, temperatura promedio y número de módulos de aireación reportando temperatura No 1 Carga al búfer de transmisión de mensaje USART, ID 0x09 1 Si Solicitud de fallas en el sistema para mostrar en el display No Reporte del estado de la iluminación de la bodega 1 Si Carga al búfer de transmisión de mensaje USART, ID 0x0A, modo de iluminación y areas iluminadas No Esta activa la transmisión de datos al computador RETURN 106 Si Transmisión del búfer de USART APLICACIÓN DE SOFTWARE RUTINA RECEPCIÓN MENSAJE COM El id indica el tipo de mensaje que ha llegado por el COM Descarga identificador (id) Descarga datos Petición número de módulos de aireación Rutina de adquisición de número de módulos Transmisión mensaje CAN * Reporte visual falla módulo temperatura Reporte falla de módulo de temperatura * Reporte temperatura zonas Interpretación del valor de la temperatura Reporte visual temperatura Reporte al display y reporte visual Temperatura fuera del rango * Reporte temperatura promdeio 4 107 Número de módulos reportando temperatura =4 Reporte visual falta un módulo de temperatura Número de módulos reportando temperatura =0 Reporte visual de temperatura = 0 °C 1 1 4 Cálculo y visualización promedio de temperatura Almacenamiento base de datos de emergencia Reporte emergencia temperatura Temperatura promedio dentro del rango normal * Falla en número de módulos de temperatura Almacenamiento base de datos de emergencia * Almacenamiento base de datos de emergencia Falla en número de módulos de aireación * Falla de aireación en acuario Almacenamiento base de datos de emergencia * Existe falla en módulos de temperatura Solicitud fallas en el sistema Reporte falla número de módulo * Existe falla en módulos de aireación Reporte falla número de módulo * Existe falla de aireación en acuario Reporte falla número de acuario * Reporte valor promedio de la temperatura 5 Existe alarma de temperatura promedio * 2 108 5 2 Existe alarma de temperatura en alguna zona Solicitud de retransmisión Retrasnmsión último mensaje Confirmación estado de la luz Almacenamiento variable del estado de iluminación Reporte alarma de aireación Solicitud configuración módulo de aireación Reporte alarma módulo de aireación Reporte visual alarma aireación Rutina de configuración de módulo de aireación Reporte visual alarma de módulo de aireación Solicitud de confirmación aplicación abierta Transmisión mensaje CAN confirmando la aplicación esta abierta Confirmación de configuración módulo de aireación Mensaje visual de configuración existosa * FIN 109 Reporte zona en alarma y valor de la temperatura ANEXO C ESQUEMÁTICOS DEL SISTEMA MÓDULO PRINCIPAL Fuente de alimentación y detector de cruce por cero de la fase F1 D7 J7 1 2 1 FUSE srec + 4 2 - D8 vf D1N4004 C1 CON2 BRIDGE 1500u 3 0 VCCA VCCA J15 srec 1 2 3 4 R27 10k R25 10k R26 3.3k Q19 cxo cxo vf CON4 Q2N2222 0 CON10 0 1 2 3 4 5 6 7 8 9 10 J16 110 b1 b2 b3 b4 b5 b6 ma1 ma2 0 Bloque de iluminación VCCA VCCA VCCA R1 R2 trisw1 R4 R5 180 220 U1 U2 6 1 2 R8 4 4 VCCA fase 3 5 2 6 1 4 Q7 1 2 3 Q2N2222 trisw1 SW1 fase R11 D1N4148 ma1 trisw2 SW2 R12 CON2 10k Q2N2222 0 0 0 VCCA VCCA R13 R14 6 2 U5 2 TRIAC A1A2G MOC3010 R20 4 10k VCCA fase 10k 4 SW4 VCCA fase 10k 0 Q2N2222 K6 0 SW5 VCCA fase 6 1 D1N4148 trisw4 SW4 R23 Q17 RELAY SPDT 10k D6 D1N4148 J5 1 2 ma2 SW6 3 RELAY SPDT J4 4 5 2 D5 CON2 Q2N2222 4 3 RELAY SPDT D4 ma2 4 K5 6 1 Q12 Q15 5 2 1 2 U6 TRIAC A1A2G b6 Q2N2222 5 2 R22 Q16 2 R21 0 3 D1N4148 TRIAC A1A2G 6 MOC3010 4 K4 6 1 1 Q14 b5 Q2N2222 0 Q11 MOC3010 Q13 b4 180 220 6 1 trisw6 R18 180 220 Q10 U4 R15 trisw5 R17 180 220 trisw3 SW3 1 2 ma1 CON2 Q2N2222 J3 Q9 VCCA 1 3 RELAY SPDT J2 1 2 trisw4 SW3 D3 Q8 10k 4 5 2 D1N4148 CON3 R16 6 1 RELAY SPDT J1 ma1 10k VCCA fase D2 D1N4148 R19 K3 0 SW2 3 RELAY SPDT 10k Q2N2222 5 2 D1 R10 4 10k K2 0 SW1 Q6 b3 Q2N2222 K1 VCCA fase R9 4 10k 6 1 MOC3010 Q5 b2 Q2N2222 Q3 TRIAC A1A2G MOC3010 Q4 0 U3 2 MOC3010 10k 6 1 TRIAC A1A2G 2 b1 180 220 Q2 TRIAC A1A2G R7 trisw3 R6 180 220 Q1 6 1 R3 trisw2 CON2 Q2N2222 0 trisw5 SW5 R24 Q18 1 2 ma2 10k CON2 Q2N2222 0 111 J6 trisw6 SW6 Bloque microcontrolado LM7805C/TO220 U7 v+ 1 IN OUT 0.47u C6 VCC 3 J14 D N G C7 10u C8 100n 2 U8 b1 b2 b3 b4 1 2 3 4 Y1 OS2 2 3 4 5 6 7 33 34 cxo 35 TX 36 RX 37 38 39 40 15 b1 16 b2 17 b3 18 b4 23 b5 24 b6 25 ma1 26 ma2 dbus6 19 dbus7 20 dbus8 21 dbus9 22 dbus10 27 dbus11 28 dbus12 29 dbus13 30 dbus4 8 dbus3 9 dbus5 10 alson canok s1 s2 s4 s3 OS1 CON4 VCC J13 J8 vf 1 2 3 dbus0 R38 dbus1 1k VCC dbus2 J9 1 2 v+ 15p 15p CON4 R39 CON2 CON3 vb 1k VCC J12 1 2 3 4 b5 b6 ma1 ma2 1 2 3 4 vb C4 Cristal C5 cxo J11 vf CON4 VCC 2 LS1 D13 BUZZER D1N4148 1 2 3 4 5 6 7 8 9 10 11 12 13 14 VCC C11 dbus0 dbus1 dbus2 dbus3 dbus4 dbus5 dbus6 dbus7 dbus8 dbus9 dbus10 dbus11 dbus12 dbus13 33k R30 0.1u U9 3 8 1 7 RS D TXD 4 6 CANH D RXD V 5 CANL VREF D N G J10 1 2 CON2 TX RX MCP2551 2 CON14 dbus[13..0] VCC 1 2 PIC18F458 SW1 R34 s4 1 Q21 1k R33 s3 1k R37 12 31 R41 40 alson RA0/AN0 RA1/AN1 RA2/AN2 RA3/AN3/REF RA4/T0CLK RA5/AN4/SS RB0/INT MCLR/VPP OSC1/CLK RB1 RB2 OSC2/CLKOUT RB3 RB4 VDD RB5 RB6 VDD RB7 RC0/T1OSO/T1CLK RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 RE0/RD/AN5 RE1/WR/AN6 RE2/CS/AN7 D D NN GG 1k D14 LED R32 s2 1k D12 LED Q2N2222 112 R31 s1 1k D11 LED canok 1k D10 LED 1k D9 LED VCC 3k R29 SW2 1 1 2 13 OS1 14 OS2 11 32 C13 10u VCC C12 1n MÓDULO DE TEMPERATURA U5 VCCA 1 LM7805C/TO220 U3 v+ VS+ GND 3 1 0.47u C6 T U O V VCC VCC D N G C7 10u R11 100n C4 Cristal C5 2 R12 C1 100n R1 R2 2k 200 5 R3 + R4 2k 0 VCCA U1B 8 200 D D V OUT 7 U1A R7 3 8 0 27k 200k 470n C2 2 0 4 R5 0 U2 1n D D V OUT 1 6 - SS V MCP6022 0 C9 + canok - SS MCP6022 V 0 0 4 18k DIS4 DIS6 R6 2k J3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 CON16 DIS0 DIS1 DIS2 DIS3 DIS4 DIS5 DIS6 DIS7 DIS8 DIS9 DIS10 DIS11 DIS12 DIS13 DIS14 DIS15 TX RXDIS8 VCC C11 33k R10 0 DIS10 DIS12 DIS14 DIS5 DIS7 DIS9 DIS11 DIS3 DIS1 DIS0 DIS2 0.1u U4 3 v+ 8 1 7 RS D TXD 4 CANH RXD D 6 V 5 CANL VREF D N G J2 J1 1 2 1 2 CON2 CON2 TX RX MCP2551 2 DIS15 DIS13 2 3 4 5 6 7 21 22 23 24 25 26 27 28 11 12 13 14 15 16 17 18 RA0/AN0/CVREF RA1/AN1 RA2/AN2/VREFRA3/AN3/VREF+ RA4/T0CLK RA5/AN4/SS/LVDIN RB0/INT0 RB1/INT1 RB2/CANTX/INT2 RB3/CANRX MCLR/VPP RB4 RB5/PGM OSC1/CLKI RB6/PGC OSC2/CLKO RB7/PGD RC0/T1OSO/T1CLK RC1/T1OSI VDD RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT DD NN GG PIC18F248 R14 470 R15 470 9 18 R13 canok 1k DIS[15..0] D1 LED 113 15p 0 VCCA C10 10u R8 15p 0 C3 0.1u OS1 VCCA 0 C8 2 LM35/TO Y1 OS2 3 IN OUT VCC 3k R9 1 9 10 OS1 OS2 20 VCC C13 10u C12 1n MÓDULO DE AIREACIÓN Bloque microcontrolado LM7805C/TO220 U3 v+ 1 IN 0.47u C6 OUT VCC VCC VCCA 3 Y1 OS2 OS1 R86 D N G C7 0 R87 C8 10u 1n C4 0 2 C5 Cristal 15p 15p 0 v+ U2 J17 1 2 s9 s10 sconf ig conf ig CON2 VCC C3 33k R85 J18 1 2 8 7 6 5 CON2 2 3 4 5 6 7 21 22 23 24 25 26 27 28 11 12 13 14 15 16 17 18 0.1u U4 3 RS TXD CANH D D RXD CANL V VREF D N G 1 4 TX RX MCP2551 canok s11 s12 TX RX s13 s14 s15 s16 s1 s2 s3 s4 s5 s6 s7 s8 2 RA0/AN0/CVREF RA1/AN1 RA2/AN2/VREFRA3/AN3/VREF+ RA4/T0CLK RA5/AN4/SS/LVDIN RB0/INT0 RB1/INT1 RB2/CANTX/INT2 RB3/CANRX RB4 MCLR/VPP OSC1/CLKI RB5/PGM OSC2/CLKO RB6/PGC RB7/PGD RC0/T1OSO/T1CLK RC1/T1OSI VDD RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT DD NN GG PIC18F248 R81 R82 conf ig sconf ig 1k D3 LED 9 1 8 R83 canok 1k 1k D2 LED D1 LED 114 VCC R84 1 9 10 20 C1 10u 3k OS1 OS2 VCC C2 1n Detectores de presencia de aire en los acuarios (16 detectores). VCCA VCCA 10k R4 VCCA R1 R3 100k VCCA Q2 VCCA s1 10k 10k R9 VCCA R6 R8 100k Q4 J1 R11 s2 R13 0 R7 0 Q2N2222 21 R12 R15 0 J3 0 Q2N2222 21 1k 1.5M 0 CON2 Q2N2222 R10 0 J2 1.5M s3 Q5 Q2N2222 R5 1k Q6 10k Q3 Q2N2222 10k R14 VCCA 100k Q2N2222 R2 VCCA 10k Q1 21 VCCA 1k 1.5M 0 0 CON2 0 CON2 VCCA VCCA VCCA VCCA VCCA R21 R16 R18 100k 10k R24 VCCA 10k R19 VCCA Q8 s4 R23 100k Q10 VCCA s5 10k 10k 10k R29 VCCA R26 R28 100k Q12 s6 10k Q9 Q11 Q7 Q2N2222 Q2N2222 Q2N2222 R22 R17 21 J4 Q2N2222 R20 0 1.5M 0 R25 0 J5 1k Q2N2222 21 Q2N2222 1k 1.5M 0 0 CON2 R30 0 J6 1.5M 0 0 R27 21 1k 0 CON2 CON2 VCCA VCCA VCCA VCCA VCCA VCCA R33 100k Q14 s7 VCCA 10k R44 Q18 R36 R31 VCCA 10k R39 10k R34 VCCA R38 100k Q16 s8 R41 10k 10k R43 100k s9 10k Q15 Q17 Q2N2222 Q13 Q2N2222 Q2N2222 R37 R32 21 J7 Q2N2222 R35 0 1.5M Q2N2222 R42 21 1k J9 1.5M 0 0 R40 0 J8 1k 0 21 0 Q2N2222 R45 0 1k 1.5M 0 CON2 0 CON2 CON2 VCCA VCCA VCCA VCCA VCCA VCCA R51 R46 R48 100k Q20 s10 R53 100k Q22 s11 10k 10k Q19 10k R54 10k R49 VCCA VCCA VCCA R56 10k R59 R58 100k Q24 s12 10k Q21 Q23 Q2N2222 Q2N2222 Q2N2222 R52 R47 21 J10 Q2N2222 0 1.5M 0 0 R50 21 1k J11 Q2N2222 R55 0 1k 1.5M 0 R57 21 J12 0 CON2 CON2 115 R60 0 1.5M 0 CON2 Q2N2222 1k 0 MÓDULO DE COMUNICACIONES VCC J3 v+ C15 RSN RSV 1 2 3 LM7805C/TO220 U3 1 0.1u U5 CON3 TXU RSV 6 1 11 10 T1IN C T2IN C V 13 R1IN 8 R2IN C11 0.1u 1 3 C1+ C1- C12 0.1u 4 5 C2+ C2- C14 0.1u 2 6 V+ D V- N G VCC 14 T1OUT 7 T2OUT RSN 12 R1OUT 9 R2OUT RXU IN OUT D N G C7 C8 10u 1n 15p 33k R2 J2 1 2 HIN232 1 2 CON2 CON2 canok s1 s2 0.1u U4 3 8 1 7 RS D TXD 4 6 CANH DV RXD 5 CANL VREF D N G TX RX TX RX RB6P RB7P MCP2551 2 J4 CON6 654321 R4 R5 s2 RB7P RB6P CON6A VCCmic VCC 2 4 6 J5 1 3 5 15p U2 J1 v+ D3 LED TXU RXU R3 s1 1k OS1 C4 Cristal C5 2 VCC C3 5 1 C13 1n 0.47u C6 OS2 Y1 VCC 3 canok 1k D2 1k LED D1 LED MCLR VCC 3k R1 116 2 3 4 5 6 7 21 22 23 24 25 26 27 28 11 12 13 14 15 16 17 18 RA0/AN0/CVREF RA1/AN1 RA2/AN2/VREFRA3/AN3/VREF+ RA4/T0CLK RA5/AN4/SS/LVDIN RB0/INT0 RB1/INT1 RB2/CANTX/INT2 RB3/CANRX RB4 MCLR/VPP RB5/PGM OSC1/CLKI RB6/PGC OSC2/CLKO RB7/PGD RC0/T1OSO/T1CLK RC1/T1OSI RC2/CCP1 VDD RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT DD NN GG PIC18F258 9 18 1 9 10 MCLR OS1 OS2 20 VCCmic C1 10u C2 1n ANEXO D TABLAS DE RESULTADOS DE MEDICIONES DE TEMPERATURA Tabla D.1 Medidas de temperatura realizadas en la bodega JB Peces tropicales Hora Fecha Promedio Zona 1 Zona 2 Zona 3 Zona 4 21/10/2004 12:15:11 a.m. 26,9 26,33 28,35 26,26 26,72 21/10/2004 12:30:11 a.m. 27 26,52 28,48 26,39 26,85 21/10/2004 12:45:11 a.m. 27,1 26,59 28,48 26,39 26,98 21/10/2004 01:00:11 a.m. 27,2 26,65 28,48 26,59 26,98 21/10/2004 01:15:11 a.m. 27,2 26,65 28,54 26,65 27,17 21/10/2004 01:30:11 a.m. 27,2 26,65 28,54 26,65 27,17 21/10/2004 01:45:11 a.m. 27,2 26,72 28,54 26,59 27,24 21/10/2004 02:00:11 a.m. 27,2 26,72 28,54 26,65 27,17 21/10/2004 02:15:11 a.m. 26,7 26,72 26,33 26,65 27,24 21/10/2004 02:30:11 a.m. 26,7 26,72 26,13 26,65 27,24 21/10/2004 02:45:11 a.m. 26,8 26,72 26,07 26,52 28,22 21/10/2004 03:00:11 a.m. 26,7 26,72 26,20 26,65 27,24 21/10/2004 03:15:11 a.m. 26,7 26,72 26,20 26,52 27,24 21/10/2004 03:30:11 a.m. 26,9 27,57 26,20 26,65 27,24 21/10/2004 03:45:11 a.m. 26,8 27,76 26,20 26,52 26,98 21/10/2004 04:00:11 a.m. 27, 28,61 26,07 26,52 26,98 117 Tabla D.2 Comparación entre el sistema y el termómetro Fluke 51 II, realizadas en la bodega JB Peces tropicales. Hora Fluke Sistema |(SISTEMA-FLUKE)| 03:36:54 p.m. 26,72 27,10 0,38 03:46:54 p.m. 26,98 27,20 0,22 03:56:54 p.m. 27,11 27,30 0,19 04:06:54 p.m. 27,17 27,30 0,13 04:16:54 p.m. 27,17 27,40 0,23 04:26:54 p.m. 27,50 28,20 0,70 04:36:54 p.m. 27,90 28,10 0,20 04:46:54 p.m. 28,50 28,80 0,30 04:56:54 p.m. 28,60 28,90 0,30 05:06:54 p.m. 27,50 27,76 0,26 05:16:54 p.m. 27,10 27,50 0,40 05:26:54 p.m. 26,80 26,80 0,00 05:36:54 p.m. 26,80 26,90 0,10 05:46:54 p.m. 27,20 27,40 0,10 05:56:54 p.m. 27,00 27,10 0,10 06:06:54 p.m. 27,1 27.2 0,10 06:16:54 p.m. 27,90 28,22 0,32 06:26:54 p.m. 27,90 28,22 0,32 Error Promedio: 0,25 118 Tabla D.3 Comparación medidas en el laboratorio de desarrollo, sistema CAN- Fluke 51 II. HORA 10:10:43 a.m. 10:20:43 a.m. 10:30:43 a.m. 10:40:43 a.m. 10:50:43 a.m. 11:00:43 a.m. 11:10:44 a.m. 11:20:44 a.m. 11:30:44 a.m. 11:40:44 a.m. 11:50:44 a.m. 12:00:45 p.m. 12:10:45 p.m. 12:20:45 p.m 12:30:45 p.m 12:50:04 p.m. 01:00:04 p.m. 01:10:04 p.m. 01:20:04 p.m. 01:30:04 p.m. 02:40:05 p.m. 02:50:05 p.m. 03:00:05 p.m. 03:10:05 p.m. 03:20:05 p.m. 04:03:25 p.m. 04:13:25 p.m. 04:23:25 p.m. 04:33:26 p.m. 04:43:26 p.m. 04:53:26 p.m. 05:03:26 p.m. 05:13:26 p.m. 05:23:26 p.m. FLUKE SISTEMA |(SISTEMA-FLUKE)| 20,9 20,73 0,17 20,9 20,79 0,11 21 20,99 0,01 21 20,99 0,01 21,1 21,18 0,08 21,8 21,64 0,16 22,1 22,03 0,07 22,6 22,55 0,05 23,1 23,14 0,04 23,3 23,4 0,1 23,7 23,92 0,22 23,6 23,92 0,32 23,3 23,53 0,23 23,1 23,48 0,38 22,9 23,1 0,2 22,8 22,81 0,01 22,8 22,88 0,08 22,9 23,07 0,17 23 23,14 0,14 23,1 23,07 0,03 23 23,07 0,07 22,5 22,55 0,05 22,7 23,01 0,31 23 23,01 0,01 22,9 23,2 0,3 22,9 23,07 0,17 22,8 23,07 0,27 22,8 23,01 0,21 22,8 22,88 0,08 22,9 23,01 0,11 22,9 22,94 0,04 22,9 22,94 0,04 22,9 22,94 0,04 22,9 22,88 0,02 119 05:33:26 p.m. 05:43:26 p.m. 22,8 22,9 22,88 22,75 Error promedio: 120 0,08 0,15 0,13