Control de Movimiento y Posicionado para la Cúpula del Telescopio de 0.84m, Versión 1.0 Ethernet F. Lazo-Valencia S. Zazueta-Rubio F. Murillo-Bracamontes J. L. Ochoa-Abundis J.M. Murillo Cárdenas Índice 1. Introducción………………………………….……….……........ 1 2. Antecedentes…………………………..………….…………..…… 1 3. Situación Problemática……………………………..…….……… 2 4. Objetivo………………………………………………..…..….....… 3 5. Descripción del Sistema……..…………………..……….…..… 3 6. Programa de Control………………………………..…….……… 4 7. Descripción del Algoritmo de Movimiento…………..........… 4 8. Pruebas y Resultados……………………..…………..……….… 5 9. Conclusiones………………………………………….…….……… 5 10. Referencias………………………………………………………… 6 Apéndice A. Protocolo de Comunicación…………………………. 7 Apéndice B. Diagrama Eléctrico de la Tarjeta Madre Interfaz del Sistema de Control de Posición de la cúpula……..………………………………………..… Apéndice C. Diagrama de las Mascarillas de la Tarjeta Madre Interfaz del Sistema de Control de Posición de la cúpula………………………………………….…… 8 9 ii 1. Introducción El objetivo de este trabajo es dar una descripción del control del control de movimiento y posicionado de la cúpula, así como también una descripción de la evolución que ha tenido la automatización de está; primeramente se da una serie de antecedentes, la situación de la cúpula y forma de resolverla, después se presentan los resultados y por último las conclusiones. 2. Antecedentes En el año de 1972 se terminó la instalación del telescopio de 0.84m e inicio la operación de éste. El edificio donde está el telescopio cuenta con una cúpula que tiene un diámetro interior igual a 7.48 m., una altura de 5.70 m. y una ventana de 2.31 m. de ancho (figura 1, figura 2). La cúpula está soportada por rodamientos y montada sobre un redondel de madera. Para realizar el giro de la cúpula se le acoplaron un par de motores, a 180 grados uno del otro, a través de transmisiones; los motores utilizados fueron de 0.25 Hp cada uno alimentado con 120 VAC y para activar el movimiento de giro se le instaló una paleta. Cuando se realizó esta instalación no se pensó que la cúpula se moviera en forma automática, debido a que se contaba con un asistente de cúpula, quien se encargaba de moverla a la posición donde estaba apuntando el telescopio, manteniendo así al telescopio dentro de la ventana de observación. Posteriormente surgió la necesidad de mover la cúpula de manera automática, entonces se planteó realizar un control automático de movimiento empleando un microcontrolador, que se pudiera comunicar a una PC a través de RS-232, y que recibiera las órdenes de posicionado desde la interfaz de usuario de la consola del telescopio. Este nuevo diseño, debería contar con una rampa de aceleración hasta llegar a la velocidad de calaje de la cúpula y de desaceleración hasta llegar al punto de reposo; esto debido a que en el esquema de movimiento anterior, el mecanismo de acoplamiento entre el motor y la cúpula periódicamente se dañaba, porque las aceleraciones, al momento de iniciar el movimiento de la cúpula, eran muy bruscas y además no estaba coordinado el movimiento de los motores al arranque; también se propuso instalar un codificador absoluto para conocer siempre la posición de la cúpula, ante todo esto, se diseño y realizó el control de la cúpula el cual se denominó “Control de movimiento y posicionado del domo del telescopio de 0.84 m”, [1] 1 Fig. 1 Cúpula y telescopio de 0.84m Fig. 2 Cúpula del telescopio de 0.84m 3. Situación Problemática El control realizado funcionó de forma satisfactoria, pero posteriormente encontramos que existía otro problema mecánico; el acoplamiento entre el codificador de posición absoluta y la cremallera donde gira la cúpula se perdía momentánea y aleatoriamente, esto, debido a atorones bruscos al momento de iniciar el movimiento o en velocidad de calaje de la cúpula, ocasionando que se fuera perdiendo la posición de la cúpula con el paso del tiempo; y dado que ya solamente existía un solo motor con su transmisión, y que al no estar bien alineado, la cúpula presentaba los atorones; perdiéndose la posición de la cúpula con el paso del tiempo, y por lo tanto se tenía que ajustar la posición de la cúpula periódicamente para que la ventana de ésta estuviera a donde apunta el telescopio en operación. Para resolver este problema, la solución que se le dio fue utilizar un codificador de posición relativa, para actualizar la posición de la cúpula cada vez que ésta tocara un interruptor, evitando así, que ésta perdiera su posición con el paso del tiempo. Una característica importante que se debe tener en cuenta para el programa de control, es que, dada la forma de acoplamiento entre el codificador de posición y la cúpula, el codificador cuenta positivo cuando el giro es contrario a las manecillas del reloj. Con el advenimiento de nueva tecnología, se pensó en el diseño y construcción de un nuevo control de movimiento para esta cúpula, utilizando un nuevo microcontrolador, más poderoso que el anterior, que fuera sencillo, robusto, confiable y que contara con comunicación Ethernet. Se decidió utilizar un módulo microcontrolador RCM3700 [2], que cuenta con un sistema operativo cooperativo multitareas, puertos de entrada/salida configurables, comunicación Ethernet y la programación de éste en leguaje C. 2 4. Objetivo Diseñar y construir un nuevo sistema de movimiento y posicionado para la cúpula del telescopio de 0.84m, con un error máximo de 0.5 grados en el posicionado empleando comunicación Ethernet. 5. Descripción del Sistema En base a las especificaciones antes mencionadas se diseñó y construyó un nuevo sistema de control para el movimiento y posicionado de la cúpula del telescopio de 0.84 m., El control está compuesto por una mini computadora dedicada, i. e. , un microcontrolador del tipo “RabbitCore RCM3700 C-Programmable Core Module with Ethernet” (figura 3) [2], con los programas de control implementados en lenguaje C, una tarjeta madre interfaz que alberga al microntrolador, un codificador de posición relativa de 500 pulsos por revolución tipo TRD-NH500-RZWD [3], un manejador de potencia para el giro del motor, 125 series Variable Speed CD Control [4] y relevadores que proporcionan el sentido de giro de la cúpula (figura 4). Fig. 3 Módulo Microcontrolador RCM3700. Fig. 4 Diagrama a bloques del control de la cúpula. El módulo RCM3700 cuenta con memoria RAM y EEPROM donde se ejecutan y alojan las rutinas del programa de control; el módulo se conecta a la tarjeta madre, a través de un conector de 40 terminales. Desde una interfaz de utilería en Linux o desde la interfaz de usuario de la consola del telescopio es posible mover a la cúpula a la posición deseada. En operación normal, se utiliza la interfaz de usuario para mover al telescopio y al mismo tiempo, la interfaz, envía la posición en grados al control de movimiento de la cúpula para que la ventana esté al centro a donde apunta el telescopio. La tarjeta madre interfaz se encarga de adecuar las señales de entrada/salida del microcontrolador: hacia el manejador de potencia del 3 motor, a los relevadores, al codificador de posición al interruptor que indica el origen de la cúpula, etc. El programa de control está montado en un kernel multitareas y se encarga de mover y posicionar a la cúpula a la posición proporcionada en grados, de 0 a 360, de girar en el sentido más corto para llegar a la posición indicada, buscar el origen, actualizar la posición cada vez que pasa por un interruptor y de atender el protocolo de la comunicación a través de Ethernet. 6. Programa de Control El programa está compuesto por una serie de rutinas como son: atender mensajes, mover la cúpula a la posición deseada, observar si se presionó el interruptor que actualiza la posición, observar si la cuenta es mayor o menor de 360 grados para empezar a incrementar o a decrementar la posición, enviar mensaje de error si la cúpula no se movió cuando se le mandó a una posición, cancelar todo movimiento si se recibió la orden de cancelación o de detener la cúpula, por alguna causa externa, cuando está en movimiento , etc. Estas rutinas se comunican entre ellas a través de banderas, para evitar que el control se quede un lazo infinito, el programa está en un ambiente multitareas, es decir, las rutinas son atendidas en una rebanada de tiempo de dos milisegundos aproximadamente. El proceso de atención a las rutinas es el siguiente; el sistema operativo va a la primer rutina, y de una tabla toma el estado de donde ésta se había quedado, ejecuta instrucciones durante su rebanada de tiempo, posteriormente gurda su estado en la misma tabla y continúa con la siguiente rutina haciendo lo mismo que con la anterior, este proceso se repite hasta volver a atender a la primera rutina Si la rutina que se está atendiendo no tiene nada que hacer, ésta cede su tiempo para que se ejecute la siguiente rutina, esto ocasiona que las rutinas sean atendidas más rápidamente. El sistema es de tiempo real porque se ejecutan acciones de control entre cada evento del proceso que se está observando, en este caso el movimiento y posicionado de la cúpula. 7.- Descripción del Algoritmo de Movimiento Para cualquier movimiento, se manda girara la cúpula hasta que el error sea menor o igual a 3 pulsos del codificador, después se deshabilita el movimiento, este número de pulsos equivale a un error de posición de 0.54°, equivalente a 3 cm de error. El valor de 3 pulsos se determinó así para tener un error de medio grado. 4 El perímetro, p = d * Pi; si: d=7.48 & Pi=3.14 entonces el perímetro es igual a 23.499 8. Pruebas y Resultados Se determinó el número máximo de pulsos proporcionado por la cúpula en una revolución completa, para ello se le hizo girar 3 veces en un sentido y otras 3 en sentido contrario, obteniendo un valor de 2000 p/rev. Entonces 360° = 2000 pulsos del codificador, 1° = 5.55 pulsos, el diámetro de la cúpula es d = 7.48m Se envío a la cúpula a diferentes posiciones desde diferentes puntos, encontrándose un error de posicionado de 0.52 grados en cualquier sentido equivalente a 3.52 cm. Se verificó que cada vez que la cúpula tocaba el interruptor de actualiza posición ésta se actualizara, evitando así la perdida de la posición con el paso del tiempo, se probaron tanto las rutinas de comunicación así como todos los mandos del protocolo de comunicación (apéndice A). Desde la consola de usuario se apuntó el telescopio a diferentes posiciones, y simultáneamente se mandó a posicionar a la cúpula a la posición del telescopio. El telescopio siempre quedó dentro de la ventana de observación de la cúpula. Se mando mover a la cúpula a diferentes posiciones, y siempre siguió la trayectoria más corta. Se hicieron pruebas para verificar que la cúpula no se moviera aleatoriamente al momento de encender o apagar el sistema. 9. Conclusiones El control de movimiento y posicionado de la cúpula, realizado, cumple con las especificaciones indicadas en el objetivo planteado; este nuevo control es robusto, sencillo, confiable y de bajo costo, se le realizaron las pruebas de funcionamiento y de depuración hasta llegar al punto óptimo de su operación. 5 10. Referencias [1] F. Lazo, S. Zazueta, G. Sierra. Reporte técnico RT-2004-28 Control de movimiento y posicionado del domo del telescopio de 84cm. Publicaciones Técnicas del Instituto de Astronomía, UNAM, 2004. [2] Rabbit Core RCM3700, C-Programmable Core Module with Ethernet User’s Manual019–0136 • 030910–A http://www.rabbit.com/redirect.jsp [3] TRD-NH500-RZWD Encoder, incremental, 50mm diameter body, 500 pulses per revolution, 5-30 VDC, push-pull output, http://www.automationdirect.com/static/specs/encodermd.pdf [4] 125 Series Variable Speed DC Control, This 125 Series is a compact, cost efficient, reliable control for PM, shunt wound, and universal motors that incorporates up - to date design and engineering into a compact package. www.dartcontrols.com 6 Apéndice A. Protocolo de Comunicación Dirección 192.168.0.109 :P; :G; :O; :J+; :J-; :S; :R; :Mxxx; :Cxxx; Puerto 4545 :PRxxx; ":?PR:" :ZMxxx; ":?ZM:" :TAxxx; ":?TA:" Proporciona la posición en pulsos. Proporciona la posición en grados. Gira el domo a la derecha hasta encontrar el origen. Gira el domo a la derecha. Gira el domo a la izquierda. Para el movimiento del domo. Inicializa completamente el sistema de control. Mueve a una posición ( de 0 a 360 grados), xxx = posición Pone el contador del codificador en la posición indicada por xxx El valor es en grados de 0 a 360. Pulsos por revolución. Regresa el numero de Pulsos por Revolución. Zona Muerta. Regresa el valor de la Zona Muerta. Tiempo de Arranque Regresa el valor del Tiempo de Arranque. Ejemplos, :J-; Gira a la izquierda hasta que recibe el mando :S; :O; Gira a la derecha, y cuando llega pone el contador de posición en cero. 7 Apéndice B. Diagrama Eléctrico de la Tarjeta Madre Interfaz del Sistema de Control de Posición de la cúpula 1.- Diagrama eléctrico 8 Apéndice C. Diagrama de las Mascarillas de la Tarjeta Madre Interfaz del Sistema de Control de la Cúpula 2.- Mascarilla de impreso PCB, lado soldadura 3.- Mascarilla de impreso PCB, lado componentes. 9