IMPLEMENTACION DE UN SENSOR INTELIGENTE DE TEMPERATURA SOPORTADO SOBRE EL PROTOCOLO BACNET Ing. Iván Jaramillo J. ivanj@gmun.unal.edu.co Oscar Ricardo Montero Tovar - ormonterot@unal.edu.co Jorge Alexander Pico Bonilla - japicob@unal.edu.co GMUN Grupo de Microelectrónica Universidad Nacional de Colombia ABSTRACT This paper presents the temperature intelligent sensor s control and communication module. The communication module part is supported under the data communication protocol for building automation and control networks (BACnet). Additionally, is covered the monitoring software design in a PC for the intelligent sensor s functional verification over a data communication network. RESUMEN Este trabajo presenta la implementación de módulo de control y comunicación de un sensor inteligente de temperatura. La parte del módulo correspondiente a la comunicación está soportada bajo el protocolo de comunicación de datos para automatización de edificios y redes de control (BACnet). Adicionalmente, se cubre el diseño del software de monitoreo en un PC para la comprobación funcional del sensor inteligente en una red de comunicación de datos.
IMPLEMENTACION DE UN SENSOR INTELIGENTE DE TEMPERATURA SOPORTADO SOBRE EL PROTOCOLO BACNET Ing. Iván Jaramillo J. ivanj@gmun.unal.edu.co Oscar Ricardo Montero Tovar - ormonterot@unal.edu.co Jorge Alexander Pico Bonilla - japicob@unal.edu.co GMUN Grupo de Microelectrónica Universidad Nacional de Colombia RESUMEN Este trabajo presenta la implementación de módulo de control y comunicación de un sensor inteligente de temperatura. La parte del módulo correspondiente a la comunicación está soportada bajo el protocolo de comunicación de datos para automatización de edificios y redes de control (BACnet). Adicionalmente, se cubre el diseño del software de monitoreo en un PC para la comprobación funcional del sensor inteligente en una red de comunicación de datos. 1. INTRODUCCION Los sensores inteligentes son dispositivos compuestos por un elemento sensor más un módulo de control y comunicación. Su importancia radica en que contribuyen a la automatización de procesos de control en edificios y en entornos industriales, en donde hay un sinnúmero de variables a controlar ubicadas en sitios distantes dentro de la infraestructura de tales ambientes. Con las redes de comunicaciones se logra centralizar el manejo de las diferentes variables para su procesado y control. Obviamente, el uso de redes implica el manejo de protocolos de comunicación y actualmente, hay varias opciones que están optimizadas para tal fin y el protocolo BACnet constituye una de ellas. Por otra parte, el mercado de la electrónica ofrece microcontroladores y microprocesadores de muy alto rendimiento, con conectividad a redes y a precios bajos. Con base en los anteriores aspectos, se presenta a continuación el desarrollo teórico-práctico de un sensor inteligente de temperatura y de lo que podría ser una workstation de monitoreo. 2. MARCO TEORICO El marco teórico para el desarrollo del presente proyecto abarca varios campos de la ingeniería electrónica, entre ellos están las redes de comunicación de datos, protocolos de comunicaciones, diseño de software, sistemas microcontrolados e instrumentación y medidas. En vista del extenso marco teórico, se puntualizará en las características del protocolo de comunicación de datos BACnet, ya que es el elemento más significativo que permitió la consecución del proyecto. 2.1. Protocolo BACnet Es un protocolo abierto de comunicación de datos para edificios inteligentes y redes de control (BACnet=Building Automation and Control networks). Fue desarrollado por el organismo norteamericano ASHRAE (American Society of Heating, Refrigeration, and Air Conditioned Engineers ) y su objetivo es el manejo de aplicaciones de control en sistemas de automatización de edificios tales como sistemas de control de aire acondicionado(hvac, por sus siglas en inglés), iluminación, seguridad, y de detección y supresión de fuego. Actualmente, es un estándar de la ANSI y de la ISO. Este protocolo surgió debido a la necesidad de crear un estándar que permitiera la comunicación de sistemas de control de diferentes vendedores. Dicha necesidad apareció en la década de 1980, ante la imposibilidad de reunir bajo un mismo sitio sistemas de control de distintos vendedores lo que ocasionaba grandes costos y en algunas ocasiones pérdida de materiales y equipos. En vista de estas situaciones, en Enero de 1987 ASHRAE inició el desarrollo de un protocolo industrial estándar para la comunicación de los sistemas de control en edificios con la creación del comité 135 que se encargó de esta tarea. En Agosto de 1991 se presentó al público la primera versión del protocolo, en Marzo de 1994 salió la segunda versión, y finalmente en Junio de 1995 la tercera versión fue aprobada como estándar de ASHRAE y en Noviembre de ese año fue aprobado como un estándar de la ANSI. 2.1.1. Visión técnica de BACnet Antes que nada, BACnet no define la configuración interna, la estructura de datos o la lógica de control de los
controladores. La información que necesita ser visible sobre la red de comunicación es abstraída de los detalles de implementación a través del uso de objetos estándar. La determinación de los objetos en un dispositivo a partir de sus procesos y datos son dejados al fabricante o implementador. Con respecto a arquitectura de comunicación de BACnet, esta se derivó del modelo de referencia de interconexión de sistemas abiertos (OSI). El comité 135 removió funcionalidades y capas del modelo OSI que no eran requeridas en un entorno de comunicaciones de edificios inteligentes y ambientes industriales. De ahí que se hable de un colapso del modelo OSI en la arquitectura de BACnet, tal y como lo muestra la Figura 1. Con respecto a los servicios, estos se agrupan en seis categorías: - Acceso a objetos. - Alarma y eventos. - Manejo de dispositivos remotos. - Terminales virtuales. - Seguridad. - Acceso a archivos. En total son 37 servicios que constituyen los medios por los cuales un dispositivo BACnet adquiere información de otro dispositivo, comanda otro dispositivo para realizar algunas acciones, o anuncia a uno o más dispositivos que algún evento ha ocurrido. De esta manera BACnet se basa en una arquitectura cliente-servidor. Referente a la capa de red, su función es proveer una camino para interconectar LANs de diferentes tecnologías. Con respecto a estas tecnologías, BACnet ofrece varias opciones de transporte local. La Figura 2 ofrece una ilustración comparativa de estas opciones. Figura 1. Arquitectura colapsada de BACnet. La capa de aplicación de BACnet consiste en realidad, de la capa de aplicación más algunas funcionalidades de las capas de presentación y transporte del modelo OSI. Las funcionalidades de la capa de transporte requieren de una entrega confiable de datos. En la capa de presentación se utiliza ASN.1 para la representación de datos sobre la red. Con respecto a la capa de aplicación, propiamente dicha, esta se tiene que analizar como dos partes separadas pero estrechamente relacionadas: un modelo de información contenido en un dispositivo de automatización de edificios, y un grupo de funciones o servicios usados para intercambiar esta información. El diseño interno y configuración de un dispositivo es propietario en naturaleza y diferente para cada vendedor. BACnet supera este obstáculo con la definición de una colección de estructuras de datos abstracta llamadas objetos, en donde las propiedades de estos representan varios aspectos del hardware, software y operación del dispositivo. Los objetos BACnet proveen un medio de identificación y acceso a la información sin requerir el conocimiento de los detalles del diseño interno del dispositivo. El software de comunicación en el dispositivo puede interpretar peticiones por información contenida en los objetos abstractos y traducir esta petición para obtener la información desde la estructura de datos real interna del dispositivo. En conjunto, los objetos proveen una representación visible a la red del dispositivo BACnet. Existen 18 tipos de objetos estandarizados por BACnet. Figura 2. Opciones de transporte local. Ya que en ciertas circunstancias es posible usar diferentes tecnologías de transporte para cumplir con un mismo trabajo, en donde la razón costo/velocidad puede no ser la misma; el diseño en BACnet permite adaptarse al transporte existente o al deseado. Últimamente, la popularización de la pila TCP/IP en el mundo gracias a Internet ha movilizado a los protocolos de comunicación industriales a adoptar su esquema red. BACnet no es ajeno a esa tendencia y permite su implementación sobre redes IP, para tal fin ofrece dos opciones: IP Message Tunneling y BACnet/IP. Para resumir, el protocolo de comunicación de datos para la automatización de edificios y redes de control BACnet, consiste de un modelo de información (objetos BACnet), servicios, un protocolo de capa de red, y una selección de varias tecnologías de transporte de red. La Figura 3 ilustra este resumen.
Figura 3. Estructura general de BACnet. 3. DESCRIPCION DEL SISTEMA Y ESPECIFICACIONES El modulo de comunicación y control corresponde a un sensor inteligente de temperatura. Bajo estas condiciones se abstraen los siguientes objetos BACnet: - DEVICE: objeto requerido por todo dispositivo BACnet, contiene información general acerca del dispositivo tal como nombre del fabricante, locación, tipos de objetos soportados, etc. - ANALOG INPUT: sus propiedades representan características visibles externamente de una entrada análoga, en este caso un sensor de temperatura. A continuación se definen los servicios que soporta el sensor inteligente: - ReadProperty : retorna un valor de una propiedad de un objeto, en el caso particular, la propiedad de interés es el valor presente correspondiente a la lectura del sensor. - ConfirmedCOVNotification: informa a dispositivos inscritos previamente, el cambio del valor temperatura. - SuscribeCOV: permite a dispositivos la suscripción al servicio de reporte de cambio de valor temperatura. A su vez esta compuesto por dos módulos en un ambiente multitarea, es decir, los módulos realizan sus tareas en forma paralela. Ver Figura 5. El módulo 2 se encarga de la recepción de los servicios y su correspondiente almacenamiento en un buffer de servicios. El módulo 1 se encarga de dos tareas. La primera es la atención y respuesta a los servicios solicitados que se encuentran en el buffer de servicios, garantizando una comunicación con el sensor para aquellos servicios que requieran el valor presente. La segunda tarea es un continuo chequeo del valor presente para verificar que no se encuentre fuera de un rango determinado. En caso de presentarse el fuera de rango, el módulo 1 envía un servicio a todos los dispositivos inscritos al servicio de reporte de cambio de valor de temperatura, notificando sobre la situación. Figura 5. Lógica interna del módulo. El esquema de red que se implementó es BACnet/IP y la trama de BACnet correspondiente se observa en la Figura 6. 3.1. Diagrama de bloques del sistema Figura 4. Diagrama de bloques total del sistema. 3.1.1. Plataforma de software del módulo El módulo de control y comunicación de datos es una plataforma de software que se encarga de la administración de la comunicación y el control del sensor. Figura 6. Descripción de la trama BACnet. Con el objeto de comprobar el correcto funcionamiento del sistema, se diseño un software de monitoreo en un computador. Como tal, esta herramienta debe interactuar con el sensor inteligente y por tanto,
soportar el protocolo. De esta manera, el computador incluye el objeto DEVICE y los servicios de ReadProperty, ConfirmedCOVNotification y SuscribeCOV, e implementa una plataforma de software de cliente con una estructura muy similar a la del sensor inteligente, ya que se conservan los mismo bloques, con la salvedad que el modulo 1 tiene una comunicación bidireccional con un operario y no con el sensor un temperatura. 3.1.2. Hardware Para la implementación del sensor inteligente se utilizó la tarjeta rcm2200 de Rabbit Semiconductor. Esta tarjeta cuenta con un microprocesador Rabbit 2000 de 8 bits, 256 K de memoria flash, 128 K de memoria RAM estática, 2 conectores de 26 pines que proveen líneas de entrada/salida al usuario y un puerto Ethernet 10Base-T. Por su parte, el microprocesador viene en encapsulado PQFP de 100 pines, tiene 40 líneas de entrada/salida paralelas (compartidas con 4 puertos seriales), numerosos temporizadores y contadores (juntos suman 6), cuatro niveles de interrupción que facilitan respuestas rápidas de utilidad en aplicaciones críticas, entre otros. El entorno de desarrollo utilizado para la implementación en el hardware de la plataforma de software de servidor fue Dynamic C. Este entorno de desarrollo está diseñado para uso en controladores Z- World y otros controladores basados en procesadores Rabbit. Dynamic C integra edición, compilación, vinculación, carga y depuración en un solo programa. Las aplicaciones se desarrollan en C y la compilación, vinculación y carga en la tarjeta rcm 2200 es bastante transparente al usuario y se logra llamando a una función de Dynamic C. También es soportado el desarrollo en lenguaje ensamblador. El software de monitoreo se implemento en un PC de escritorio con tarjeta de red FastEthernet 10/100. La plataforma de software de cliente fue desarrollada en Java. La escogencia de este lenguaje radica en que esta orientado por objetos y a que existe un API muy completa de Sun Microsystems, estos aspectos simplifican el desarrollo de aplicaciones basadas en BACnet. Adicionalmente se contó con la ayuda de una API diseñada específicamente para el desarrollo de aplicaciones BACnet propiedad de Shri Systems Inc. 3.2 Conexión del sensor inteligente a una red Ethernet Durante el desarrollo del sensor inteligente y del software de monitoreo, las pruebas funcionales se hicieron de una manera progresiva, así, en un principio se implementaron y verificaron tareas simples con el objeto de tener un soporte adecuado para la implementación del sistema total de comunicación y control del sensor inteligente y del software de monitoreo previamente diseñados. Bajo esta premisa, se terminó el sensor inteligente y el software de monitoreo en una red de área local Ethernet simple: una conexión del sensor con el computador de monitoreo a través de un cable cruzado. Una vez superadas todas las pruebas funcionales y garantizado el correcto desempeño e interacción de los dos dispositivos BACnet, se procedió a conectarlos a la red de área local Ethernet de la Universidad Nacional con el objeto de hacer la prueba de campo correspondiente, la Figura 7 ilustra dicha conexión. Figura 7. Conexión de los dispositivos BACnet. En la prueba de campo los dos dispositivos reflejaron el mismo comportamiento correcto de la red Ethernet simple, es decir, cuando desde el computador de monitoreo se requería el valor presente del sensor, este lo retornaba y se hacía el despliegue correspondiente. De igual forma, el computador podía hacer una petición exitosa de suscripción al servicio de reporte de cambio de valor de sensor inteligente, de esta manera, cuando el sensor detectaba un valor fuera de rango, inmediatamente lo reportaba a computador de monitoreo para despliegue. Vale la pena mencionar que la construcción de las tramas BACnet se hizo de manera correcta, ya que el analizador de protocolos de red Ethereal versión 0.9.15 los detectó e identificó como tramas del protocolo BACnet. 4. CONCLUSIONES Si observamos hoy día los avances tecnológicos en el área de técnicas digitales de la ingeniería electrónica, vemos que los dispositivos lógicos programables y los microprocesadores están evolucionando cada día más rápido, al punto de ofrecer desempeños enormes a precios muy bajos. Es así, como estos dispositivos fácilmente se adaptan hacia la solución de tareas complejas de una manera rentable, obviamente, con la ayuda de prácticos
entornos de desarrollo que facilitan la solución de problemas a un alto nivel, y de hardware suplementario que brinda conectividad a redes, programación de dispositivos, entre otros. Con base en este punto de vista, se implementó el módulo de comunicación y control de un sensor inteligente soportado sobre el protocolo de comunicación de datos y redes de control (BACnet), en un microprocesador. El siguiente paso sería la implementación del sensor inteligente en un dispositivo lógico programable, más exactamente un FPGA, al rescatar la estructura lógica del presente proyecto. En el FPGA, dicha estructura lógica se traduciría a una descripción en alto nivel mediante el uso del lenguaje VHDL y luego se haría la correspondiente prueba funcional del sensor inteligente al programar el FPGA y colocar el sistema total sobre la red de datos. El propósito final de esta cadena de desarrollos es usar la descripción en alto nivel en VHDL y una librería de celdas estándar para producir un circuito integrado a la medida que implemente el módulo de control y comunicación del sensor inteligente. Con este circuito integrado, se pretende eliminar los gastos monetarios en recursos de hardware del microprocesador y el FPGA que no se usan cuando se desarrollan aplicaciones específicas y de esta manera, pensar en una producción en masa para una comercialización rentable del sensor inteligente. También se demuestra la versatilidad del protocolo de comunicación de datos BACnet al ser un protocolo abierto diseñado específicamente para control de edificaciones, permitir la soluciones basadas en la interoperabilidad de productos de diferentes fabricantes, brindar múltiples opciones de tecnología de transporte de área local y ser reconocido como estándar de la ANSI y de la ISO. Adicionalmente, BACnet se puede montar sobre redes IP y por tanto, aprovechar los beneficios que consigo trae la Internet. Finalmente, se planea la incursión del presente desarrollo en los ambientes de automatización de edificios, casas e industrias, lo cual constituye un mercado naciente en nuestro país. Así mismo, se continúa invitando a la generación de exportaciones en tecnología al mercado mundial, ello en vista de que las desventajas con los países potencia son escasas cuando se trata de proyectos, que como el presente, cuentan con un fuerte componente de software. [3] D. Comer, Internetworking with TCP/IP. Vol. I 2ª edición, Ed. Prentice Hall Inc., 1991. [4] Java Language Specification http://java.sun.com/doc/ [5] H. Deitel y P. Deitel, Cómo programar en Java. 1ª edición, Ed. Prentice Hall Hispanoamericana S.A., 1998. [6] M.F. Azuela y L. Joyanes, Java 2 Manual de programación, Ed. McGraw Hill, 2001. [7] Rabbit Semiconductor, Rabbit 2000 Microprocessor User s Manual, Rabbit Semiconductor. [8] S.T. Bushby, BACnet A standard communication infrastructure for intelligent buildings, Automation in Construction. Vol. 6 No. 5-6, pp. 529-540, 1997. [9] W. Swan, Building Wide-Area Networks with BACnet (Part II), Engineered Systems. Vol. 16 No.8, pp.62-70, Julio de 1999. [10] W. Swan, The Language of BACnet, Engineered Systems. Vol 13 No.7, pp.24-32, Julio de 1996. [11] Z-World Inc., Dynamic C User s Manual, Z-World Inc. [12] Z-World Inc., RabbitCore RCM2200 User s Manual, Z- World Inc. 5. REFERENCIAS [1] A.S. Tanenbaum, Redes de Computadoras, Ed. Prentice Hall, 1.997. [2] ASHRAE, Standard 135-1995: BACnet - A Data Communication Protocol for Building Automation and Control Networks, ASHRAE, Atlanta, Georgia, USA, 1995.