SISTEMA ATOMÁTICO PARA EL ARMADO DE...

43
SISTEMA ATOMÁTICO PARA EL ARMADO DE GAJOS Y CONTROL DE CORTINA DE LA CUPULA DEL TELESCOPIO DE 2.1m DEL OAN. Versión 1.2. F.Murillo, J.L. Ochoa, L. Gutiérrez, B. García, J.M Murillo, B. Martínez, G. Guisa. Resumen. El presente trabajo tiene como propósito documentar el sistema automático para el armado de gajos y control de cortina de la cúpula del telescopio de 2.1m , el cuál permite al operador de telescopio realizar esta tarea de una manera cómoda y eficiente. Se describe el funcionamiento del sistema electromecánico en todas sus componentes mecánicas, eléctricas y electrónicas. Así como su implementación y operación. También se incluye una guía para solución de problemas. Mayo de 2007.

Transcript of SISTEMA ATOMÁTICO PARA EL ARMADO DE...

Page 1: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

SISTEMA ATOMÁTICO PARA EL ARMADO DE GAJOS

Y CONTROL DE CORTINA DE LA CUPULA DEL TELESCOPIO DE 2.1m DEL OAN.

Versión 1.2. F.Murillo, J.L. Ochoa, L. Gutiérrez, B. García, J.M Murillo, B. Martínez, G. Guisa.

Resumen. El presente trabajo tiene como propósito documentar el sistema automático para el armado de gajos y control de cortina de la cúpula del telescopio de 2.1m , el cuál permite al operador de telescopio realizar esta tarea de una manera cómoda y eficiente. Se describe el funcionamiento del sistema electromecánico en todas sus componentes mecánicas, eléctricas y electrónicas. Así como su implementación y operación. También se incluye una guía para solución de problemas.

Mayo de 2007.

Page 2: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

i

1 INTRODUCCIÓN.................................................................................................................... 1 2 DESCRIPCIÓN DEL SISTEMA MECÁNICO. ................................................................... 1 3 SISTEMA AUTOMÁTICO DE CIERRE DE CORTINA Y ARMADO DE

GAJOS............................................................................................................................. 3 3.1 Circuito de control del sistema. ........................................................................................ 4

3.1.1 Asignación de salidas. ............................................................................................. 5 3.1.2 Asignación de entradas. .......................................................................................... 5 3.1.3 Puerto de comunicación RS485............................................................................... 6

3.2 Programa de control. ......................................................................................................... 6

3.2.1 Instrucciones del programa..................................................................................... 8 3.2.2 Dirección IP y datos de la red................................................................................. 9

3.3 Sensores de posición. ...................................................................................................... 10

3.3.1 Sensores de cortina y gajos. .................................................................................. 10 3.3.2 Sensores de ganchos.............................................................................................. 12

3.4 Circuito de optoacopladores. .......................................................................................... 14

3.5 Contactores de ganchos................................................................................................... 14

3.6 Contactores de cortina..................................................................................................... 15

3.6.1 Modulo ADAM4060. ............................................................................................. 15 3.7 Dispositivos de red inalámbrica LinkSys ....................................................................... 16

3.8 Instalación del sistema. .......................................................................................... 16

3.8.1 Access Point. ......................................................................................................... 16 3.8.2 Gabinete del circuito de control............................................................................ 16 3.8.3 Gabinete de contactores de cortina....................................................................... 17

4 INTERFAZ DE USUARIO ......................................................................................... 21 5 EN CASO DE FALLAS ......................................................................................................... 23

5.1 La cortina no abre. .......................................................................................................... 23

5.2 No hay comunicación. .................................................................................................... 23

APENDICE A. DIAGRAMAS ELECTRÓNICOS. ............................................................... 24 A.1 Circuito de control. ........................................................................................................ 24

A.2 Circuito de control, mapa de componentes. ................................................................... 25

Page 3: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

ii

A.3 Circuito de optoacopladores........................................................................................... 26

A.4 Circuito de optoacopladores, mapa de componentes. .................................................... 27

A.5 Contactores de ganchos.................................................................................................. 28

A.6 Contactores de cortina.................................................................................................... 29

A.7 Modulo ADAM4060, esquemático................................................................................ 30

A.8 Modulo ADAM4060, formato de instrucciones. ........................................................... 31

APENDICE B. LISTADO DEL PROGRAMA DE CONTROL........................................... 32

Page 4: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

1

1 Introducción. La cortina de la cúpula del telescopio de 2.1m se encuentra dividida en tres secciones, una sección superior y dos secciones inferiores desmontables denominadas gajos. Los cuales son ajustados durante una noche de observación para observar objetos a diferentes inclinaciones sin obstrucción de la cortina. Este trabajo es realizado por el operador del telescopio de manera manual desde una consola de interruptores ubicada en la parte inferior de la cúpula. La tarea implica que el operador suba al piso de observación donde tiene que bajar la cortina y colocar una escalera para subir a una altura de 3m donde se localizan los interruptores. Para facilitar el trabajo del operador de telescopio y hacer el procedimiento más eficiente, el equipo de instrumentación se dio a la tarea de automatizar el sistema, para ello fue necesario colocar sensores de posición a lo largo de la trayectoria de la cortina y gajos, diseñar una electrónica de lectura de los sensores y manejo de actuadores mecánicos. Además de habilitar un canal de comunicación para enlazar la computadora del asistente, que se ubica en el cuarto de observación, con el control de cortina y gajos colocado sobre la cúpula, la cual es móvil. Desde una interfaz gráfica amigable, el operador de telescopio puede hacer su trabajo de una manera eficiente disminuyendo los tiempos muertos durante la observación astronómica. Además el sistema fue diseñado para ser controlado vía red Ethernet abriendo la posibilidad de realizar las tareas de armado de gajos y apertura de la cortina de manera remota, que es la tendencia actual del Observatorio Astronómico Nacional. En este trabajo se documenta el sistema de control automático de gajos y cortina del telescopio de 2m, la organización del documento es como se muestra a continuación: En el capitulo 2 se describe brevemente la configuración del sistema mecánico y se define la nomenclatura utilizada en el resto del trabajo, en el capítulo 3 se documenta la distribución del sistema de control completo desde el punto de vista electrónico y de programación. El capítulo 4 muestra la interfaz de usuario y su manejo, por último en el capítulo 5 se da una guía rápida para solución de problemas.

2 Descripción del sistema mecánico. La cortina se encuentra dividida en tres secciones, la primer sección se le denomina cortina y las dos secciones restantes se les denomina gajos (Ver figura 1). El gajo superior es llamado gajo 1 y el inferior gajo 2, ambos se sujetan a la cortina a través de unos ganchos de amarre denominados gancho 1 y gancho 2. Cuando se desea colgar el gajo 1 en la cortina, se debe colocar el gancho 1 en su posición “Dentro”, cuando se desea liberar el gajo se coloca el gancho en su posición “Fuera”. Para colgar el gajo 2 se deben llevar ambos ganchos a su posición dentro. Los ganchos son accionados mediante un par de pistones electromecánicos instalados en la base de la cúpula los cuales se mueven verticalmente hacia arriba o hacia abajo, estos actuadores nos permiten enganchar y desenganchar los gajos.

Page 5: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

2

La corina se abre o cierra mediante un sistema de motor y cadenas instalado en la parte superior de la cúpula. Un par de interruptores límite definen su carrera de apertura, los dos están colocados en la parte superior de la cúpula y son accionados mediante un par de levas sujetadas sobre el cuerpo de la cortina.

Gajo 1

Gajo 2

Cortina

Gancho 1

Gancho 2

Pistones

Figura 1. Corte transversal de la cortina del telescopio de 2.1m.

Debido a que la cúpula sobre la que se encuentra la cortina es giratoria y es deseable accionarla en cualquier posición donde ésta se encuentre, para ello en la base de la cúpula y distribuidos a lo largo de su circunferencia se encuentra un conjunto de contactos eléctricos deslizantes “Trolleys”, los cuales mantienen energizado el sistema de apertura de cortina en cualquier posición de la cúpula.

Page 6: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

3

3 Sistema automático de cierre de cortina y armado de gajos. El sistema automático de cierre de cortina y armado de gajos esta diseñado para realizar las siguientes tareas: Conocer en todo momento la posición de la cortina y gajos, colocación de los ganchos 1 y 2 en su posición “dentro” o “fuera” para realizar el armado de gajos, apertura y cierre de la cortina, así como el encendido y apagado de las luces de cúpula. Todo esto controlado desde la computadora del asistente de telescopio ubicada en el cuarto de observación. La distribución general del sistema es como se muestra en la figura 2, la descripción que se da a continuación es en el orden en que fluye la información en el sistema. El punto de partida es la computadora del asistente de telescopio donde se ejecuta el programa de interfaz de usuario desde donde se controlan las funciones del sistema. Una instrucción en particular es canalizada vía ethernet al circuito de control del sistema ubicado sobre la cúpula, para realizar este enlace de comunicación se colocó un par de dispositivos de red inalámbrica “Linksys”, uno en el piso de telescopio sobre la pared y otro sobre la cúpula en un lugar cercano al circuito de control. El circuito de control cuenta con una microcomputadora que se encarga de analizar la instrucción y ejecutarla, para ello cuenta con la información arrojada por los sensores de posición de cortina y gajos, además cuenta con actuadores electromecánicos para posicionar los ganchos.

Las acciones de apertura y cierre de la cortina así como del encendido y apagado de las luces de cúpula son realizadas mediante un modulo digital comercial con salida a relevador “ADAM4060” que recibe instrucciones vía puerto serie en formato RS485, para ello la computadora de control posee un puerto serie con el cual interactúa con este controlador. En las siguientes secciones se documenta cada parte del sistema, se hecha mano de diagramas eléctricos, electrónicos diagramas de flujo para documentar el programa de control. Se inicia con el circuito de control que es el corazón del sistema, posteriormente se documenta el programa de control que se ejecuta en la microcomputadora de control. Por último se adentra en los detalles del sistema como son la distribución de sensores y su acondicionamiento, el acoplamiento entre el sistema digital y los dispositivos electromecánicos. Se muestra también de manera gráfica la instalación y ubicación de cada una de las partes en el edificio del telescopio de 2m.

Page 7: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

4

`

Circuito de control del sistema

Actuadores de ganchos

Modulo de movimientos de

cortina

Actuadores de cortina

Red 0

Red 0

PC ASISTENTES

DISPOSITIVO DE RED INALAMBRICA

“ACCESS POINT LINKSYS”

DISPOSITIVO DE RED INALAMBRICA “ROUTER LINKSYS”

1.- CUARTO DE OBSERVACIÓN

2.- PISO DE TELESCOPIO

Sensores de posición

3.- CÚPULA DEL TELESCOPIO

Figura 2. Distribución del sistema de control de gajos y cortina.

3.1 Circuito de control del sistema. Las funciones del sistema son realizadas y supervisadas por el circuito de control

del sistema. El circuito esta organizado como se muestra en la figura 3, consta de 8 salidas optoacopladas de colector abierto utilizadas para el manejo de relevadores y 7

Page 8: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

5

entradas digitales reforzadas utilizadas en la lectura de los sensores de posición, además posee un puerto de comunicación RS485 utilizado para enviar mandos al modulo de control de cortina. La operación de este circuito es controlada por un microcontrolador Rabbit 3000 con ducto ethernet que permite manejarlo de manera remota. El circuito se alimenta con 12VDC, el diagrama electrónico detallado y su mapa de componentes se muestran en apéndice A, diagramas A1 y A2 respectivamente.

M ic ro c o n tro la d o r R a b b it 3 0 0 0

C irc u ito d e a c o n d ic io n a m ie n to

b a s a d o e n o to a c o p la d o re s

C irc u ito d e a c o n d ic io n a m ie n to

b a s a d o e n re fo rz a d o re s

M a n e ja d o r R S 4 8 5

O c h o s a lid a s d e c o le c to r a b ie r to

S ie te e n tra d a s d ig ita le s

P u e r to d e c o m u n ic a c ió n

rs 4 8 5

Figura 3. Organización del circuito de control.

3.1.1 Asignación de salidas. De las 8 salidas DO0-DO8 (Ver diagrama A1) con las que cuenta el circuito de

control solo se utilizan 4 para el manejo de los ganchos de amarre, los cuatro bits se combinan para realizar una acción determinada de acuerdo a la información mostrada en la tabla 1. Como se puede ver en la tabla, el estado activo es el nivel lógico 0 y la codificación es en uno activo (Un bit activo a la vez). La condición de paro se alcanza colocando todos los bits en nivel lógico 1, en esta condición no se realiza ninguna acción.

Tabla 1. Combinación de bits de salida del circuito de control y acción correspondiente.

Salida Valor Valor digital 1 DO3, DO2, DO1, DO0 1, 1, 1, 0 Desengancha gajo 2.

“ 1, 1, 0, 1 Engancha gajo 2. “ 1, 0, 1, 1 Engancha gajo 1. “ 0, 1, 1, 1 Desengancha gajo 1. “ 1, 1, 1, 1 Paro.

3.1.2 Asignación de entradas. Seis de las siete entradas DI0-DI6 (Ver diagrama A1) con las que cuenta el circuito de control son utilizadas para la lectura de los sensores de posición, los cuales constan de una serie de interruptores. La tabla 2 muestra la asignación de bits y el estatus del sistema que representan de acuerdo a su valor lógico. Como se observa en la tabla el

Page 9: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

6

nivel lógico cero representa el estado activo, esto significa que cuando un interruptor está activado, el nivel lógico que se lee en la entrada es cero.

Tabla 2. Asignación de bits de entrada del circuito de control. No. De Bit Estado Lógico 0 Estado Lógico 1

DI0 Indica que el gancho 2 esta dentro. Gancho 2 fuera. DI1 Indica que el gancho 1 esta dentro. Gancho 1 fuera. DI2 Indica que el gajo 2 esta abajo. Gajo 2 colgado en la cortina. DI3 Indica que el gajo 1 esta abajo. Gajo 1 colgado en la cortina. DI4 Indica que la cortina esta totalmente

abierta. La cortina no esta totalmente abierta.

DI5 Indica que la cortina esta totalmente cerrada.

La cortina no esta totalmente cerrada.

3.1.3 Puerto de comunicación RS485. El circuito cuenta con un puerto para comunicación serie RS485 etiquetado como DATA- y DATA+ (Ver diagrama A1). Este puerto es utilizado para enviar comandos al modulo de relevadores de cortina, el cual consta de un modulo ADAM4060 con salida a relevador (Ver sección 3.6.1). La velocidad de transmisión a través de este puerto es de 4800 bits por segundo.

3.2 Programa de control. El programa de control es ejecutado por el microprocesador Rabbit3000 que forma parte del circuito de control descrito en la sección 3.1. Por completes de este reporte se ha incluido el listado completo de este programa en el apéndice B. El código denominado Gajos2m.c está escrito en lenguaje C y compilado en el paquete de desarrollo de la compañía Rabbit denominado “Dinamic C 8.30”. En el desarrollo del programa se utilizaron las capacidades multitarea del procesador, ya que puede realizar varios procesos a la vez, por ejemplo puede supervisar el cierre de la cortina mientras atiende un mando recibido por la red, esto permite cancelar el proceso. Existen tres procesos en el programa, el primero es el proceso “socket” que supervisa la red, este proceso se refresca cada diez milisegundos; el segundo es el proceso de manejo de eventos, este proceso se encarga de ejecutar y supervisar un evento en particular, los eventos son: apertura y cierre de cortina, mete o saca el gancho 1, mete o saca el gancho 2. Se les denomina eventos porque son acciones que suceden durante un tiempo determinado, en el cual el proceso supervisa que se desarrollen de manera satisfactoria. Debido a que los eventos son muy lentos desde el punto de vista del procesador, el proceso se refresca cada segundo. El tercer proceso es el de manejo de secuencias, este proceso se encarga de ejecutar una secuencia de eventos. Por ejemplo para armar una configuración de gajos en particular es necesario cerrar la cortina, configurar los ganchos y abrir la cortina, esto involucra la ejecución de tres eventos en un orden determinado y es a lo que llamamos secuencia. Existen tres secuencias programadas y las tres están relacionadas con el armado de gajos. La primera secuencia se denomina “Dos arriba” y se encarga de colgar los dos

Page 10: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

7

gajos a la cortina, la segunda “Uno arriba” se encarga de colgar el gajo 1 en la cortina dejando el gajo 2 abajo, por ultimo la secuencia “Dos Abajo” deja los dos gajos descolgados. La ejecución de una de estas secuencias involucra una serie de pasos y toma de decisiones, para visualizar estos pasos de una manera gráfica en las figuras 4 a 6 se muestran los diagramas de flujo de cada una de ellas. Como se observa en las figuras, las tres tienen una estructura semejante, y solo se diferencian en la configuración de ganchos. Los diagramas muestran que las secuencias son procesos recurrentes, es decir que vuelven a su punto de inicio hasta que se satisfacen todas las condiciones.

INICIO

Lee interruptores de sensado

La cortina está cerrada? Cierra la cortina

El gancho 1 está dentro? Mete el gancho 1

El gancho 2 está dentro? Mete el gancho 2

FIN

Si

Si

Si

No

No

No

Figura 4. Diagrama de flujo de la secuencia “Dos arriba”.

Page 11: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

8

INICIO

Lee interruptores de sensado

La cortina está cerrada? Cierra la cortina

El gancho 1 está dentro? Mete el gancho 1

El gancho 2 está fuera? Saca el gancho 2

FIN

Si

Si

Si

No

No

No

Figura 5. Diagrama de flujo de la secuencia “Uno arriba”.

INICIO

Lee interruptores de sensado

La cortina está cerrada? Cierra la cortina

El gancho 1 está fuera? Saca el gancho 1

El gancho 2 está fuera? Saca el gancho 2

FIN

Si

No

Si

Si

No

No

Figura 6. Diagrama de flujo de la secuencia “Dos abajo”.

3.2.1 Instrucciones del programa. Las instrucciones del programa se dividen en dos grupos, instrucciones de eventos e instrucciones de secuencias, todas las instrucciones finalizan con el caracter ‘)’. Existen tres instrucciones de secuencia que activan las secuencias mostradas en las figuras 4-6 estas se muestran el la tabla 3. Las instrucciones de eventos realizan una tarea en particular, existen once de estas instrucciones y se muestran listadas en la tabla 4.

Tabla 3. Instrucciones de secuencia. Mando Descripción

DOS_ABAJO() Desengancha ambos gajos. DOS_ARRIBA() Engancha los dos gajos. UNO_ARRIBA() Engancha el gajo 1.

Page 12: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

9

Tabla 4. Instrucciones de eventos. Mando Descripción

ESTATUS() Lee el estado de los interruptores de sensado y regresa un número decimal (0-255) indicando el estado de cada interruptor.

ABRIR() Abre la cortina. CERRAR() Cierra la cortina. ALTO() Detiene la apertura o cierre de la cortina. GANCHO1_DENTRO() Engancha el gajo 1. GANCHO1_FUERA() Desengancha del gajo 1. GANCHO2_DENTRO() Engancha el gajo 2. GANCHO2_FUERA() Desengancha del gajo 2. PARO_GANCHOS() Detiene el movimiento de ganchos en proceso. LUCES_ON() Enciende las luces de cúpula. LUCES_OFF() Apaga las luces de cúpula. Actualmente el programa de interfaz de usuario utiliza las instrucciones de secuencia y cuatro de las instrucciones de eventos: CERRAR, ALTO, LUCES_ON y LUCES_OFF. Las demás instrucciones están disponibles para el diagnostico de fallas en el sistema. Es posible enviar cualquiera de las instrucciones desde una ventada de comandos de Linux usando el comando “hose” de la siguiente forma:

hose 192.168.0.21 3333 –slave una vez que este comando establece conexión simplemente se teclea la instrucción deseada y se presiona Enter. Para mayor información sobre los datos de la red del controlador consulte la siguiente sección.

3.2.2 Dirección IP y datos de la red. Los datos de la red configurados en el microcontrolador RMC3000 de

cortina y gajos se muestran en la tabla 5, la dirección IP es estática y fue asignada por el departamento de computo de SPM, corresponde a la red 0 que se utiliza para el manejo de instrumentos. Los otros datos son los que se utilizan para todas las computadoras conectadas en la red 0.

Tabla 5. Configuración de red del RCM3000 IP ADRESS 192.168.0.21 NETMASK 255.255.255.0 NAMESERVER 192.168.1.1 GATEWAY 192.168.0.254 PORT 3333

Page 13: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

10

En el programa de control del apéndice B solo se encuentra especificado el puerto, los otros datos de red se especifican en un archivo de configuración del sistema de desarrollo que normalmente se encuentra en el directorio:

C:\DCRABBIT_8.30\LIB\TCPIP\TCP_CONFIG.LIB Es importante actualizar este archivo antes de programar un Rabbit con el programa del Apendice B, acción que puede ser requerida si se dañara el que actualmente está operando.

3.3 Sensores de posición. El sistema cuenta con seis sensores de posición para conocer el estado de la

cortina, la configuración de gajos y el estado de los ganchos de amarre en todo momento. En esta sección se describe la colocación de los sensores y como se ajustan para su correcto funcionamiento.

3.3.1 Sensores de cortina y gajos. Para el sensado de la posición de cortina y gajos se colocaron cuatro interrruptores magnéticos, distribuidos a lo largo de la trayectoria de desplazamiento de la cortina, donde son activados mediante dispositivos magnéticos colocados sobre la cortina y gajos. Al desplazarse la cortina activa un interruptor a la vez para indicar que la cortina esta cerrada, abierta, con uno o dos gajos abajo.

La colocación de los sensores de cortina se muestra en la figura 7, etiquetados como sensores 1 y 2, el sensor 1 indica que la cortina esta totalmente abierta y el sensor 2 que esta totalmente cerrada, el dispositivo magnético que activa estos dos sensores se ubica en el extremo inferior de la cortina. Para llevar el cableado de estos sensores al circuito de control se instalo un tubo PVC en el borde de la cortina.

La colocación de los sensores de gajos se muestra en la figura 8, etiquetados como sensores 3 y 4, el sensor 3 indica que el gajo 1 esta abajo y el sensor 4 que el gajo 2 esta abajo. Este par de sensores son activados mediante un par de imanes que se encuentran montados sobre unas bases de aluminio con tres grados de libertad que permiten alinearlos, la figura 9 muestra una de las bases y las partes móviles que la componen. La alineación de estos imanes debe realizarse de manera cuidadosa para el buen funcionamiento del sistema.

Page 14: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

11

Dispositivo magnético

(Viaja sobre la cortina)Sensor 1

(Cortina Abierta)Sensor 2

(Cortina Cerrada)

Ducto de cableado Figura 7. Colocación de los sensores de cortina.

Gajo 1

Gajo 2

Sensor 3 (Gajo 1 abajo)

Sensor 4(Gajo 2 abajo)

Figura 8. Ubicación de sensores de posición de gajos.

Page 15: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

12

Ubicación del imán(Girar para ajustar profundidiad)

Ojos de chale para ajuste horizontal

Prilla de ajuste vertical

Figura 9. Montura con tres grados de libertad para la alineación de los imanes de los sensores de gajos.

3.3.2 Sensores de ganchos. En la base de los gajos se encuentran colocados los actuadores que manejan los ganchos, estos son un par de pistones manejados por un motor de corriente alterna (Ver figura 10), los pistones corren hacia arriba y abajo con dos posiciones fijas, una superior y otra inferior, limitadas por dos interruptores activados mediante una leva de metal. El pistón izquierdo mueve el gancho 1 y el derecho el gancho 2. Cuando los pistones están en la posición superior los ganchos están “fuera”, en esta posición el gajo esta desenganchado de la cortina. Cuando los pistones están en la posición inferior los ganchos están “dentro” y los gajos enganchados a la cortina. Para sensar la posición de los pistones se colocaron un par de interruptores que se activan mecánicamente con la misma leva utilizada para los interruptores límite (Ver Figura 11), los interruptores sensan solo cuando los pistones están en la parte inferior “gancho dentro”, si estos interruptores no estan activados se asume que los ganchos están en la posición “fuera”.

Page 16: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

13

Pistón de Gancho 1

Pistón de Gancho 2

Fifura 10. Ubicación de pistones para movimiento de ganchos.

Interruptores Límite

Interruptores de sensado Figura 11. Interruptores límite y de sensado de los pistones de ganchos.

Page 17: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

14

Los interruptores se encuentran montados sobre una placa de aluminio y sujetados con tornillos, el soporte tiene canales que permiten ajustar los interruptores verticalmente. El ajuste se hace de la siguiente manera: primero se define la carrera del pistón moviendo los interruptores límite, una vez hecho esto se procede a ajustar la altura de los interruptores de sensado de tal manera que éstos se activen un instante antes que el interruptor límite inferior de cada pistón, de lo contrario el pistón se detendrá antes de activar el interruptor de sensado y el controlador no se enterará de la posición del pistón.

3.4 Circuito de optoacopladores. El circuito de optoacopladores constituye una etapa de potencia intermedia, el cual tiene como función convertir las señales digitales con niveles lógicos de 0 y 5V y capacidad de corriente limitada, que son generas por el circuito de control, a señales de mayor potencia que permiten manejar los contactores que accionan el movimiento de los ganchos. Además acondiciona las señales de los interruptores de sensado y las presenta en un formato digital para ser introducidas al circuito de control. Como función adicional, el circuito de optoacopladores brinda protección al circuito de control ya que lo mantiene eléctricamente aislado del resto del sistema. El diagrama esquemático de este circuito así como su mapa de componentes se muestran en el apéndice A3 y A4 respectivamente, a continuación damos una breve descripción de este diagrama. Como se observa en el diagrama A3, los optoacopladores U1 a U6 son utilizados en el acondicionamiento de señales de los interruptores de sensado. Los optoacopladores U8 a U11 son utilizados para accionar los contactores de movimiento de ganchos, estos contactores se describen en la sección 3.5. El conector CN1 recibe el cableado de los interruptores de sensado, el conector CN2 lleva las señales digitales mediante cables al circuito de control y el conector CN3 lleva las señales de potencia hacia los contactores de ganchos.

3.5 Contactores de ganchos. El movimiento de los ganchos se realiza mediante la acción de un par de pistones electromecánicos, los cuales operan con un motor de 110V AC cada uno. Cada motor esta conformado por un par de bobinas, una de arranque y otra de trabajo. La bobina de arranque posee una derivación central que la divide en dos secciones, dependiendo de cual sección se energice durante el arranque es el sentido en que girará el motor, esto hace que el motor pueda operar en un sentido o en otro haciendo que el pistón entre o salga para meter o sacar el gancho correspondiente. La bobina de trabajo como su nombre lo indica, mantiene en operación al motor. Para controlar este conjunto de bobinas de tal manera de se realice la operación deseada, se utiliza una serie de contactores conectados como se muestra en el diagrama eléctrico A5 del apéndice A. Los contactores etiquetados como R1,R2,R3 y R4 son accionados de manera manual a través de los interruptores S7,S8,S9 y S10 respectivamnete o mediante las señales optoacopladas generadas en la tarjeta de control. Las funciones de R1 y R2 son meter y sacar el gancho 2 repectivamente, así mismo las funciones de R3 y R4 son meter y sacar el gancho 2.

Page 18: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

15

Existen cuatro interruptores límite etiquetados como SW LIMITE1-4, estos limitan la carrera de los pistones, son activados mediante una leva colocada sobre el pistón y cuando son alcanzados detienen el movimiento. El diagrama muestra dos fuentes de voltaje una de +12 y otra de +24, la primera se utiliza para alimentar el circuito de control y la segunda para alimentar los contactores.

3.6 Contactores de cortina. La cortina tiene solo dos movimientos el de cierre y apertura, realizados por un motor de corriente alterna trifásica de potencia, el motor es accionado por un par de contactores eléctricos trifásicos de potencia, uno se utiliza para el cierre y el otro para la apertura. La activación de estos contactores puede realizarse de manera manual desde el piso de telescopio o de manera automática y remota desde la computadora del asistente, es deseable que las dos operaciones manual y automática no entren en conflicto. Para realizar estas funciones, existe un arreglo de contactores de potencia intermedia constituidos por relevadores de 24V, este arreglo se muestra en el diagrama A6 del apéndice A. Los contactores de potencia intermedia tienen dos estados, normal y activo, en su estado normal mantienen habilitada la operación manual de los contactores de potencia y cuando están activos deshabilitan la operación manual y habilitan la operación remota.

3.6.1 Modulo ADAM4060. La operación remota de la cortina es posible debido a la incorporación de un modulo ADAM4060 con estrada de comunicación serie en formato RS485 y cuatro canales de salida de relevador. En el diagrama A7 se muestra la configuración de patas de este módulo. Las cuatro salidas de relevador son utilizadas para manejar los cuatro relevadores de potencia intermedia R1-R4 (Ver diagrama A6). Estos relevadores son activados en combinación de la siguiente forma: R1 y R3 se activan para abrir la cortina, R2 y R3 se activan para cerrar la cortina, R4 se activa para encender las luces de cúpula. Como se ha mencionado anteriormente, el modulo ADAM recibe instrucciones vía puerto serie en formato RS485, los parámetros de la transmisión son los siguientes: 4800bps, 8 bits de datos, un bit de stop, no paridad. La conexión entre el puerto RS485 de la tarjeta de control y el del modulo ADAM se realiza a través de los trolleys 15 y 20, esto debido a que ambos circuitos de localizan en diferentes registros sobre la cúpula, ver sección 3.8 para mayor detalle. El formato de instrucciones para el modulo ADAM se muestra en la información del apéndice A7. Las instrucciones que se utilizan en esta aplicación se muestran en la tabla 6, estas son enviadas por el circuito de control.

Tabla 6. Instrucciones para el módulo ADAM4060 de control de cortina. Instrucción Acción

#040005 Cerrar cortina #040006 Abrir Cortina #041301 Enciende luces #041300 Apaga luces #040000 Alto

Page 19: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

16

3.7 Dispositivos de red inalámbrica LinkSys . Los mecanismos de cortina y gajos son sistemas móviles ya que están sobre una cúpula giratoria, la energía eléctrica es aplicada a través de contactos deslizantes “Trolleys” y la comunicación ethernet con la tarjeta de control se enlaza de manera inalámbrica, para ello se utilizan un par de dispositivos comerciales Linksys. Uno de ellos es un Access Point y es el que se conecta en la red cero en el piso de telescopio mediante un cable de red, el segundo es un Router inalámbrico que se instaló sobre la cúpula del telescopio. Los dispositivos son configurables mediante una página web, las direcciones de IP de cada uno son fijas y se muestran en la tabla 7.

Tabla 7. Direcciones de IP de los dispositivos LinkSys.

Router 192.168.0.250 Access Point 192.168.0.251

3.8 Instalación del sistema. Esta sección muestra de manera gráfica la instalación de las componentes del

sistema en el edificio del telescopio de 2.1m, la información es de utilidad para localizar de manera rápida alguna parte del sistema al momento de realizar alguna labor de mantenimiento, especialmente para el personal técnico que no estuvo involucrado en el proyecto.

3.8.1 Access Point. La figura 12 muestra el lugar donde se instaló el dispositivo de red inalámbrica Link Sys del tipo “Access Point”, éste se conecta mediante un cable al Switch de red 0 ubicado en interior del gabinete de consola. Para su fijación en la pared de madera se construyeron dos piezas de aluminio especiales que se ajustan al cuerpo del dispositivo.

3.8.2 Gabinete del circuito de control. La figura 13 muestra el interior del gabinete que aloja el circuito de control del sistema, así como el circuito de optoacopladores, relevadores y fuentes de alimentación. Los interruptores de las fuentes de alimentación se encuentran también en este gabinete, si se desea apagar o re inicializar el modulo de control hay que mover este par de interruptores. En la parte superior de este gabinete se sujetó el dispositivo de red inalámbrica Link Sys del tipo “Router”, éste cuenta con cuatro puertos de red disponibles y se enlaza a la Red 0 a través del Access Point (Ver Figura 12). En el costado derecho del gabinete se encuentran dos interruptores que se utilizan para operar los ganchos de amarre de manera manual. La alimentación eléctrica se aplica a éste gabinete a través de los Trolleys de cúpula. La figura 14 muestra un acercamiento del circuito de control, como se puede ver consta de una tarjeta impresa sobre la cual se montó en controlador Rabbit 3000 con puerto ethernet.

Page 20: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

17

Figura 12. Ubicación del Access Point Lynksys.

3.8.3 Gabinete de contactores de cortina. La figura 15 muestra la ubicación del gabinete de contactores de cortina, en el costado derecho de su parte exterior se ubica la caja de “Brakers” principales con su palanca de interrupción manual. En el interior del gabinete se encuentran los contactores y el modulo digital de activación ADAM4060. La figura 16 muestra un acercamiento de este módulo, como se observa éste cuenta con su interruptor de encendido, si se desea re inicializar este modulo se debe mover este interruptor. La alimentación a este gabinete también se aplica a través de los Trolleys de cúpula. La conexión RS485 entre el circuito de control y el ADAM4060 se hace también a través de los Trolleys de cúpula ya que sus respectivos gabinetes se encuentran relativamente alejados sobre la cúpula.

Page 21: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

18

Ruter inalámbrico

Módulo de control

OptoacopladoresRelevadores

Interruptores

Fuente

Figura 13. Ubicación del Gabinete del circuito de control y contactores de ganchos.

Page 22: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

19

Figura 14. Circuito de control.

Page 23: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

20

Figura 15. Gabinete de contactores de cortina.

Figura 16. Modulo ADAM4060 y contactores de potencia intermedia.

Page 24: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

21

4 Interfaz de usuario El sistema es operado desde la ventana de control (Ver Fig. 17) disponible en la

computadora del asistente, esta ventana gráfica fue escrita en TCL TK por el equipo de instrumentación, desde esta ventana es posible controlar algunos otros periféricos como las tapas del telescopio y la inicialización del sistema de cúpula.

Para el habilitar el manejo de la cortina, se incorporó al código de esta interfaz las instrucciones de alto y cierre de la cortina así como las de encendido y apagado de la luces de cúpula mostradas en la tabla 4 (Ver sección 3.2.1). La instrucción de apertura de cortina se encuentra deshabilitada actualmente, por razones de seguridad, ya que no se puede asegurar el correcto amarre de los ganchos de los gajos. Para abrir la cortina es necesario que el asistente suba al piso del telescopio a abrirla manualmente y verificar que los gajos estén correctamente enganchados.

Opciones del sistema de gajos y cortina

Figura 17. Interfaz de usuario.

Page 25: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

22

Para el armado de gajos se encuentran tres opciones habilitadas en la pestaña etiquetada como “Arma Gajo”, estas opciones envían al sistema las instrucciones de secuencia mostradas en la tabla 3 (Ver sección 3.2.1).

Opciones de armado de gajos

Figura 18. Opciones en la pestaña de armado de gajos.

Page 26: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

23

5 En caso de fallas Actualmente el sistema esta en su primer fase de operación en la cual se están detectando las fallas que se pueden presentar y la forma de diagnosticarlas. En esta sección se muestra lo que se ha presentado hasta el momento.

5.1 La cortina no abre. Si la cortina no se abre ni en modo manual es posible que el sistema se haya perdido. Para solucionar esto hay que dar un reset al modulo ADAM4060 esto se hace apagando y encendiendo su fuente que se encuentra en el interior del gabinete de contactores de cortina (Ver figura 15). Apagar y prender el interruptor mostrado en la figura 16.

5.2 No hay comunicación. Si al mandar encender y apagar las luces de cúpula el sistema no responde, es posible que exista un error de comunicación, para detectar esto hay que hacer un “ping” desde una ventana de comandos de Linux al access point, al router inalambrico y al controlador, las direcciones de IP de estos dispositivos se muestran en las tablas 5 y 7. Para solucionarlo hay que dar un reset a los dispositivos de red inalámbrica y al controlador del sistema (Ver figuras 12 y 13). Los dipositivos de red inalámbrica simplemente de desconectan y conectan, para dar un reset al controlador hay que apagar y encender el interruptor de la fuente de 12V en el interior del gabinete del circuito de control ( Ver figura 13).

Page 27: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

24

APENDICE A. DIAGRAMAS ELECTRÓNICOS.

A.1 Circuito de control.

Page 28: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

25

A.2 Circuito de control, mapa de componentes.

Page 29: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

26

A.3 Circuito de optoacopladores.

Page 30: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

27

A.4 Circuito de optoacopladores, mapa de componentes.

Page 31: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

28

A.5 Contactores de ganchos.

Contactores de actuadores de enganchado de gajos.

120V AC 120V AC

12V DC 24V DC

20A

110V ACN

F

6 9R1

6 9R2

6 9R3

6 9R4

5 8R3

5 8R4

5 8R1

5 8R2

BOBINA DETRABAJO

BOBINA DETRABAJO

BOBINA DEARRANQUE

BOBINA DEARRANQUE

M1

M2

M1

M2MOTOR

MOTOR

MOTOR

MOTOR

+12V +24V

R1

1

7

24V

R2D2

SW LIMITE 2CN0-15 CN0-16

CN3-2DEL CIRCUITO DE

OPTOS

R2

1

7

24V

R1D1

SW LIMITE 1CN0-13 CN0-14

CN3-1DEL CIRCUITO DE

OPTOS

R4

1

7

24V

R3D3

SW LIMITE 3CN0-17 CN0-18

CN3-3DEL CIRCUITO DE

OPTOS

R3

1

7

24V

R4D4

SW LIMITE 4CN0-19 CN0-20

CN3-4DEL CIRCUITO DE

OPTOS

S7 S8

S9 S10

COLGAR G2

COLGAR G1 SOLTAR G1

SOLTAR G2

CN4-17

CN4-15CN4-16

CN4-4CN4-3

CN4-14

CN4-13

CN4-12 CN4-20

CN4-11

CN4-6 CN4-5 CN4-8

CN4-10

CN4-14

CN4-9

CN4-18

CN4-2

CN4-1

CN4-3

CN4-4

Page 32: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

29

A.6 Contactores de cortina.

R3

R4

R1

R2

2 8

2 8

7 4

7 4

9 6

9 6

9 3

9 3

SW Luz Cúpula

AC

Contactor que Abre

Contactor que Cierra

Abre Actual(Cable 17)

CierraActual(Cable 16)

AC/DC

+24V

R3

R3

R3

R2

R1

+24V

R1

R2

R3

R4

RL1

RL2

RL3

RL4

AB

AB

AB

AB

RL1

RL2

RL3

RL4

TD+

TD-

+Vcc

GND

+24V

RS485

ADAM4060

Trolley 20

Trolley 15

Relevadores KUP-14D15-24

2 31

7 8 9

654

AB

+24V/DC

Rn

10A, 1/3HP,120V

Page 33: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

30

A.7 Modulo ADAM4060, esquemático.

Page 34: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

31

A.8 Modulo ADAM4060, formato de instrucciones.

Page 35: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

32

APENDICE B. LISTADO DEL PROGRAMA DE CONTROL. /********************************************************************** * Programa de control de gajos y cortina del telescopio de 2.1m * Hecho por Francisco Murillo, octubre de 2006 * Ultima modificacion 29 de mayo de 2007. **********************************************************************/ /*Este programa usa TxE (PG6), RxE (PG7) y PF5 para * habilitar el transmit en la cominicacion RS485. */ #class auto #define TCPCONFIG 1 #use "dcrtcp.lib" #define PORT 3333 #define PORTA_AUX_IO // required to enable auxiliary I/O bus #define EINBUFSIZE 31 // longitud del buffer de entrada del puerto E #define EOUTBUFSIZE 31 // Longitud del buffer de salida #define TxEmpty 0x08 // Bandera que indica que no hay datos por transmitir en el puerto E. #define FAST_INTERRUPT 0 // Set equal to 1 to use fast interrupt in I&D space // Interruptores de sensado: #define SW_CUPULA_CERRADA 0x20 #define SW_CUPULA_ABIERTA 0x10 #define SW_GAJO1_ABAJO 0x08 #define SW_GAJO2_ABAJO 0x04 #define SW_GANCHO1_DENTRO 0x02 #define SW_GANCHO2_DENTRO 0x01 // Seniales a actuadores de ganchos: #define GANCHO1_DENTRO 0xFB #define GANCHO1_FUERA 0xF7 #define GANCHO2_DENTRO 0xFD #define GANCHO2_FUERA 0xFE #define GANCHO1_DENTRO 0xFB #define GANCHO1_FUERA 0xF7 #define PARO_GANCHOS 0xFF // Mandos al ADAM de control de cortina #define ABRE_CORTINA "#040006" #define CIERRA_CORTINA "#040005" #define ALTO_CORTINA "#040000" #define LUCES_ON "#041301" #define LUCES_OFF "#041300" // Time Outs #define TMEOUT_CRTNA 300 // 300 segundos (5 minutos) #define TMEOUT_GNCHO 5 // 5 segundos /******************************** * Fin de seccion de configuracion * ********************************/

Page 36: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

33

// Variables globales: int cierra,cerrando,alto,abre,abriendo,gancho1_dentro,metiendo_gancho1; int gancho1_fuera,sacando_gancho1,gancho2_dentro,metiendo_gancho2; int gancho2_fuera,sacando_gancho2; int dos_abajo,uno_arriba,dos_arriba; tcp_Socket socket; void limpia_banderas_ganchos(); void limapia_banderas_secuencias(); nodebug void ser485Tx( void ) // Rutina en ensamblador para transmitir un caracter por { // el puerto RS485 #asm push ip ;save off IP state ipset 1 ;set interrupt priority to level 1 ld a,(PFDRShadow) ;get copy of shadow reg or 0x20 ;set bit 5 high ld (PFDRShadow),a ;update shadow reg ioi ld (PFDR),a ;set PF5 high pop ip ;restore IP to the previous state ret #endasm } nodebug void ser485Rx( void ) // Rutina en ensamblador para recibir un caracter por { // el puerto RS485 #asm push ip ;save off IP state ipset 1 ;set interrupt priority to level 1 ld a,(PFDRShadow) ;get copy of shadow reg and 0xDF ;clear bit 5 ld (PFDRShadow),a ;update shadow reg ioi ld (PFDR),a ;set PF5 low pop ip ;restore IP to the previous state ret #endasm } void SecDelay(unsigned int delay) // Introduce un retardo en segundos { auto unsigned long done_time; done_time = read_rtc() + delay; while( (long) (read_rtc() - done_time) < 0 ); }

Page 37: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

34

void LeeRespuestaAdam(char *buffer2) { unsigned long StartSecond, FinalSecond; auto int cIn; char CR; char buffer[20]; cIn='x'; // inicializa variables locales CR = 0x0D; StartSecond = read_rtc(); // Inicializa temporizador FinalSecond = StartSecond; strcpy(buffer2,">"); while(cIn != CR && (read_rtc()-StartSecond) < 3) { // espera 10 segundos por la respuesta while ((cIn = serEgetc()) == -1 && ( (read_rtc()-StartSecond) < 10) ); //Espera un caracter if (cIn != -1) { sprintf(buffer,"%c",cIn); strcat(buffer2,buffer); } } } void directo_adam(char *buffer2) { char *mando, CR, buffer[30]; CR = 0x0D; ser485Tx(); sprintf(buffer,"%s\r",buffer2); // habilita la transmision serEputs(buffer); // Envia mando al puerto serie E printf("mande serie: %s",buffer); while(RdPortI(SESR) && TxEmpty); // Espera a que se transmita el mando ser485Rx(); // deshabilita transmision } void estatus(char *buffer2) { int k; k=RdPortE(0x2000); // Lee el puerto externo (interruptores de sensado) sprintf(buffer2,":%03d;",k); } void al_puerto(char *buffer2) { char *numero, buffer[30]; int dec; strtok(buffer2,"("); numero=strtok(NULL,")"); WrPortE(0x00,NULL,dec); // Escribe en el puerto externo a actudaores de ganchos }

Page 38: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

35

void procesa_mando(char *buffer2) // Analiza el mensaje recibido { if(strstr(buffer2,"ESTATUS")) { estatus(buffer2); } if(strstr(buffer2,"CERRAR")) { cierra=1; } if(strstr(buffer2,"ABRIR")) { abre=1; } if(strstr(buffer2,"ALTO")) { alto=1; } if(strstr(buffer2,"AL_PUERTO")) { al_puerto(buffer2); } if(strstr(buffer2,"GANCHO1_DENTRO")) { gancho1_dentro=1; } if(strstr(buffer2,"GANCHO1_FUERA")) { gancho1_fuera=1; } if(strstr(buffer2,"GANCHO2_DENTRO")) { gancho2_dentro=1; } if(strstr(buffer2,"GANCHO2_FUERA")) { gancho2_fuera=1; } if(strstr(buffer2,"PARO_GANCHOS")) { limapia_banderas_secuencias(); limpia_banderas_ganchos(); WrPortE(0x00,NULL,PARO_GANCHOS); } if(strstr(buffer2,"LUCES_ON")) { directo_adam(LUCES_ON); } if(strstr(buffer2,"LUCES_OFF")) { directo_adam(LUCES_OFF); } if(strstr(buffer2,"DOS_ABAJO")) { dos_abajo=1; } if(strstr(buffer2,"DOS_ARRIBA")) { dos_arriba=1; } if(strstr(buffer2,"UNO_ARRIBA")) { uno_arriba=1; } }

Page 39: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

36

void limpia_banderas_cortina() { cierra=0; cerrando=0; abre=0; abriendo=0; alto=0; } void limpia_banderas_ganchos() { gancho1_dentro=0; metiendo_gancho1=0; gancho1_fuera=0; sacando_gancho1=0; gancho2_dentro=0; metiendo_gancho2=0; gancho2_fuera=0; sacando_gancho2=0; } void limapia_banderas_secuencias() { dos_abajo=0; uno_arriba=0; dos_arriba=0; } void inicializa() { WrPortI(IB0CR, NULL, 0x28); //Habilita el uso de la senial /WR en PE0 WrPortI(IB1CR, NULL, 0x10); //Habilita el uso de la senial /RD en PE1 WrPortI(PEDDR,NULL,3); // Configura los bits PE0 y PE1 como salida WrPortI(PEFR,&PEFRShadow,7); // Configura los bits PE0 PE1 y PE2 como I/O control signal WrPortE(0x00,NULL,0xFF); //Saca puros unos WrPortI(PFDDR,NULL,32); // Configura el bit PF5 como salida ser485Rx(); //Disable transmitter, initially put in receive mode serEopen(4800); //set baud rate first serEwrFlush(); serErdFlush(); limpia_banderas_cortina(); limpia_banderas_ganchos(); limapia_banderas_secuencias(); }

Page 40: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

37

void main() { int bytes_read,bytes_suma,sw; char buffer[50],buffer2[200]; auto unsigned long timer_cortina,timer_gancho; inicializa(); sock_init(); while(1) { // Ciclo principal del programa costate { //Costate Socket tcp_listen(&socket,PORT,0,0,NULL,0); printf("Waiting for connection...\n"); while(!sock_established(&socket) && sock_bytesready(&socket)==-1) { tcp_tick(NULL); yield; } printf("Connection received...\n"); bytes_suma=0; buffer2[0]=0; do { bytes_read=sock_fastread(&socket,buffer,sizeof(buffer)-1); bytes_suma = bytes_suma + bytes_read; buffer[bytes_read]=0; strcat(buffer2,buffer); if(strchr(buffer2,')')) { // Espera el caracter ‘)’ como fin de mensaje printf("%s\n",buffer2); procesa_mando(buffer2); strcat(buffer2,">"); sock_write(&socket,buffer2,strlen(buffer2)); strcpy(buffer2,""); } yield; }while(tcp_tick(&socket)); waitfor(DelayMs(10)); } // Costate socket costate { // Manejo de secuencias de armado de gajos if(dos_abajo) { sw=RdPortE(0x2000); //Lee switches if(sw & SW_CUPULA_CERRADA) { // si la cortina no esta cerrada if(!cerrando) cierra=1; // Si no esta cerrando } else { if(!(sw & SW_GANCHO1_DENTRO)) { // si gancho1 no esta fuera if(!sacando_gancho1) gancho1_fuera=1; // Si no esta sacando el gancho1 } else { dos_abajo=0; } } } // si dos abajo

Page 41: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

38

if(uno_arriba) { sw=RdPortE(0x2000); //Lee switches if(sw & SW_CUPULA_CERRADA) { // si la cortina no esta cerrada if(!cerrando) cierra=1; // Si no esta cerrando } else { if(sw & SW_GANCHO1_DENTRO) { // si gancho1 no esta dentro if(!metiendo_gancho1) gancho1_dentro=1; // Si no esta metiendo el gancho1 } else { if(!(sw & SW_GANCHO2_DENTRO)) { // si gancho2 no esta fuera if(!sacando_gancho2) gancho2_fuera=1; // Si no esta sacando el gancho2 } else { uno_arriba=0; } } } } // si uno arriba if(dos_arriba) { sw=RdPortE(0x2000); //Lee switches if(sw & SW_CUPULA_CERRADA) { // si la cortina no esta cerrada if(!cerrando) cierra=1; // Si no esta cerrando } else { if(sw & SW_GANCHO1_DENTRO) { // si gancho1 no esta dentro if(!metiendo_gancho1) gancho1_dentro=1; // Si no esta metiendo el gancho1 } else { if(sw & SW_GANCHO2_DENTRO) { // si gancho2 no esta dentro if(!metiendo_gancho2) gancho2_dentro=1; // Si no esta sacando el gancho2 } else { dos_arriba=0; } } } } // si dos arriba waitfor(DelayMs(1000)); // Refresca el costate cada segundo } // manejo de secuencias de armado de gajos costate { // Manejo de eventos if(alto) { limpia_banderas_cortina(); directo_adam(ALTO_CORTINA); // Envia Alto } if(cierra) { directo_adam(ALTO_CORTINA); // Envia Alto SecDelay(2); limpia_banderas_cortina(); directo_adam(CIERRA_CORTINA); // Mando para cerrar cortina timer_cortina = read_rtc(); // Inicia el temporizador cerrando=1; // Inicia proceso de cierre }

Page 42: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

39

if(cerrando) { sw=RdPortE(0x2000); //Lee switches if(!(sw & SW_CUPULA_CERRADA) || ((read_rtc()-timer_cortina) >= TMEOUT_CRTNA)) { directo_adam(ALTO_CORTINA); // Envia Alto cerrando=0; // Termina proceso de cierre } } if(abre) { directo_adam(ALTO_CORTINA); // Envia Alto SecDelay(2); limpia_banderas_cortina(); directo_adam(ABRE_CORTINA); // Mando para abrir cortina timer_cortina = read_rtc(); // Inicia el temporizador abriendo=1; // Inicia proceso de apertura } if(abriendo) { sw=RdPortE(0x2000); //Lee switches if(!(sw & SW_CUPULA_ABIERTA) || ((read_rtc()-timer_cortina) >= TMEOUT_CRTNA)) { directo_adam(ALTO_CORTINA);// Envia Alto abriendo=0; // Termina proceso de apertura } } if(gancho1_dentro) { WrPortE(0x00,NULL,PARO_GANCHOS); SecDelay(1); limpia_banderas_ganchos(); WrPortE(0x00,NULL,GANCHO1_DENTRO); timer_gancho = read_rtc(); // Inicia el temporizador metiendo_gancho1=1; // Inicia proceso } if(metiendo_gancho1) { sw=RdPortE(0x2000); //Lee switches if(!(sw & SW_GANCHO1_DENTRO) ||(read_rtc()-timer_gancho) >= TMEOUT_GNCHO) { WrPortE(0x00,NULL,PARO_GANCHOS); metiendo_gancho1=0; // Termina proceso printf("Gancho1 dentro"); } } if(gancho1_fuera) { WrPortE(0x00,NULL,PARO_GANCHOS); SecDelay(1); limpia_banderas_ganchos(); WrPortE(0x00,NULL,GANCHO1_FUERA); timer_gancho = read_rtc(); // Inicia el temporizador sacando_gancho1=1; // Inicia proceso }

Page 43: SISTEMA ATOMÁTICO PARA EL ARMADO DE …haro.astrossp.unam.mx/doctecnica/gajos210/gajos2m_V12.pdf · En el capitulo 2 se describe brevemente la configuración del sistema mecánico

40

if(sacando_gancho1) { sw=RdPortE(0x2000); //Lee switches if((read_rtc()-timer_gancho) >= TMEOUT_GNCHO) { //POR TIEMPO WrPortE(0x00,NULL,PARO_GANCHOS); sacando_gancho1=0; // Termina proceso printf("Gancho1 fuera"); } } if(gancho2_dentro) { WrPortE(0x00,NULL,PARO_GANCHOS); SecDelay(1); limpia_banderas_ganchos(); WrPortE(0x00,NULL,GANCHO2_DENTRO); timer_gancho = read_rtc(); // Inicia el temporizador metiendo_gancho2=1; // Inicia proceso } if(metiendo_gancho2) { sw=RdPortE(0x2000); //Lee switches if(!(sw & SW_GANCHO2_DENTRO) || (read_rtc()-timer_gancho) >= TMEOUT_GNCHO) { WrPortE(0x00,NULL,PARO_GANCHOS); metiendo_gancho2=0; // Termina proceso printf("Gancho2 dentro"); } } if(gancho2_fuera) { WrPortE(0x00,NULL,PARO_GANCHOS); SecDelay(1); limpia_banderas_ganchos(); WrPortE(0x00,NULL,GANCHO2_FUERA); timer_gancho = read_rtc(); // Inicia el temporizador sacando_gancho2=1; // Inicia proceso } if(sacando_gancho2) { sw=RdPortE(0x2000); //Lee switches if((read_rtc()-timer_gancho) >= TMEOUT_GNCHO) { WrPortE(0x00,NULL,PARO_GANCHOS); sacando_gancho2=0; // Termina proceso printf("Gancho2 fuera"); } } waitfor(DelayMs(1000)); // Refresca el costate de manejo de eventos cada segundo } // Manejo de eventos } //ciclo principal del programa principal } //Main