INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERIA
MECANICA Y ELECTRICA
“PROGRAMACION DE UN MICROCONTROLADOR Y EL
ROBOT MITSUBISHI RV-M1 PARA UNA ESTACION
FLEXIBLE DE MANUFACTURA DEL CIM – 2000”
TESIS
QUE PARA OBTENER EL TÍTULO DE:
INGENIERO EN COMUNICACIONES Y ELECTRONICA
P R E S E N T A:
ADAN JUAREZ JIMENEZ
ASESORES:
M. EN C. FRANCISCO J. VILLANUEVA MAGAÑA
ING. ERIKA JUDITH RAMIREZ VALDEZ
M. EN C. MARTIN ENRIQUEZ SOBERANES
Índice
Índice--- I Objetivo general--- V Objetivos particulares--- V Justificación--- VI
Resumen--- VII Planteamiento del problema--- IX Solución propuesta--- IX
Introducción--- X Contenido de la tesis--- XVII CAPITULO I
Comunicación del microcontrolador y el robot Mitsubishi me-
diante la interfaz RS-232C--- 1
1.1 Interfaz de comunicación RS-232C--- 2
1.2 Identificación de la interfaz RS-232C en el robot y en el microcontrolador pa- ra su comunicación --- 3
1.3 Elaboración del programa de transmisión del microcontrolador utilizando la interfaz RS-232C--- 5
1.3.1 ¿Cómo conseguir que el programa de transmisión proporcione la configuración de comunicación del robot?--- 6
1.3.2 El 1er comando del robot en la transmisión del microcontrolador--- 11
1.3.3 Diagrama de flujo para el programa de transmisión robot1.asm--- 13
1.4 Elaboración del programa de comunicación del microcontrolador--- 14
1.4.1 Diagrama de flujo para el programa de comunicación robot3.asm--- 16
1.5 Elaboración del cable del 68HC11 al robot (cable de interfaz)--- 19
CAPITULO II Configuración del robot Mitsubishi RV-M1--- 25
2.1 Antecedentes históricos del robot--- 26
2.2 Descripción del robot Mitsubishi RV-M1--- 26
CAPITULO III
Formato para el programa de comunicación, que permite traba- jar con los comandos del robot--- 34 3.1 ¿Por qué buscar un formato para el programa de comunicación robot3.asm?-- 35 3.2 Estudio del programa en Qbasic “mes11.bas” tomado como guía para bus-
car en el programa “robot3.asm” el formato de una posición (que mueve al robot en una posición) --- 35 3.2.1 Características para el traslado del programa mes11.bas al progra-
ma robot3.asm del microcontrolador para encontrar el formato de una posición--- 39 3.2.1.1 Cumplimiento de la característica de ubicación para el tras-
lado del programa mes11.bas al programa robot3.asm--- 41 3.2.1.2 Cumplimiento de la característica del lenguaje y datos en
ASCII para el traslado del programa mes11.bas al progra- ma robot3.asm--- 43 3.2.1.3 Cumplimiento de la característica del ENTER para el tras-
lado del programa mes11.bas al programa robot3.asm--- 44 3.2.2 Ejecución y encuentro del formato de una posición en el programa
de comunicación--- 46 3.3 Buscando el formato para más de una posición--- 51
3.3.1 Ejecución del programa de comunicación con el formato de 3 posi- ciones--- 52 3.3.2 Realización y prueba del programa de posiciones y de ejecución pro-
venientes de la división del formato de 3 posiciones--- 52 3.4 Formato para el programa de comunicación, que permite trabajar con los
comandos del robot--- 61
CAPITULO IV
Expansión de memoria para el microcontrolador--- 62 4.1 Diseño de la unidad de memoria RAM a 16 Kb--- 63
4.1.4 Unidad de memoria RAM a 16 Kb--- 72
4.1.5 Para cargar y probar los programas en la unidad de memoria RAM 72 4.2 Diseño dela unidad de memoria ROM a 32 Kb--- 73
4.2.1 Memoria EPROM 27C256B--- 73
4.2.2 Unidad de memoria ROM a 32 Kb--- 74
CAPITULO V Programa de rutinas de posicionamiento de materiales--- 75
5.1 Estación Flexible de Manufactura FMS-2200 en el CIM-2000 de la ESIME Zacatenco--- 76
5.2 La Estación de control CIM-2000 --- 78
5.3 El Módulo de visión VI-2000 y su Equipo de visión--- 79
5.4 Proceso de fabricación en la Estación Flexible de Manufactura FMS-2200--- 80
5.5 El sistema AGV (Vehículo guiado automáticamente)--- 82
5.5.1 El control manual del sistema AGV--- 84
5.5.2 Puesta en funcionamiento del sistema AGV--- 85
5.5.3 Sensores en el sistema AGV--- 86
5.6 Elaboración del programa de rutinas para el robot Mitsubishi--- 86
5.6.1 Programación del robot transmitida por el programa en Qbasic tomado como base para desplazarlo sobre el monorriel--- 87
5.6.2 Probando el funcionamiento de los comandos relacionados con la apertura y cierre del gripper--- 89
5.6.3 Diagrama de flujo de la programación del robot para que realice las rutinas, el de cada rutina y las posiciones que utilizan--- 90
5.6.4 Programa movemaster (programa con los comandos del robot) que se traslada al programa de comunicación para formar el programa de rutinas --- 98
Análisis de costos, Conclusiones, Bibliografía, Glosario de términos--- 103
Análisis de costos --- 104
Conclusiones--- 107
Bibliografía --- 116
Glosario de términos--- 117
Anexos--- 122
Anexo B--- 125
Anexo C--- 126
Anexo D--- 127
Anexo E--- 131
Anexo F--- 132
Anexo G --- 135
Anexo H --- 144
Objetivos Particulares:
1. Comunicar el microcontrolador y el robot Mitsubishi RV-M1 mediante la interfaz RS-232C
2. Programación del robot Mitsubishi RV-M1 con un microcontrolador
3. Expansión de memoria del microcontrolador con el diseño de dos unidades de memoria independientes: una “unidad de memoria RAM” para continuar el desarrollo del programa en las etapas donde es insuficiente la memoria del microcontrolador y una “unidad de memoria ROM” para que el programa una vez definido sea almacenado de manera permanente
Objetivo General:
Justificación
En la Estación Flexible de Manufactura del CIM-2000 que posee la ESIME Zacatenco, el proceso de fabricación necesita que trabajen el robot Mitsubishi y el Equipo de visión porque el robot debe tomar una barra cilíndrica de la banda transportadora e introducirla al torno CNC para que la manufacture y después debe extraerla del torno como pieza fabricada y llevarla al Equipo de visión donde se realiza una prueba de control de calidad para comprobar que la pieza ha sido bien fabricada, después el robot debe tomarla y colocarla en otro lugar que distinga si pasó o no la prueba, sin embargo la PC de la estación a pesar de que puede trabajar con el equipo de visión y con el robot, sólo puede atender la aplicación de uno de ellos, por lo que con ella no pueden trabajar los dos equipos en el proceso de fabricación (al menos no de manera que de continuidad al proceso porque para atender a uno hay que salirse de la aplicación del otro). Porque se tiene esta necesidad en la estación es que se realiza la tesis para darle solución, y se hace consiguiendo que un microcontrolador trabaje con el robot, para ser utilizado como apoyo a la PC pues dejaría que atienda el equipo de visión y así los dos equipos pueden trabajar en el proceso de fabricación.Para esto se elaboran elementos de software y de hardware que han de acompañar al microcontrolador.
Resumen
En la Estación Flexible de Manufactura del CIM-2000 de la ESIME Zacatenco, aunque la PC puede trabajar con el equipo de visión y el robot Mitsubishi, sólo puede atender a uno de ellos por lo que no pueden trabajar los dos en el proceso de fabricación como lo requiere comúnmente la estación.
El problema se puede resolver si otro dispositivo apoya a la PC en el trabajo con uno de estos equipos, y al que se pueda recurrir cuando se requiera.
Esta solución le representa a la estación “un recurso flexible”, porque se recurre a él cuando se requiere y porque genera la posibilidad de utilizar uno u otro dispositivo (la PC ó el otro dispositivo) para trabajar con uno de los equipos.
En este trabajo se elabora lo que acompaña a un microcontrolador para demostrar que unido a ello puede trabajar con el robot similar a como se hace con la PC (con la capacidad de seguir programando) y así pueda quedar para ser utilizado como “un recurso flexible” que resuelve la necesidad en la estación.
Esto es posible porque al trabajar con el robot se puede utilizar para apoyar a la PC dejando que atienda el equipo de visión o incluso puede suplirla al escogerlo a él para trabajar únicamente el robot.
Aunque se recurre a él, cuando se requiere, también puede quedar para trabajar en la estación (con una aplicación programada) de manera permanente.
No se expone su trabajo con la PC por lo que con su obtención, en la tesis no se pretende exponer el trabajo del recurso y el robot con toda la estación funcionando ni mucho menos con todo el sistema CIM porque la pura obtención del recurso lo hace flexible y porque cada tema es demasiado extenso para poderlo contener en un trabajo de esta magnitud e incluso se hizo un esfuerzo por que este aspecto no opacara o Es “un recurso flexible” a la estación que se hace con “un microcontrolador”
evitara demostrar su trabajo con el robot de manera integra (cubrir lo más completo posible la participación del robot en el proceso de fabricación), esfuerzo que consistió en simular con un retardo el funcionamiento de los demás equipos de la estación.
Para su demostración, con él se programa al robot en 3 rutinas para que lleve a cabo el
posicionamiento de la barra en los equipos de la estación, dejando un retardo de 10
seg de separación entre ellas, que simulan las operaciones de manufactura y de
control de calidad.
Planteamiento del problema:
Como el microcontrolador es un equipo externo, para que se utilice en la programación del robot es necesario conseguir que se comunique con él, todo esto implica problemas de software o el programa y el hardware o la interfaz de comunicación, que hay que resolver.
Solución propuesta:
Introducción
La producción industrial está sufriendo actualmente una transformación rápida y profunda. En los mercados industriales internacionales se observan hoy en día una serie de tendencias de desarrollo que se manifiestan en unos ciclos de vida y suministros de producto especialmente cortos, así como en un aumento de su diversidad y de los requisitos relativos a la calidad. Con el fin de poder subsistir en esta situación de competencia internacional cada vez más rigurosa, las empresas se ven obligadas a adoptar medidas encaminadas al incremento de la productividad y a imprimir flexibilidad a sus ciclos de producción, a fin de mejorar su rentabilidad y, por lo tanto, sus posibilidades en el mercado. Esto ha provocado que en los últimos años se busquen nuevas formas de producción que cubran las exigencias actuales, tal es el caso del surgimiento del concepto CIM que se describe a continuación.
Manufactura integrada por computadora (CIM)
El término CIM, representa el acróstico de “Computer Integrated Manufacturing” (Manufactura Integrada por Computadora) es un concepto que reconoce que los diferentes pasos en el desarrollo de productos manufacturados están interrelacionados y pueden ser ajustados de manera más eficiente y efectiva con el uso de computadoras. Toda acción envuelta en las actividades de estos pasos usa datos, ya sean textuales, gráficos o numéricos. La computadora, hoy en día la herramienta más importante en la manipulación de datos, ofrece la real posibilidad de integrar las ahora fragmentadas operaciones de manufactura en un sistema operativo único.
Ha sido diseñado y construido de forma tal, que la implementación del concepto CIM El Sistema de Entrenamiento CIM-2000 Mechatronics
El Sistema de Entrenamiento CIM-2000 Mechatronics es un sistema de entrenamiento modular, que suministra metodología, técnicas e instalaciones para entrenar y ejercitar la implementación del concepto CIM.
sea tan similar cuanto sea posible a su realización en una fábrica de tamaño real.
La modularización del sistema asegura un entrenamiento fácil y agradable. Cada estación puede ser operada de forma independiente ó en conjunto con otras estaciones, hasta llegar a un sistema totalmente integrado.[1]
Por lo que cada Módulo ó Estación dispone para su control y operación de una computadora personal (PC) y algunas tienen también un PLC conectado a la red de comunicación que comparten.
Descripción del CIM-2000 de la ESIME Zacatenco
La ESIME Zacatenco del Instituto Politécnico Nacional cuenta con un sistema CIM-2000, éste se encuentra en el laboratorio de robótica industrial (en la extensión de laboratorios pesados dos) y se muestra por medio de un esquema en la figura 1 donde se puede ver la disposición física de sus estaciones.
[image:14.612.133.482.348.664.2]Este sistema está compuesto por un número menor de estaciones o módulos que el original, pero son suficientes para la implementación del concepto CIM. Los módulos y sistemas que lo forman se citan a continuación:
1. Módulo ó Estación de Control CIM -2000 2. Módulo ó Estación de Almacén ST -2000 3. Módulo ó Estación Neumática PN-2800
4. Módulo ó Estación de Maquinado FMS-2200 formado por un torno CNC, un robot y el sistema AGV
5. Módulo ó Estación de Visión VI-2000 formado por un equipo de visión y una Computadora Personal
6. Un sistema de transporte con una banda transportadora de bucle cerrado, rodeada por las estaciones.
7. Un sistema de sensores y de identificación situados en los puertos 8. Un sistema o red de comunicación de datos entre las estaciones
De las estaciones que forman al CIM-2000, la Estación de Visión VI-2000 y la Estación de Maquinado 2200 forman a su vez la Estación Flexible de Manufactura FMS-2200, en la cual se desarrolla este trabajo por lo que se detalla un poco más, y como se puede ver en la figura 1, se ha encerrado en óvalo para resaltarla, así como las estaciones que la forman. Aunque el robot Mitsubishi RV-M1 se muestra en la Estación de Maquinado y la PC se encuentra en la Estación de Visión, trabajan para las dos estaciones y mencionar su pertenencia a ellas es referirla también para la Estación Flexible de Manufactura FMS-2200.
Funciones dentro de un CIM-2000
El sistema manipula tres diferentes tipos de materiales los cuales se listan enseguida: 1. Base rectangular de acrílico de 80 x 50 x 20 mm
En la figura 2 se muestra una de las barras.
Figura 2 Barra cilíndrica de aluminio de 20mm de diámetro y 60mm de longitud
La Estación Neumática PN-2800 es la estación que alimenta de material a todo el sistema.
La Estación de Almacén ST-2000 almacena piezas en proceso, productos terminados y material fuera de especificaciones.
Las dos estaciones tienen pequeños robots que manipulan pallets (ver fig. 3) para cargar y descargar material desde y hacia la banda transportadora.
Figura 3 Pallet
Cuando las estaciones tienen que descargar, los robots depositan el material en el pallet y éste lo cargan en un vagón (ver fig. 4), que se encuentra encima de la banda transportadora. La carga de material es en orden inverso.
Figura 4 Vagón
Figura 5 Banda transportadora llevando el vagón con el pallet y barra cilíndrica
Hay sitios del paso de la banda frente a cada estación llamados puertos (seguir con el apoyo de la figura 1), donde el vagón es identificado para determinar si lleva el pallet apropiado para la estación, si es así queda detenido en el puerto cuando menos el tiempo de carga /descarga
La Estación Flexible de Manufactura FMS-2200 sólo carga/descarga material de barras cilíndricas del pallet montado al vagón, por medio del robot Mitsubishi. El robot se puede desplazar dentro de la estación en el monorriel del sistema AGV, así puede trasladar el material entre la Estación de maquinado y la Estación de visión.
La Estación de control CIM-2000 contiene el software que opera y controla todo el sistema (en la forma integrada) a través de la red de comunicación que conecta con todas las estaciones.
Proceso de fabricación CIM- 2000
la estación, el robot Mitsubishi bajo el control de la PC comienza a participar en el proceso de fabricación para el material dentro de la estación de la forma siguiente: Toma del puerto la barra cilíndrica y la introduce al torno CNC donde es maquinada, al terminar esta operación la extrae del torno como pieza fabricada y la lleva a la Estación de visión para la prueba de control de calidad, pase o no la prueba al terminar ésta, el robot toma la pieza y la regresa a la banda, donde quedará disponible para que la Estación de control la lleve por medio de la banda a la Estación de almacén para ser almacenada como producto terminado o como material fuera de especificaciones según haya pasado o no, la prueba de control de calidad.
Equipos en que se concentra la mayor parte de este trabajo
El robot Mitsubishi al formar parte del CIM ha sido programado hasta ahora por medio de la computadora de la Estación de visión, es un manipulador de 5 grados de libertad y es el que se programa en esta tesis por medio de un microcontrolador, para la participación que tiene en el proceso de fabricación descrito anteriormente, el robot se puede ver en la figura 6
Figura 6 Robot Mitsubishi RV-M1
Figura 7 Teaching box del robot Mitsubishi RV-M1
Tiene también una Unidad de Control (drive unit) que le proporciona alimentación eléctrica y señalización para su funcionamiento. Esta unidad de control se muestra en la figura 8
Figura 8 Unidad de Control del robot Mitsubishi RV-M1
El microcontrolador que se utiliza para programar al robot Mitsubishi en lugar de la PC es el 68HC11.
Estos últimos equipos mostrados y algunos otros de la estación participan en este trabajo pero de acuerdo a la solución propuesta la mayor parte se concentra en el microcontrolador, la unidad de control del robot y la PC.
En la figura 9 se muestra la tarjeta del microcontrolador y el cable con él que se conecta a la PC para elaborar y probar el programa.
Contenido de la Tesis
Para su mejor comprensión este trabajo está dividido en 5 capítulos los cuales se describen a continuación:
Capitulo I : Este capitulo contiene aspectos relacionados con la interfaz utilizada (la interfaz serie RS-232C) y se Inicia dando una breve introducción de ella, así como su identificación en el robot y en el microcontrolador para comunicarlos, posteriormente se describe la elaboración de un programa de transmisión y de comunicación que utilizan la interfaz en el microcontrolador. El capitulo se finaliza con la elaboración de un cable entre el microcontrolador y el robot (cable de interfaz).
Capitulo II: En este capitulo se exponen los antecedentes históricos del robot, luego se presenta la descripción del robot Mitsubishi RV-M1 y su configuración.
Capitulo III: Este capitulo versa sobre la búsqueda de un formato para el programa de comunicación (elaborado en el capitulo I), se inicia explicando por qué se busca tal formato, luego se expone el estudio de un programa en Qbasic para mover al robot en una posición, posteriormente se continúa con el traslado de este programa como formato al interior del programa de comunicación y la modificación que va teniendo una vez dentro de éste hasta conseguir que el programa de comunicación mueva al robot en una posición, luego se define el formato de una posición. Después se explica la búsqueda del formato para más de una posición, y se define el formato buscado.
Capitulo IV: En este capitulo se presenta la expansión de memoria del microcontrolador con el diseño de dos unidades independientes: una unidad de memoria RAM a 16 Kb y una unidad de memoria ROM a 32 Kb.
Estación Flexible de Manufactura FMS-2200 pues es la que contiene el robot que se programa. El capitulo se inicia exponiendo la disposición de los equipos y el proceso de fabricación en la Estación. Luego se describe el sistema AGV, se muestra la programación del robot que transmite el programa Qbasic tomado como base para desplazarlo en el monorriel, en seguida se explica el funcionamiento de los comandos relacionados con el gripper, se muestra el diagrama de flujo del programa de rutinas, el de cada rutina y las posiciones que utilizan, después se expone una tabla que muestra el programa movemaster (programa con comandos del robot) que se traslada al programa de comunicación para formar al programa de rutinas.
CAPITULO I. Comunicación del microcontrolador y el robot Mitsubishi mediante la interfaz RS-232C
1.1 Interfaz de comunicación RS-232C
La transferencia de información entre dos sistemas digitales, por ejemplo, un microcomputador y un terminal, periférico u otro microcomputador, se realiza generalmente carácter a carácter utilizando códigos binarios (ASCII, EBCDIC, BAUDOT,...). Otras veces la información que se transfiere no corresponde a ninguna codificación de caracteres numéricos ó alfanuméricos sino que es puramente binaria, por ejemplo, cuando se efectúan cargas de programas objeto sobre la memoria del ordenador.
De una forma o de otra la información se transmite en unidades de información denominadas palabras, que suelen ser de 5 a 8 bits. Existen dos formas de realizar la transmisión de estas palabras:
-Método paralelo: Transmitiendo simultáneamente, por líneas separadas, todos los bits de la palabra, junto con una señal de reloj que indica el momento en que está presente una palabra de información en las líneas de datos.
-Método serie: Transmitiendo en forma secuencial en el tiempo todos los bits de la palabra, uno tras otro, por una sola línea de datos.
Eventualmente puede existir una línea adicional de reloj que marca los tiempos de bit. El método paralelo es utilizado para transmisiones a alta velocidad entre dos sistemas; no obstante cuando la distancia entre ambos aumenta, el costo de la línea y el de los amplificadores de transmisión y recepción puede llegar a crecer de forma tal que, desde el punto de vista económico, sea preferible utilizar un sistema serie de comunicaciones. Por otra parte, los sistemas de comunicaciones serie han alcanzado un alto grado de estandarización.
La interfaz serie entre dos elementos, en su forma más simple, puede hacerse sobre un alambre con señal, para llevar todo el flujo de datos en una dirección, sin embargo, existen convenciones, protocolos, para transmisión de datos que incluyen funciones como temporización, control, formato y representación de datos.
corrección de errores (como prueba de paridad), lo que generalmente se resuelve por programación.
El protocolo de la interfaz RS-232C fue normalizado por la ANSI (American National Standards Institute), tiempo antes de pensar en computadoras.
1.2 Identificación de la interfaz RS-232C en el robot y en el microcontrolador para su comunicación
Para conseguir el objetivo general de este trabajo, que en concreto es programar el robot Mitsubishi con el microcontrolador 68HC11, como éste es un equipo externo, es necesario lograr su comunicación con el robot. Para resolver todo esto se tiene la siguiente solución propuesta:
Elaborar un programa en el microcontrolador que lo comunique y transmita la programación por medio de la interfaz RS-232C a la unidad de control del robot para que realice rutinas de posicionamiento de materiales en la Estación Flexible de Manufactura
• Entonces en toda la tesis se apega a ella consiguiéndola por etapas, por ello lo que sigue es identificar la interfaz en ambos equipos con lo que se inicia la
solución propuesta por el hardware, se sigue con éste o con el software
(programa) hasta el final del trabajo donde es conseguida en su totalidad.
Identificación de la interfaz RS-232C en el robot y en el microcontrolador
Para identificar y ubicar la interfaz RS-232C en el robot y en el microcontrolador, se hizo una inspección y documentación de cada equipo.
CAPITULO I. Comunicación del microcontrolador y el robot Mitsubishi mediante la interfaz RS-232C
Figura 1.1 Vista posterior de la Unidad de Control del robot Mitsubishi RV- M1
Estos conectores son los cuatro de la orilla izquierda de dicha figura y se listan enseguida:
1. Conector de entradas / salidas externas 2. Conector del Teaching box
3. Conector Centronics 4. Conector RS-232C
La conexión e interfaces al exterior de los conectores es la siguiente:
• Conector de entradas / salidas externas: sirve para conectar equipo externo ( PLC’s , LED´s, etc.) y está ocupado como parte del sistema CIM
• Conector del Teaching box: sirve para conectar el Teaching box del robot
• Conector Centronics: maneja esta interfaz para conectar a una PC u otra unidad de control
• Conector RS-232C: maneja la Interfaz RS-232C con conector DB-25 hembra y cuenta con su cable con conectores DB-25 y DB-9 (no mostrado en la figura 1.1) que conecta el robot a la PC de la estación de visión.
El microcontrolador 68HC11 en su puerto D tiene una SCI (Interfaz de Comunicación Serie) que llega a un conector DB-9 hembra, en él se encuentra la interfaz RS-232C para la comunicación con equipos externos, y él cual se aprecia en el lado inferior izquierdo de la tarjeta del microcontrolador (ver figura 9 en la introducción de la tesis). Con lo que se tiene en ambos equipos identificada la interfaz para comunicarlos.
El programa del microcontrolador se elabora en la PC mencionada (con el editor iasm11), con ella se le transfiere al microcontrolador, se le manda ejecutar y se ve cada uno de los resultados antes de aplicarlos al robot.
1.3 Elaboración del programa de transmisión del microcontrolador utilizando la interfaz RS-232C
Aunque se elaboran varios programas, básicamente con ellos se va dando el desarrollo y definición de uno solo que es el de la solución propuesta (o del 68HC11) pasando por varias etapas representadas por cada programa.
Una vez identificada la interfaz, lo que sigue es utilizarla en el microcontrolador para elaborar su programa de comunicación con el robot, pero antes se debe asegurar que el microcontrolador transmita, es decir primero utilizarla en el microcontrolador para elaborar su programa de transmisión (después de la comunicación se busca que
transmita la programación mencionada en la solución propuesta)
Para elaborar el programa de transmisión del microcontrolador se investigó que características debía tener, y se encontró en los programas Qbasic con los que se ha programado al robot por PC, que el robot pide la configuración de los siguientes parámetros de comunicación:
1. Transmisión de datos en: código ASCII 2. Baudios en la transmisión: 9600
CAPITULO I. Comunicación del microcontrolador y el robot Mitsubishi mediante la interfaz RS-232C
Nota: El primer parámetro de la lista anterior no está expresado de esta forma en los programas en Qbasic. En estos programas la transmisión no tiene parámetro se realiza por medio de un comando, en cuanto a los datos que pide transmitirlos en “código ASCII”, se comprueba que es correcto transmitirlos así, al lograr la comunicación.
1.3.1 ¿Cómo conseguir que el programa de transmisión proporcione la configuración de comunicación del robot?
• Configuración de la velocidad de transmisión, bits de longitud del dato, bits de paro, habilitación del transmisor y paridad
Al consultar la forma de conseguir que el programa de transmisión del microcontrolador proporcione la configuración de comunicación del robot se encontró que se tienen que programar los registros de la SCI del 68HC11 los cuales se muestran en la tabla 1.1 [2] [3]
Tabla 1.1 Registros de la SCI del 68HC11
Como se indica en la tabla 1.1, BAUD es el registro que sirve para seleccionar la velocidad o los baudios de transmisión y en la figura 1.2 se muestra el registro donde se aprecian los bits que lo forman
Para configurar cada registro, primero se carga con direccionamiento inmediato el dato de configuración en un acumulador, posteriormente de este acumulador se carga al registro, por ejemplo para configurar con el dato 01 al registro BAUD quedaría en el programa de la siguiente forma:
LDAA #$01 ;Se carga el dato de configuración 01 en el acumulador A STAA BAUD ;Del acumulador A se carga el dato anterior al registro BAUD
A la izquierda del programa se encuentra el lenguaje ensamblador con los mnemónicos utilizados y a su derecha se incluye un comentario reconocido así por la programación al antecederle un ( ; ).
Para seleccionar 9600 baudios en el registro BAUD como lo pide el robot, se carga 1 a los bits SCP0 y SCP1, y 0 a los bits SCR0, SCR1 y SCR2 de este registro, para ello se le carga 30 como dato de configuración.
Con este dato queda Internamente el registro con la configuración deseada ya que para los registros cada digito del dato cargado es considerado en numeración binaria ver figura 1.3
Figura 1.3 Configuración del registro de velocidad en 9600 baudios (BAUD)
CAPITULO I. Comunicación del microcontrolador y el robot Mitsubishi mediante la interfaz RS-232C
Figura 1.4 Configuración del registro de control 1 para datos de 8 bits (SCCR1)
En el registro de control 2 (SCCR2) se habilita el transmisor o el receptor, asignando 1 al bit TE o RE respectivamente, para este caso se selecciona habilitar el transmisor (TE=1), entonces se carga 08 al registro, quedando éste como se muestra en la figura 1.5.
Figura 1.5 Configuración del registro de control 2 para habilitar el transmisor (SCCR2)
Es necesario despejar es decir dejar = 0 la bandera TDRE (indica registro de transmi-sión de datos vacío, que es SCDR en la transmitransmi-sión) del registro de estado cada que se transmita un dato para que después el microcontrolador espere que cambie a 1 y así deje el registro de datos en condición de poder escribir otro dato a transmitir.
Para despejar la bandera TDRE se siguen 2 pasos: primero leer el registro de estado y luego escribir en el registro de datos. En el programa queda de la siguiente forma: LDAB SCSR ;Lee reg. de estado
STAA SCDR ;Escribe dato en el registro de datos para transmitirlo y los dos ;pasos dejan la bandera TDRE=0
El registro SCDR es el registro de datos, en éste se escribe el dato para transmitirlo como se vio en el registro anterior, por el momento se muestra en blanco en la figura 1.7
Figura 1.7 Registro de datos (SCDR)
La paridad no se menciona en los registros, se consideró que trabajan sin paridad, esto después se confirmó que es correcto, al revisar en el editor del microcontrolador (iasm11) la opción que configura los parámetros de comunicación.
• Para que el programa transmita los datos en código ASCII
Para la transmisión se utilizan los registros SCCR2, SCSR, y SCDR descritos anteriormente
Y para que los datos que se transmitan estén en código ASCII hay que cargarlos así antes de transmitirlos.
Los datos nuevamente se cargan en un acumulador y para que estén en código ASCII se tienen dos opciones, la primera funciona con el código ASCII del dato, es decir si se desea cargar el acumulador A con el ASCII de 0 lo que se debe cargar es el 30 con direccionamiento inmediato de la siguiente forma:
LDAA #$30 ;Carga en el acumulador A, el 30 que es el código ASCII de 0.
Para el 1 se carga el 31:
LDAA #$31 ;Carga en el acumulador A el 31 que es el código ASCII de 1.
CAPITULO I. Comunicación del microcontrolador y el robot Mitsubishi mediante la interfaz RS-232C
Con la segunda opción se carga el dato tal cual y que el microcontrolador se encargue de convertirlo a código ASCII así no se tendrá que recordar o consultar este código para el dato que se esté tratando (por esta facilidad es que la mayor parte de la edición de los programas que se muestran en la tesis utilizó esta segunda opción) para ello se carga el dato precedido de # y se deja dentro de estas comillas ‘ ‘. Considerando los ejemplos antes tratados quedarían así
LDAA #’0’ ;Carga en el acumulador A el código ASCII de 0
LDAA #‘1’ ;Carga en el acumulador A el código ASCII de 1
Por lo que toca al programa de transmisión se forma de las 3 partes que siguen:
1. Asigna direcciones a los registros SCI (direcciones indicadas en tabla 1.1) 2. Programa principal
3. Subrutina TRANSMITIR
Los registros BAUD, SCCR1 y SCCR2 quedan en la parte llamada programa principal Los registros SCSR y SCDR quedan en la subrutina TRANSMITIR a donde se salta por medio del mnemónico JSR (salto a subrutina) desde el programa principal y después de cargar en ASCII el dato a transmitir. La subrutina sirve para la transmisión del dato.
Con esto también se encontró que es recomendable utilizar subrutinas pues en algunas etapas del programa son necesarias instrucciones que se repiten como se verá más adelante, por ejemplo la subrutina TRANSMITIR servirá para todos los datos que se transmitan y con ello se ahorra memoria, trabajo y tiempo en hacerlo para cada dato.
Tabla 1.2 Configuración del robot y configuración en el programa del 68HC11 (los parámetros marcados con * se pudieron configurar en el programa del 68HC11 como lo pide el robot)
Nota: Esta configuración permitida por el microcontrolador se seleccionó porque es una de las más cercanas a la configuración del robot, y porque es la que lo comunica con su editor (el iasm11)
Hasta este punto se encuentra que todavía no es conveniente seguir el camino de buscar otros recursos para coincidir la configuración del programa con la del robot porque ya se lleva avanzada la información para elaborar el programa, y es mejor terminarla para elaborarlo y saber con que se cuenta.
Más adelante se verá que las configuraciones se coinciden con otro recurso de uno de estos equipos por lo que la actividad llevada a cabo hasta aquí no se desvió y conduce a la consolidación de la solución propuesta u objetivo general.
1.3.2 El 1er comando del robot en la transmisión del microcontrolador
Hasta aquí se han solucionado aspectos de la configuración en el programa del 68HC11, por lo menos dentro de lo que cabe, lo cual incluye el formato en código ASCII de los datos para su transmisión, todo ello con el fin de la elaboración del primer programa del 68HC11 pero también hay que determinar:
CAPITULO I. Comunicación del microcontrolador y el robot Mitsubishi mediante la interfaz RS-232C
Conviene que el primer comando a transmitir sea sencillo pues sólo se quiere que de a conocer si se establece comunicación (porque aunque se está elaborando el programa de transmisión ya se están considerando las características para comunicarse con el robot, de la etapa siguiente).
El comando inicial y de exigencia para comenzar cualquier movimiento en el robot es NT, es el más básico y lo lleva a la posición de origen, por lo que es él que transmitirá el microcontrolador en este primer programa, acompañado de un Enter a manera de confirmar la transmisión.
Transmitir:
• NT
• Enter
El Enter se forma con transmitir el dato en ASCII 0A (siguiente línea) y/o el dato ASCII 0D (retorno de carro), en los primeros programas se forma con 0A y en los finales con ambos datos. Se nota que para cargar estos datos, no es necesario que el microcontrolador los convierta a código ASCII, porque ya están en dicho código y es la única forma en que se encuentran, debido a ello hay que cargarlos con la primera opción para que así sean transmitidos, por lo que las dos opciones de cargar los datos en ASCII vistas antes fueron útiles.
Se sigue definiendo la forma de elaborar el programa de tal manera que no sólo produzca la transmisión, sino también tenga un aspecto sencillo, y sea eficiente.
1.3.3 Diagrama de flujo para el programa de transmisión robot1.asm
CAPITULO I. Comunicación del microcontrolador y el robot Mitsubishi mediante la interfaz RS-232C
Con el diagrama de flujo se da la característica general del programa, y las particulares (propuestas en este trabajo) son tratadas en el texto, figuras y Anexos de cada programa.
El programa elaborado con el diagrama de flujo anterior al mandarlo ejecutar con el comando del microcontrolador “g, dirección de inicio del programa y ENTER”, transmitió el comando NT, con éxito, pero presentó el inconveniente de que al terminar su ejecución ya no aparecía el cursor (expresado como un guión) en la computadora para volverlo a ejecutar, hasta que se le dio reset al microcontrolador. Se necesitó una solución por programación que fuera inmediata para salir del problema al instante, después se investigó como corregir el problema de forma definitiva por lo que en el momento se solucionó, quitando la habilitación del transmisor.
Después se siguieron haciendo pruebas, y se corrigió el problema al agregar la interrupción IRQ en un bucle, permitiendo regresar también la habilitación al transmisor como se verá en otros programas más adelante.
El programa aunque con esto ya permite que aparezca el cursor al final de su ejecución, resulta todavía impráctico, pues es necesario teclear en la PC el comando de ejecución del microcontrolador (g, dirección de inicio del programa y ENTER) cada vez que se desee transmitir el comando NT como es requerido.
A pesar de los inconvenientes que presentó el programa robot1.asm para comunicarse con el robot, es el programa de transmisión porque permitió lograr la transmisión del
microcontrolador a la PC, la siguiente etapa del programa es lograr la comunicación con el robot.
1.4 Elaboración del programa de comunicación del microcontrolador
El programa del 68HC11 se continuó mejorando pues con el programa de transmisión sólo cubría esta etapa y aún para ella, era poco práctico como se pudo ver anteriormente.
robot (pues en esta etapa sólo se podía iniciar la transmisión al correrlo con la computadora).
Por esta razón se realizó un programa que resolviera este problema de manera inmediata, se probó que transmitiera el comando después de cierto tiempo, de haber sido ejecutado.
Pero la versión mejorada que dio origen al programa de comunicación con el robot se obtuvo por medio de la inclusión de una interrupción (la IRQ) al programa de transmisión en un bucle que repite su espera. La interrupción fue para que después de correr el programa con la PC, se pudiera con el microcontrolador iniciar la transmisión en el momento deseado y de forma independiente, con ello también no se está sujeto a un tiempo para pasar el cable al robot, como sucede con el programa mencionado. El bucle permite cualquier número de peticiones provocando que no sea necesario teclear en la PC el engorroso “g, dirección del programa y ENTER” para cada vez que se desee transmitir, pues esto sólo se realiza para correr el programa y ya después se inicia la transmisión por medio del microcontrolador con sólo oprimir el botón pulsador conectado a su terminal IRQ. La mejora incluida en el programa de transmisión lo convierte en el “programa de comunicación” que quedó para cualquier número de peticiones de transmisión, y en el momento deseado.
En la figura 1.8 se ilustra la conexión del botón pulsador a la terminal IRQ del 68HC11 para que produzca esta interrupción
Figura 1.8 Conexión del botón pulsador a la terminal IRQ del microcontrolador
CAPITULO I. Comunicación del microcontrolador y el robot Mitsubishi mediante la interfaz RS-232C
El programa robot3.asm elaborado con este diagrama de flujo se muestra en el anexo F y transmite el comando NT cada vez que se oprime el botón pulsador de la interrupción (IRQ).
CAPITULO I. Comunicación del microcontrolador y el robot Mitsubishi mediante la interfaz RS-232C
los programas, se realizó de manera que entregue en milésimas de segundo el número que se le cargue al índice X, en este programa sirvió para darle el tiempo antirrebotes al botón pulsador y el tiempo para que la rutina de servicio de la IRQ no alcance a entrar varias veces en una sola pulsación del botón, más adelante fue necesario cambiar el sitio en que se carga el índice esto es, en lugar de cargarlo en la subrutina de tiempo se cargó antes de entrar a ella, (en la rutina de servicio de la IRQ) para sacarle provecho a la función que tiene como subrutina (que sirva para otros requerimientos de tiempo en el programa) similar a la subrutina ”transmitir” que sirve para todos los datos que se transmiten.
La inclusión de la interrupción también agregó al programa de la etapa anterior las localidades del SEUDOVECTOR de la interrupción (ver esto en programas respectivos: Anexos E y F) a las que se les etiqueta con el nombre de: SEUDOVB y SEUDOVD la primera almacena el brinco del programa a la dirección almacenada en la segunda y la segunda la dirección de la “rutina de servicio de interrupción IRQ” para ejecutarla, las instrucciones para hacer esto, corresponden en el diagrama de flujo a “preparar el uso de interrupción”, y la instrucción CLI se encuentra dentro del “bucle” porque se requiere que permita la interrupción cada que se espera una nueva.
Hasta aquí el programa del 68HC11 funciona en la PC pero como se sabe falta resolver los parámetros que en él no se pudieron configurar como lo pide la configuración del robot para la comunicación. Aunque para lograr la comunicación se tuvieron que elaborar 3 elementos de software y de hardware que son los siguientes:
1. El programa de comunicación (ya elaborado, es robot3.asm) 2. El cable de interfaz entre el 68HC11 y el robot
3. La configuración del robot
Hasta aquí todavía queda por realizar el cable de interfaz y la configuración del robot (elementos que aquí se indican pero que en su momento se tuvo que encontrar la necesidad de su realización por medio del análisis de los problemas, lo cual se puede ver en el resto de este capitulo y en el capítulo siguiente).
1.5 Elaboración del cable del 68HC11 al robot (cable de interfaz)
Todo parece que se tienen las condiciones de probar el programa en el robot, trasmitiendo del 68HC11 a la PC para ver lo transmitido y luego desconectando de ella el cable del 68HC11 para conectarlo al robot.
Pero al querer conectar el cable del 68HC11 al robot (unidad de control del robot) no es posible por lo que se ilustra en la figura 1.9
Figura 1. 9 Cable del 68HC11 a la PC y el cable del robot a la PC
El cable del robot a la PC, está desde que se inició este trabajo, es el cable que se utiliza al programar y trabajar el robot por computadora (la PC del módulo de visión). El cable del 68HC11 a la PC es con él que se conecta la tarjeta de este microcontrolador a la computadora (mostrado también en la figura 9 en la introducción de la tesis) y se viene utilizando en la elaboración de los programas.
Por ello cada cable es utilizado según con el equipo que se quiera utilizar la computadora.
CAPITULO I. Comunicación del microcontrolador y el robot Mitsubishi mediante la interfaz RS-232C
Figura 1.10 Conexión del cable de interfaz y el cable del robot para conectar el 68HC11 al robot Ahora, las señales utilizadas en estos cables son: Tx, Rx y GND, en una comunicación unidireccional, con el microcontrolador como transmisor y el robot como receptor.
El cable del robot maneja otras señales que no se utilizaron, de todos modos, todas se encuentran en el anexo A al final de este trabajo.
Nota: Para los anexos que indican Computadora, en su lugar estaría el microcontrola- dor.
Por lo que el cable de interfaz se elaboró con la misma configuración claro que con sus correspondientes conectores DB-9 macho, en cada extremo como se aprecia en la figura 1.12
Figura 1.12 Configuración del cable de interfaz
Se necesita tener listos software y hardware propios de esta etapa, es decir el programa y el cable para poderlos probar con el robot.
Al parecer se tiene el mínimo necesario para entrar a la etapa de pruebas de comunicación con el robot, entonces se le aplicó el programa robot3.asm utilizando el cable de interfaz, sin embargo no se movió, había que pensar en otras causas posibles.
Una de ellas se debe a que:
El programa del 68HC11 y el robot todavía tienen parámetros de comunicación que no coinciden:
La comunicación no se establece porque deben tener la misma configuración
Por el lado del programa del microcontrolador ya no se puede coincidir más, hubo que investigar si:
Por parte del robot se podía hacer coincidir su configuración con la del programa del
CAPITULO I. Comunicación del microcontrolador y el robot Mitsubishi mediante la interfaz RS-232C
Una vez que se lograron coincidir las configuraciones se desconectó el cable del microcontrolador a la PC y con el cable de interfaz que se hizo para tal fin se conectó al cable del robot, y se aplicó el programa, sin embargo el robot no se movió, lo que pidió un nuevo análisis
En este análisis se encontró que la falla estaba en el cable de interfaz, y es el análisis con el que se resuelve el problema, por ello se explica a continuación.
Como se sabe el cable de interfaz se elaboró con la misma configuración que tiene el cable del 68HC11 porque este funciona con la PC.
[image:43.612.114.487.316.569.2]Pero si se analiza detenidamente considerando las señales que maneja cada cable se puede ver que cuando se conecta el cable de interfaz con el cable del robot sucede lo ilustrado en la figura 1.13
Figura 1.13 Conexión del cable de interfaz con el cable del robot mostrando arriba, las señales de cada uno y que se tocaran al conectarlos.
las señales unidas por estas líneas se van a tocar de uno a otro cable. TX es transmisión, RX es recepción, y GND es tierra (SG en el robot).
Se nota que queda la transmisión de un cable conectado a la transmisión del otro; recepción con recepción y tierra con tierra, esto es correcto para tierra, pero no para las terminales TX y RX, porque:
• Cuando de un lado se quiera transmitir, el otro lado debe ser recepción.
La comunicación no se establecía por eso, cuando el microcontrolador transmitía no le llegaba al robot en la terminal de recepción, para que lo reconociera, sino le llegaba a la de transmisión.
Con la computadora no hay problema porque su configuración corresponde con este requisito, para los dos equipos.
Por lo que la solución fue:
• Cambiar el hilo de transmisión al de recepción y el de recepción al de transmisión es decir intercambiarlos en uno de los extremos del cable de
interfaz
CAPITULO I. Comunicación del microcontrolador y el robot Mitsubishi mediante la interfaz RS-232C
Como quedó incluso no hay problema en cuidar de no invertir los lados del cable al conectarlo pues siempre cualquier lado hace la función requerida.
Este cruce en las señales lo indica también el manual de instrucciones del robot donde se puede ver, o si no al final de este trabajo en el anexo C.
Al conectar nuevamente el cable de interfaz al cable del robot quedó corregido el problema pues TX del 68HC11 conectó a RX del robot y viceversa como se indica en la figura 1.15
Figura 1.15 Conexión del cable de interfaz con el cable del robot una vez corregido Tx y Rx
CAPITULO II. Configuración del robot Mitsubishi RV-M1
2.1 Antecedentes históricos del robot [4]
La imagen del robot como una máquina a semejanza con el ser humano, subyace en el hombre desde hace muchos siglos, existiendo diversas realizaciones con este fin; desde los pájaros mecánicos de Hero de Alejandría, en el siglo I a.C., hasta el tigre del Museo Victoria Albert, del siglo XIX.
La palabra robot proviene del checo y la usó por primera vez el escritor Karel Capek en 1917 para referirse, en sus obras, a máquinas con forma humanoide. En 1940, Isaac Asimov volvió a referirse a los robots en sus libros.
Pero el robot industrial, que se conoce y emplea en nuestros días, no surge como consecuencia de la tendencia o afición de reproducir seres vivientes, sino de la necesidad. Fue la necesidad la que dio origen a la agricultura, el pastoreo, la caza, la pesca, etc. Más adelante, la necesidad provocó la primera revolución industrial con el descubrimiento de la máquina de Watt y, actualmente, la necesidad ha cubierto de ordenadores la faz de la tierra.
La definición del robot industrial, como una máquina que puede efectuar un número diverso de trabajos, automáticamente, mediante la programación previa, no es válida, porque existen bastantes máquinas de control numérico que cumplen esos requisitos.
Una peculiaridad de los robots es su estructura en forma de brazo mecánico y otra su adaptabilidad a diferentes aprehensores o herramientas. Otra característica específica del robot, es la posibilidad de llevar acabo trabajos completamente diferentes e, incluso, tomar decisiones según la información procedente del mundo exterior.
2.2 Descripción del robot Mitsubishi RV-M1
El robot Mitsubishi RV-M1 se compone de las partes que se muestran en la figura 2.1
Figura 2.1 Partes del robot Mitsubishi RV-M1
Cuenta con 5 grados de libertad como lo muestran los ejes J en la figura 2.1
La unidad de control le proporciona mediante un cable de señal y un cable de potencia señalización y alimentación eléctrica para su funcionamiento.
CAPITULO II. Configuración del robot Mitsubishi RV-M1
Figura 2.3 Panel frontal de la Unidad de control
2.3 Configuración del robot Mitsubishi RV-M1
Al no tener todavía comunicación del microcontrolador con el robot era momento de investigar otras soluciones que pudieran hacer coincidir la configuración del programa del 68HC11 con la del robot.
Con la tendencia pensada en los inicios de este trabajo, consistente en que las soluciones recayeran en el microcontrolador por ser más accesible que el robot, no se había estudiado más a fondo a este último. Pero por las circunstancias obligaba a hacerlo.
Entonces se revisó el manual de instrucción del robot y se encontró que a su interfaz RS-232C si se le podía cambiar la configuración y llevarla a la del programa del 68HC11 (que hasta aquí es el programa de comunicación robot3.asm), por medio de:
Dos DIP SWITCH de 8 interruptores (ó bits) cada uno, los cuales son:
• El SW2
• El SW3
Estos se encuentran dentro de la unidad de control y cerca de la puerta lateral, como puede verse en la figura 2.2
• En el SW2 se configura el formato de transmisión
• En el SW3 se configuran los baudios o velocidad de transmisión
CAPITULO II. Configuración del robot Mitsubishi RV-M1
Tabla 2.1 Configuración del robot y configuración en el programa del 68HC11 (los parámetros marcados con * se pudieron configurar en el programa del 68HC11 como lo pide el robot)
Como se puede ver en la tabla 2.1 (tabla 1.2 que se trae hasta aquí por comodidad y claridad) se muestra la configuración del robot y la del programa del 68HC11, se recordará que se marcaron con * los parámetros que se pudieron configurar en el programa del 68HC11 como lo pide la configuración del robot, por lo que sólo faltan coincidir los que no tienen *, lo que ahora se va hacer en el robot.
Como se mencionó, el DIP SWITCH SW3 es responsable de la configuración de los baudios o velocidad de transmisión que es un parámetro que ya coincidió en las configuraciones (con el bit 8 en ON se encuentra en 9600 baudios) por lo que no se le tocó ver fig 2.5
Figura 2.5 Configuración del DIP SWITCH SW3, con el bit 8 en ON está en 9600 baudios Nota: en ON ó 1 lógico el bit se coloca hacia arriba, en OFF ó 0 lógico por lo tanto se coloca hacia abajo, y se muestran en las figuras rellenos los bits de interés
programa del 68HC11, estos cambios en la configuración son para los parámetros que falta coincidir y se muestran en la figura 2.7
Figura 2.6 Significado de la configuración original del robot en el DIP SW2
Figura 2.7 Cambio en el SW2 de la configuración original a la del programa del 68HC11 (bits rellenos) El significado de los cambios en el SW2 es el siguiente:
Cambio en el bit del SW2 Significado
Bit 3 de OFF a ON De 7 a 8 bits (longitud de datos) Bit 5 de ON a OFF Con paridad a sin paridad
CAPITULO II. Configuración del robot Mitsubishi RV-M1
En el Anexo B se pueden ver estas configuraciones de manera más detallada y las demás que se pueden hacer con los bits de cada DIP SWITCH en donde tienen subrayada la configuración original del robot. Para entender mejor el significado de los cambios realizados notar en la figura 2.6 ó en el anexo B que algunos bits trabajan en par con otros.
Con lo anterior por fin coincidió la configuración del robot con la del programa del 68HC11
Después que todo indicó estar correcto:
Con el cable de interfaz, el programa robot3.asm y siendo la configuración del robot igual que la del programa, se procedió a hacer las pruebas de comunicación del microcontrolador con el robot.
Se ejecutó el programa en el 68HC11 con su cable conectado a la PC y apareció con éxito NT en la pantalla, luego al ejecutarlo, con el 68HC11 conectado al robot por medio del cable de interfaz, por fin:
“ el robot se movió con el microcontrolador ”
A la posición de origen que es la orden del comando NT que se le transmitió y como ya estaba en tal posición el movimiento fue pequeño pero significativo.
Así, la etapa de comunicación de la solución propuesta se finaliza estableciendo los siguientes puntos:
• Finaliza la etapa de comunicación para entrar a la de transmisión de la programación (o etapa de la programación del robot)
• Con robot3.asm se ha formado el programa del 68HC11 en la comunicación lo que sigue es que transmita la programación del robot, lo cual se consigue con incluirla en el programa robot3.asm es decir utilizar este programa en la programación del robot.
• Del siguiente capitulo y hasta concluir la solución propuesta (final de la tesis), se utilizan para programar al robot los tres elementos de software y de hardware que permitieron la comunicación y se listan a continuación
1. Programa de comunicación robot3.asm (software) 2. Cable de interfaz (hardware)
3. Configuración del robot = Configuración en robot3.asm (hardware)
CAPITULO III Formato para el programade comunicación, que permite trabajar con los comandos del robot
3.1 ¿Por qué buscar un formato para el programa de comunicación robot3.asm? Una vez obtenida la comunicación, parecía que se daban las condiciones de programar el robot con el programa de comunicación robot3.asm (continuar el programa del 68HC11 en la transmisión de la programación del robot) para que llevara a cabo rutinas en la Estación Flexible de Manufactura, por lo que se le tendrían que incluir más comandos al programa de comunicación. Si se recuerda el programa de comunicación ya había trabajado con un comando del robot este fue NT, pero al incluirle más comandos presentó problemas de comunicación (que el robot indicaba como “error de software” debido a que no los reconocía), por lo que se tuvo que primero buscar el formato que le permitiera trabajar con los comandos del robot. De la búsqueda de dicho formato trata este capitulo.
3.2 Estudio del programa en Qbasic “mes11.bas” tomado como guía para buscar en el programa “robot3.asm” el formato de una posición (que mueve al robot en una posición)
Al principio se acudió a los programas en Qbasic, que fueron elaborados antes de esta tesis al programar el robot por PC, para tomar uno de estos programas que fuera sencillo e iniciar con él, las pruebas, utilizando el editor Qbasic, la PC y el robot y así conocer su funcionamiento, para después pasarlo al programa de comunicación robot3.asm. [6]
Se comenzó con un programa que tuviera comandos que ordenan al robot moverse a una posición. El programa seleccionado fue uno llamado mira.bas el cual se copió con el nombre de mes11.bas porque mira.bas trabaja con la configuración original del robot y a mes11.bas se le dio la configuración realizada en el programa de comunicación pues se trató de tener un ejemplo lo más cercano a la programación del 68HC11 para que no costara tanto continuar el desarrollo de su programa de ser posible sólo se necesitara copiar.
CAPITULO III Formato para el programade comunicación, que permite trabajar con los comandos del robot
OPEN “COM 1:9600, N, 8, 1” FOR RANDOM AS # 1 10 PRINT # 1, “PD 10, 361.9, -202.2, 469.8, -43.9, 178.9“ 35 PRINT # 1, “RN”
37 PRINT # 1, “90 NT” 38 PRINT # 1, “91 MO 10” 100 PRINT # 1, “95 ED” 250 END
Figura 3.1 Programa mes11.bas
Las funciones de la primera línea del programa mes11.bas configura los parámetros de comunicación RS-232C y se encuentran de manera detallada en la figura 3.2
OPEN Abre el archivo de comunicación RS-232C
COM 1 Habilita el puerto 1 serie de la PC para la comunicación 9600 Baudios, velocidad de transmisión
N Sin paridad
8 Bits de la longitud del dato 1 Bit de paro
FOR RANDOM
AS # Referencia para los comandos PRINT # y LINE INPUT #
en la transmisión de datos
Figura 3.2 Funciones de la primera línea del programa mes11.bas
En lo sucesivo en algunas figuras se encierra en un cuadro la parte del programa a la que se hace referencia
CAPITULO III Formato para el programade comunicación, que permite trabajar con los comandos del robot
que cuidar que sea secuencial y ascendente, ya que de otra manera estaría saltando de uno a otro lado la ejecución del programa volviéndolo confuso para el análisis.
Figura 3.3 Número de línea y comandos para la programación en Qbasic
La función de los comandos en Qbasic del programa mes11.bas se pueden ver en la figura 3.4
PRINT # 1 Transmisión de los datos que se encuentran enseguida y entre “ ”
END Fin del programa Qbasic
Figura 3.4 Función de los comandos PRINT #1 y END del programa mes11.bas
CAPITULO III Formato para el programade comunicación, que permite trabajar con los comandos del robot
La función de los comandos movemaster que transmite el programa mes11.bas es la siguiente:
Comandos: Función
PD 10 Define la posición 10 del robot con 5 coordenadas RN Ejecuta (lo que le sigue)
NT Mover a la posición de origen MO 10 Mover a la posición 10
ED Fin del programa movemaster
Figura 3.6 Función de los comandos movemaster
Para conocer más sobre los comandos del robot se puede consultar el anexo D en la parte final de la tesis.
Al ejecutar este programa en el editor Qbasic y estando el cable del robot conectado al puerto serie de la PC, el robot se movió a la posición de origen y luego a la posición10 para posteriormente finalizar.
Pues ahora que ya se sabe como funciona el programa mes11.bas en programación Qbasic lo que sigue es trasladarlo al interior del programa robot3.asm (cuya programación es la del microcontrolador) y que haga lo mismo.
Nota: Para no confundir cual(es) programa(s) está(n) en cada programación es posible guiarse con la extensión de cada uno:
1. El programa que termina con la extensión bas está en programación Qbasic
CAPITULO III Formato para el programade comunicación, que permite trabajar con los comandos del robot
2. El programa que termina con la extensión asm está en programación del microcontrolador 68HC11
Ejemplo: robot3.asm
Para trasladar el programa mes11.bas al programa robot3.asm se trabaja el microcontrolador con la PC por eso se sale del editor de Qbasic, y se preparara lo necesario, lo cual se indica como sigue: entrar al editor iasm11 o del 68HC11 y desconectar el cable del robot a la PC para conectar el cable del 68HC11 y con él, también el microcontrolador. Con esto se puede elaborar en el editor iasm11 el programa que resultará del traslado, y ver lo que transmitirá el 68HC11 (con dicho programa) en la computadora para después transmitirlo al robot
3.2.1 Características para el traslado del programa mes11.bas al programa robot3.asm del microcontrolador para encontrar el formato de una posición
El programa mes11.bas al trasladarlo al interior del programa robot3.asm será el formato 1 con el que se pruebe el programa robot3.asm, se debe constatar que éste provoque en el robot lo mismo que provocó el programa mes11.bas en programación Qbasic o sea mover al origen y luego a una posición, será para encontrar el formato de una posición. Por el momento con el formato 1, se busca él de una posición, de no funcionar se irá modificando hasta que robot3.asm funcione con él y entonces se tomará como base para agregar más posiciones y otros comandos.
Ahora:
¿Cómo trasladar el programa mes11.bas al programa robot3.asm ?
CAPITULO III Formato para el programade comunicación, que permite trabajar con los comandos del robot
OPEN “COM 1:9600, N, 8, 1” FOR RANDOM AS # 1 10 PRINT # 1, “PD 10, 361.9, -202.2, 469.8, -43.9, 178.9“ 35 PRINT # 1, “RN”
[image:61.612.145.461.222.663.2]37 PRINT # 1, “90 NT” 38 PRINT # 1, “91 MO 10” 100 PRINT # 1, “95 ED” 250 END
Figura 3.7 Programa mes11.bas
CAPITULO III Formato para el programade comunicación, que permite trabajar con los comandos del robot
Se prefirió exponer al programa robot3.asm por secciones (que encierran una variedad de códigos por funciones) para tenerlo compacto, no perderse entre los códigos, y tener una rápida localización; el original se muestra en el Anexo F por si se desea ver.
Nota: En este trabajo a lo que se refiere como trasladar es llevar de la programación Qbasic u otra programación de origen a la programación del microcontrolador con la intención de que produzca el mismo efecto en el robot que la de origen.
La solución de como trasladar el programa mes11.bas al interior del programa de comunicación robot3.asm es que este último:
• “Conserve todo igual y sólo transmita cada carácter del programa mes11.bas como transmitió los caracteres del comando NT “
Si el programa robot3.asm debe transmitir el programa mes11.bas como transmitió el comando NT entonces deberá contenerlo con las mismas características. Con ellas se puede trasladar el programa mes11.bas las cuales se listan en la tabla 3.1
1. Ir en el lugar que ocupa NT en el programa robot3.asm 2. Estar en lenguaje ensamblador del microcontrolador 3. Manejar cada dato en código ASCII para su transmisión 4. Transmitir un ENTER al final del comando o línea
Tabla 3.1 Características de contenido del comando NT que debe cumplir mes11.bas para trasladarlo al programa robot3.asm y éste lo pueda transmitir
3.2.1.1 Cumplimiento de la característica de ubicación para el traslado del programa mes11.bas al programa robot3.asm
CAPITULO III Formato para el programade comunicación, que permite trabajar con los comandos del robot
Figura 3.9 Ubicación del programa mes11.bas para trasladarlo al interior del programa robot3.asm y así éste pueda transmitirlo como formato
Como se indica en la figura 3.9, de esta manera todo el programa mes11.bas (sus caracteres tratados con las características de la tabla 3.1) estaría en el lugar que ocupa el comando NT en el programa robot3.asm, o sea en la parte que éste carga los datos que transmitirá
Al modificar el formato 1 se estaría modificando el programa robot3.asm únicamente en la sección 3 y donde se carga lo que transmite “por lo que el formato es para lo que transmite y las demás secciones del programa robot3.asm quedan sin modificación”.
CAPITULO III Formato para el programade comunicación, que permite trabajar con los comandos del robot
Nota: Se menciona trasladar un programa en Qbasic u otra programación al programa robot3.asm, pero en realidad es a una copia de él, pues se debe conservar el original ya que es un elemento de comunicación fijo que se utilizará cada que se programe el robot.
3.2.1.2 Cumplimiento de la característica del lenguaje y datos en ASCII para el traslado del programa mes11.bas al programa robot3.asm
Ahora se traslada el programa mes11.bas al interior del programa robot3.asm: Se Abre el programa robot3.asm en el editor iasm11 y se lleva al cursor en el sitio donde se encuentra NT y en su lugar se comienza a editar el programa mes11.bas como se editó NT lo cual se muestra en la figura 3.10.
Figura 3.10 Traslado del programa mes11.bas (izquierda) al programa robot3.asm del microcontrolador (derecha)
CAPITULO III Formato para el programade comunicación, que permite trabajar con los comandos del robot
3.2.1.3 Cumplimiento de la característica del ENTER para el traslado del programa mes11.bas al programa robot3.asm
Al final de cada línea o comando del formato se edita el ENTER para cumplir con la característica 4, en este caso estará formado con los datos siguientes: código ASCII 0D (retorno de carro) y 0A (siguiente línea) como se puede apreciar su edición en el editor iasm11 (ver la figura 3.11)
LDAA #$0D ; RET. DE CARRO, (ENTER)
JSR TRANSMITIR
LDAA #$0A ; SIG. LINEA
JSR TRANSMITIR
Figura 3.11 Edición del ENTER al final de cada línea del formato
El ENTER formado con 0D y 0A es para que el programa robot3.asm transmita al monitor de la PC el formato de manera original. El programa robot3.asm al ser elaborado sólo utilizó 0A como ENTER después de cargar el comando NT (fig 3.9), pues la transmisión de este único comando no causaba confusión en lo desplegado.
Si al final de la 1era línea se editara únicamente el código 0A (considerando sólo las 2 primeras líneas del formato para ejemplificar)
Lo que transmitirá el programa robot3.asm al monitor de la PC será la 1ª línea, luego la 2a línea abajo pero sin comenzar al inicio como se muestra a continuación:
OPEN “COM 1:9600, N, 8, 1” FOR RANDOM AS # 1
CAPITULO III Formato para el programade comunicación, que permite trabajar con los comandos del robot
Para que la 2a línea pase al inicio se utiliza el código 0D, con él su transmisión es como se muestra en la figura 3.13
10 PRINT # 1, “PD 10, 361.9, -202.2, 469.8, -43.9, 178.9“
Figura 3.13 transmisión con 0D como ENTER al final de la 1era línea del formato
Sin embargo se ve que al dejar al final de la 1era línea únicamente el código 0D aparece en el monitor sólo la 2a línea, esto es porque al terminar de transmitir la 1a se sitúa al inicio, y luego al transmitir la 2a, encima a la 1a
Por ello hay que dejar a los dos códigos como ENTER para que al final de una línea editada salte hacia abajo y al inicio para comenzar a transmitir la siguiente, dando como resultado el formato original (fig. 3.14) donde se consideran todas las líneas
OPEN “COM 1:9600, N, 8, 1” FOR RANDOM AS # 1 10 PRINT # 1, “PD 10, 361.9, -202.2, 469.8, -43.9, 178.9“ 35 PRINT # 1, “RN”
37 PRINT # 1, “90 NT” 38 PRINT # 1, “91 MO 10” 100 PRINT # 1, “95 ED” 250 END
Figura 3.14 Transmisión del formato original con 0A y 0D como ENTER al final de cada línea