Universidad de Costa Rica Facultad de Ingeniería Escuela de Ingeniería Eléctrica

Universidad de Costa Rica Facultad de Ingeniería Escuela de Ingeniería Eléctrica IE – 0502 Proyecto Eléctrico Implementación del software de control

1 downloads 9 Views 3MB Size

Story Transcript

Universidad de Costa Rica Facultad de Ingeniería Escuela de Ingeniería Eléctrica

IE – 0502 Proyecto Eléctrico

Implementación del software de control para la fresadora Lab-Volt

Por: Max Ramírez Pérez

Ciudad Universitaria Rodrigo Facio Julio del 2012

Implementación del software de control para la fresadora Lab-Volt

Por: Max Ramírez Pérez

Sometido a la Escuela de Ingeniería Eléctrica de la Facultad de Ingeniería de la Universidad de Costa Rica como requisito parcial para optar por el grado de:

BACHILLER EN INGENIERÍA ELÉCTRICA Aprobado por el Tribunal:

_________________________________ Ing. Aramis Pérez Mora Profesor Guía

_________________________________ Ing. Jaime Cascante Vindas Profesor lector

_________________________________ Ing. Mercedes Chacón Vásquez Profesor lector ii

DEDICATORIA Todo el trabajo realizado a lo largo de los años mientras estudié esta carrera y en especial durante el desarrollo de este proyecto se lo quiero dedicar a mi familia que siempre me apoyó durante mi paso por la universidad y que siempre estuvieron a mi lado brindándome ánimos para continuar aún en los momentos más difíciles. Además quiero agradecer a todos aquellos profesores que a alguna manera aportaron en mi crecimiento no solo como estudiante si no que también como persona, a todos ellos muchas gracias.

iii

RECONOCIMIENTOS Especial agradecimiento al profesor Aramis Pérez, por su oportuna y siempre amable atención a mis inquietudes. Así también, a los lectores del proyecto el Ing. Jaime Cascante Vindas y la Ing. Mercedes Chacón Vásquez, por su tiempo dedicado en él. También quiero agradecer a mi compañero Gabriel Sánchez el cual trabajó en un proyecto paralelo complementario y me brindó su ayuda cuando la necesité.

iv

ÍNDICE GENERAL 1.

CAPÍTULO 1: INTRODUCCIÓN ..................................................... 1

1.1

Objetivos .............................................................................................. 2

1.2

Objetivo general .......................................................................................................... 2 1.1.2

Objetivos específicos ............................................................................................ 2

1.3

Metodología ......................................................................................... 3

2.

CAPÍTULO 2: DESARROLLO TEÓRICO ...................................... 5

2.1

La fresadora Mill CNC 5400 Lab-Volt .............................................. 5

2.2.

Control numérico computarizado CNC ............................................. 6

2.3.

Plataforma Arduino: Aspectos generales. ......................................... 9

2.3.1.

Descripción General ........................................................................................... 9

2.3.2.

Arduino Mega ................................................................................................... 11 2.3.2.1.

Características generales ................................................................................. 11

2.3.2.2.

Alimentación .................................................................................................. 13

2.3.2.3.

Memoria ......................................................................................................... 14

2.3.2.4.

Entradas y salidas ........................................................................................... 15

2.3.2.5.

Comunicaciones ............................................................................................. 16

v

2.3.2.6.

2.4.

Programación ................................................................................................. 16

Comunicación serial .......................................................................... 17

2.4.1.

Principio de funcionamiento del puerto serial .................................................. 19

2.4.2.

Protocolo RS-232 .............................................................................................. 20

2.4.3.

Utilización de las señales RS-232 ..................................................................... 21

CAPÍTULO 3: CONTROL AUTOMÁTICO DE LA FRESADORA ...... 24 3.1

Verificación del funcionamiento del puerto serial ........................... 24

3.2

Comunicación serial entre el computador y el Arduino Mega ...... 28

3.2.1

Etapa de acople de tensiones .................................................................................... 28

3.2.2

Programa de recepción de datos por el puerto serial en Arduino. ............................ 36

3.2.3

Creación de pieza mediante la programación por bloques ....................................... 42

3.2.4

Creación de pieza mediante la programación lineal ................................................. 45

4.

CAPÍTULO 4: CONCLUSIONES Y RECOMENDACIONES...... 48

BIBLIOGRAFÍA ......................................................................................... 52 APÉNDICES ............................................................................................... 54 Apéndice A. Programa de pieza con la programación de modo lineal ..... 54 Apéndice B. Algunos Códigos G de la fresadora Lab-Volt ....................... 57 Apéndice C. Algunos Códigos M de la fresadora Lab-Volt ...................... 58 vi

Apéndice D. Programación para el puerto serial ...................................... 59 ANEXOS ...................................................................................................... 63

vii

ÍNDICE DE FIGURAS Figura 2.1 Fresadora 5400 CNC [8] ....................................................................................... 5 Figura 2.2 Placa de control Arduino Mega.[6] ..................................................................... 12 Figura 2.3 Entorno de programación de Arduino [6] ........................................................... 17 Figura 2.4 Conectores DB9, macho y hembra. [7] ............................................................... 18 Figura 3.1 Parte externa del Puerto serial. ............................................................................ 24 Figura 3.2 Cable de conexión del puerto serial. ................................................................... 25 Figura 3.3 Conexión interna del puerto serial al controlador. .............................................. 26 Figura 3.4 Distribución de los pines en el conector interno ................................................. 27 Figura 3.5 Transmisión de prueba por los conectores del puerto serial. .............................. 28 Figura 3.6 Captura de datos enviados por el puerto serial .................................................... 29 Figura 3.7 Transmisión serial por dispositivo Arduino.[11] ................................................ 30 Figura 3.8 Dispositivo MAX232 .......................................................................................... 31 Figura 3.9 Funcionamiento del circuito integrado NTE7142 ............................................... 32 Figura 3.10 Datos leidos y almacenados en la memoria EEPROM ..................................... 39 Figura 3.11 Pantalla de inicio para crear un nuevo proyecto................................................ 40 Figura 3.12 Bloque en bruto para la realización de piezas ................................................... 41 Figura 3.13 Parámetros elegidos para la programación por bloques .................................... 43 Figura 3.14 interfaz de programación por medio de bloques ............................................... 43 Figura 3.15 Programación de la figura por bloques.............................................................. 44 viii

Figura 3.16 Figura obtenida de la programación por bloques. ............................................. 45 Figura 3.17 Parámetros para la programación lineal. ........................................................... 45 Figura 3.18 Programación de modo lineal. .......................................................................... 46 Figura 3.19 Pieza programada de manera lineal. .................................................................. 47

ix

ÍNDICE DE TABLAS Tabla 2.1Caracteristicas del Arduino Mega 2560[4] ............................................................ 12 Tabla 2.2 Distribución de pines del protocolo serial RS-232 [5] ......................................... 21 Tabla 3.1 Medición de las tensiones en la conexión serial para el torno .............................. 34 Tabla 3.2 Medición de las tensiones en la conexión serial entre dos computadores ............ 35 Tabla 3.3 Instrucciones habilitadas para el nuevo controlador ............................................. 38

x

NOMENCLATURA CNC

Control Numérico Computarizado

TTL

Transistor-Transistor Logic, Lógica transistor transistor

CD/DCD (Data) Carrier Detect; Detector de transmisión RxD

Receive Data, Recibir datos.

TxD

Transmit Data, Transmitir datos.

DTR

Data Terminal Ready, Terminal de datos lista.

SG

Signal Ground, Señal de tierra.

DSR

Data Set Ready, Ajuste de datos listo.

RTS

Request To Send, Permiso para transmitir.

CTS

Clear To Send, Listo para enviar.

RI

Ring Indicator, Indicador de llamada.

PWM

Modulacion por ancho de pulsos

UARTS

"Universal Asynchronous Receiver-Transmitter" , Transmisor-Receptor Asíncrono Universal

ICSP

In Circuit Serial Programming

E.I.A

Institución de normalización Americana

Hz

Hertz

xi

RESUMEN El presente trabajo aborda la realización de un software de control para la fresadora LabVolt del Laboratorio de Automática, para esto se tenía como objetivo principal instalar e implementar un software capaz de descargar los programas de manufactura para ser ejecutados en la máquina, entre los otros objetivos se encuentran aprender a programar en código G y M de manufactura, además de verificar el funcionamiento del puerto de comunicación de la fresadora y habilitar la descarga de piezas. La metodología utilizada fue primeramente la lectura de los manuales y otros documentos de la máquina, además de la revisión del funcionamiento del hardware del puerto de comunicación y su posible utilización para comunicar la máquina con un computador, también se programó un controlador arduino para que realice la recepción de los datos enviados por el puerto de comunicación de la maquina, que los almacene para su futura ejecución de manera automática y por ultimo se aprendió a programar en lenguaje G y M de manufactura para lo cual se programaron y simularon piezas propias. Entre los resultados obtenidos se encontró que el puerto de comunicación funciona perfectamente, se aprendió a programar en código G y M de manufactura en ambos modos que permite el software de programación, no se pudo realizar la comunicación entre el computador y el controlador arduino ya que el software no envía datos a menos que su controlador original de fabrica envíe la señal para descargarlos, sin embargo se implementó un programa en arduino que captura y almacena los datos de una comunicación serial. xii

1. CAPÍTULO 1: Introducción El Laboratorio de Automática cuenta con equipo de manufactura como lo son el torno y la fresadora, los cuales son principalmente de carácter didáctico y son una herramienta muy importante para la enseñanza en futuros cursos, ya que con ellos los estudiantes podrían aprender su funcionamiento y manejo, conocimiento valiosos considerando la gran utilización actualmente de estos equipos en procesos industriales. El principal problema que se presenta en el Laboratorio de Automática es que el equipo de la fresadora está dañado sin interfaz para su control manual ni automático, en un proyecto realizado en paralelo por otro estudiante se creará la interfaz de control manual, mientras en el presente proyecto se muestra la creación del control automático para el manejo del equipo de CNC Mill 5400 Lab-Volt®, se pretende aprovechar los recursos disponibles para los estudiantes. Pues se podrá disponer de este para futuras aplicaciones académicas. Por las razones descritas anteriormente se creará el control que permita la comunicación entre un computador y la máquina estableciendo una comunicación serial entre ambas, esto con ayuda del torno con el que cuenta el laboratorio el cual está en funcionamiento. La utilización de este tipo de máquinas en modo automático va tomando cada día más auge, dado que con esto se disminuye de gran manera el error humano y permite realizar procesos que impliquen un alto grado de precisión, una vez listo se programaran piezas con distintas formas para probar su funcionamiento y su vez aprender a programar en los códigos G y M de manufactura los cuales aunque no son de carácter universal para todas las máquinas,

1

2

son un gran punto de inicio como modelo para el manejo de futuros equipos que utilicen códigos similares.

1.1

Objetivos

1.2

Objetivo general

Instalar e implementar el software adecuado para la descarga de programas de manufactura.

1.1.2

Objetivos específicos



Verificar el funcionamiento del puerto de comunicación de la fresadora.



Aprender a programar el lenguaje G y M de manufactura.



Habilitar el software para la descarga de piezas.

2

3

1.3

Metodología El desarrollo de este proyecto constó de varias etapas detalladas a continuación: 1- Lectura y comprensión de los manuales de uso de los equipos CNC Lathe 5300 Lab-Volt® y CNC Mill 5400 Lab-Volt® incluyendo también cualquier otro material de utilidad para lograr un funcionamiento adecuado de estos equipos.

2- Revisión de del actual puerto de comunicación serial que posee la fresadora con el objetivo de investigar si se puede utilizar y adaptarlo al controlador Arduino para efectuar la comunicación entre el computador que envía las instrucciones de trabajo y la fresadora que las ejecuta.

3- Instalación del software que permita la programación de piezas de manufactura en los lenguajes G y M, así como también que estas piezas puedan ser descargadas por medio de una conexión de la computadora a la fresadora para su utilización en modo automático.

4- Lectura de los códigos G y M del torno transmitidos por el cable serial, con el objetivo de realizar una adaptación en la fresadora para poder enviar códigos propios de esta, desde un computador, con el fin de que el equipo los implemente de manera automática para la manufactura de piezas.

3

4

5- Aplicación de los códigos G y M para la programación de diseños propios donde se demuestren las distintas aplicaciones que se pueden realizar haciendo uso del modo automático.

6- Experimentación con las distintas funciones implementadas en el CNC Mill 5400 Lab-Volt®

para la demostración de su funcionamiento en modo

automático.

4

2.

CAPÍTULO 2: Desarrollo teórico

2.1

La fresadora Mill CNC 5400 Lab-Volt La fresadora o Mill 5400 CNC es una máquina herramienta de manufactura, capaz

de crear piezas con diferentes figuras, a las cuales les da forma mediante la eliminación de material de un bloque solido con el que se inicia a trabajar hasta obtener la figura deseada, esta máquina puede ser controlada manualmente o de forma automática por un computador, mediante la previa programación de las piezas a obtener mediante el control numérico computacional que se explicará más adelante, en la siguiente figura se muestra CNC mil 5400 muy similar con la que cuenta el laboratorio de control de la escuela de ingeniería eléctrica.

Figura 2.1 Fresadora 5400 CNC [8]

La fresadora posee diferentes conexiones de entrada y salida la cuales desempeñan distintas funciones, algunos de ellos son el puerto de comunicación serial este permite la 5

6

comunicación entre el ordenador y la máquina para el envío de las instrucciones que esta debe ejecutar, también cuenta con un controlador de solenoide que es el que se encarga del manejo del suplidor de aire comprimido o el equipo neumático, también cuenta con entradas y salidas TTL las cuales utilizan tensiones digitales de hasta 5 V en la cual se puede conectar un controlador nativo, en el caso del laboratorio de control en años anteriores se planeaba la conexión del brazo robótico. En el caso de las partes mecánicas de la máquina esta posee cuatro motores uno de corriente directa que controla la fresa para realizar las perforaciones en el material ya sea plástico o acrílico, los otros tres motores son los encargados del movimiento de los ejes tanto en “X”, “Y” y “Z”, estos motores son motores de paso para controlar con precisión el movimiento de los ejes ya que el controlador sabe exactamente cuantos pasos debe enviarle para moverse por cierta longitud.

2.2. Control numérico computarizado CNC La máquinas han contribuido de gran forma en el desarrollo tecnológico de hoy en día promoviendo con esto el desarrollo industrial, sin embargo requiere una gran cantidad de entrenamiento para obtener alta productividad además que en ocasiones se necesita un alto grado de destreza y exactitud que es difícil encontrar en un operario, por esta razón se dotó a las máquinas de un sistemas de control computarizado programable de forma numérica, lo que al fin de cuentas llevó a la creación de la máquina CNC. Según García et al “Se considera control numérico a todo dispositivo capaz de dirigir posicionamiento de un órgano mecánico móvil, en el que las ordenes relativas a los desplazamientos del móvil son

7

elaboradas en forma totalmente automática a partir de informaciones numéricas definidas, bien manual o por medio de un programa”[2] Entre las principales razones para introducción del control numérico en los procesos de fabricación están: •

El costo de los productos ya que con CNC se podían fabricar productos a precios suficientemente bajos.



Con CNC se pueden fabricar productos de gran calidad por la precisión de las máquinas y en grandes cantidades.



Además con CNC se pueden fabricar productos que hasta entonces eran prácticamente imposibles de realizar por un operador humano, por los niveles tan elevados de complejidad que presentaban algunas piezas. En un principio el CNC fue creado para solventar problemas de productividad en la

industria luego se dieron cuenta que también era una herramienta útil para mejorar otros factores como rapidez y precisión. Una gran diferencia de una máquina CNC con una máquina manual es que la computadora interviene en el control de los motores tanto para controlar la velocidad como la posición de de los ejes que controla, con esta gran mejora se pueden realizar movimientos que anteriormente resultaban casi imposibles para un operador realizarlos manualmente, como por ejemplo los círculos y las líneas en diagonal. En el caso de las máquinas CNC las órdenes que son dadas a estas, son indicadas mediante códigos numéricos, a continuación se muestran algunos ejemplos de códigos

8

presentes en la fresadora mill CNC 5400, tanto códigos G que define funciones de trayectoria o funciones geométricas, también códigos M que define funciones misceláneas:

Códigos G G00: Realiza la trayectoria previamente programada a la mayor velocidad posible por la máquina G01: Realiza el movimiento en línea recta a la velocidad en la que se encuentra. G02: Realiza una interpolación en sentido de las manecillas del reloj. G03: Realiza una línea de interpolación en sentido anti horario.

Códigos M M04 establece la velocidad a la que gira el motor del taladro. M05 apaga la fresadora. M07 establece el nivel de entrada en la fresadora.

En los apéndices se presenta una tabla más completa acerca de las funciones geométricas y misceláneas que controlan el trabajo que efectúa la fresadora para generación de piezas.

9

2.3. Plataforma Arduino: Aspectos generales. 2.3.1. Descripción General Se conoce como plataforma a aquella estructura ya sea de hardware o de software sobre la cual ciertas aplicaciones pueden ser ejecutadas, es por esto que se establece que Arduino es una plataforma que permite mediante sus múltiples utilidades la creación de múltiples sistemas electrónicos, la plataforma Arduino sobresale por que brinda la posibilidad de crear estructuras muy manejables y que se puedan adaptar a un gran número de aplicaciones. Los diferentes modelos Arduino creados hasta la fecha, pueden realizar una comunicación de forma efectiva y satisfactoria con el exterior ya que puede tomar la información del exterior haciendo uso de sus pines de entrada y su alta gama de sensores y a su vez puede intervenir en su entorno realizando control en distintos dispositivos como luces, actuadores y motores. En cuanto a la programación el lenguaje utilizado para programarlo y efectuar el control de las placas se basa en un lenguaje predecesor conocido como Wiring, el que también posee la cualidad de ser un entorno de programación abierta, que fue concebido principalmente para la creación y exploración de prototipos en electrónica y para el control de hardware en general, en Arduino el lenguaje utilizado para la programación de las aplicaciones es llamado Lenguaje de Programación Arduino, nombre acuñado por sus creadores.

10

El lenguaje de programación arduino presenta varias ventajas a continuación se presentan las más importantes: •

Código libre y software ampliable: el software que hace uso la estructura Arduino es de carácter libre, por esta razón los usuarios no encuentran problemas para disponer de él cuando lo requieran, además de estos la realización de las diferentes mejoras está abierto con el único requisito del manejo del lenguaje de programación C++.



Costo: La tarjeta de control de Arduino posee un costo menor al de dispositivos similares conclusión a la que se llega realizando una adecuada comparación.



Entorno de programación sencillo: El entorno de programación ha sido desarrollado de modo que usuarios de distinto nivel ya sea desde principiantes hasta personas con altos conocimientos en la materia puedan encontrar en este un medio sencillo de programación.



Multiplataforma: Esta característica crea una gran ventaja sobre otros sistemas de controladores ya que la plataforma arduino puede ser ejecutada en distintos sistemas operativos como por ejemplo: Macintosh OSX, GNU/Linux y Windows lo que difiere de muchos otros sistemas donde esto no se puede realizar.

11



Hardware Extensible: Las aplicaciones del controlador aumentan al utilizar hardware externo y al estar los planos del sistema disponibles para el usuario, este puede realizar modificaciones a la estructura principal.

2.3.2. Arduino Mega 2.3.2.1.

Características generales

El Arduino Mega es una placa de control basada en el microcontrolador ATmega2560, entre entradas y salidas posee 54 pines de los que catorce de estos brindan una salida PWM, también tiene cuatro puertos de serie por hardware o UARTS y dieciséis entradas analógicas, además su cristal oscila a 16 MHz, presenta conexión USB, entrada de corriente, conector ICSP y botón de reset. En general contiene posee todo lo necesario para hacer funcionar el microprocesador ATmega2560, conectándolo desde el computador por medio del cable USB o por alimentación externa, a continuación se presenta la imagen del Arduino Mega 2560, seguido de una tabla donde se resumen las características del Arduino Mega.

12

Figura 2.2 Placa de control Arduino Mega.[6]

Tabla 2.1Caracteristicas del Arduino Mega 2560[6] Característica

Descripción

Microcontrolador

ATmega2560

Voltaje de funcionamiento

5V

Voltaje de entrada

7-12V

Voltaje de entrada

6-20V

Pines E/S digitales

54 (14 proporcionan salida PWM)

Pines de entrada analógica

16

Intensidad por pin

40 mA

Intensidad en pin 3.3V

50 mA

13

Memoria Flash

256 KB de las cuales 8 KB las usa el gestor de arranque

SRAM

8 KB

EEPROM

4 KB

Velocidad de reloj

16 MHz

2.3.2.2.

Alimentación

El dispositivo Arduino Mega se puede alimentar de energía de dos maneras diferentes la primera de ellas es mediante la conexión a un computador utilizando el cable USB o la segunda manera es mediante la alimentación de una fuente externa ya sea por batería o que por transformador obtenga la energía directamente del tomacorriente, el origen de la alimentación es seleccionado automáticamente según se conecte. En el caso de que la placa no sea alimentada vía USB sino que se alimente por medios externos como transformador o batería, si la alimentación se realiza con transformador se este se conecta utilizando un conector macho de 2.1 mm con el centro positivo en el conector hembra de la palca destinado para este propósito, pero si se utiliza batería pueden conectarse los cables a los pines GND y VIN en los conectores de alimentación, la placa puede funcionar con alimentación externa que se encuentre entre un rango de 6 a 20 V, pero se recomienda que la alimentación esté en un rango de 7 a 12 V ya que si se utilizan más de 12 V los reguladores de tensión se pueden sobrecalentar dañando

14

el dispositivo caso contrario si se alimenta con una tensión menor a 7 V el pin de 5 V puede proporcionar tensiones menores a los 5 V. A continuación se presentan los pines de alimentación: •

VIN: este pin puede ser utilizado para alimentar la placa cuando esta siendo alimentada por una fuente externa, si se alimenta a través de una conexión de 2.1mm se puede acceder a ella por medio de este pin



5V: es la fuente de tensión estabilizada la cual se utiliza para alimentar el microcontrolador y demás componentes de la placa, esta tensión puede provenir de diferentes lugares ya sea del VIN mediante un regulador integrado en la misma placa, también puede provenir de la conexión USB u otra fuente estabilizada de 5 V.



3V3: Esta es una fuente de voltaje de de 3.3 V la cual es generada por el chip FTDI integrado en la placa y posee una corriente máxima de 50mA



GND: estos son los pines de conexión a masa o de toma a tierra

2.3.2.3.

Memoria

El ATmega2560 posee 256KB de memoria los cuales pueden ser utilizados para almacenar el código, pero 8KB de esta memoria es ocupada por el bootloader para arrancar el sistema.

15

2.3.2.4.

Entradas y salidas

El Arduino Mega2560 dispone de 54 pines digitales los cuales pueden ser utilizados tanto como entradas o como salidas dependiendo de la función que se programe para cada una de ellas ya que se pueden utilizar comandos como pinMode(), digitalWrite(), y digitalRead(), estos pines funcionan a 5 V y cada uno puede operar proporcionando o caso contrario recibiendo una corriente máxima de 40mA, algunas de las funciones especificas de ciertos pines se muestran a continuación: • Serie: son utilizadas para enviar o recibir datos a través de los puertos TTL, en el caso del Arduino Mega2560, este posee cuatro puestos serie los cuales incluyen el transmisor y el receptor y son Serie: 0 (RX) y 1 (TX), Serie 1: 19 (RX) y 18 (TX); Serie 2: 17 (RX) y 16 (TX); Serie 3: 15 (RX) y 14 (TX).

• Interrupciones externas: estos pines pueden ser configurados para realizar una interrupción a un valor de bajo o LOW(0V), en flancos de subida o bajada o en cambios de valor, estos pines son: interrupción 0, pin 2; interrupción 1, pin 3; interrupción 5, pin 18; interrupción 4, pin 19; interrupción 3, pin 20; interrupción 2, pin 21.

16

• PWM: estos pines proporcionan una salida de modulación de onda por pulso, la cual posee una resolución de 8 bits por lo tanto puede utilizar valores de 0 a 255, se utiliza a través de la función analogWrite().

2.3.2.5.

Comunicaciones

En el caso del Arduino Mega la comunicación con el computador se ve facilitada en varios aspectos ya que el microcontrolador ATmega2560 dispone de cuatro puertos de comunicación vía serie UART TTL o sea que trabaja con tensiones no mayores a los 5 V, además se dispone de una librería que permite la comunicación serial por cualquier par de pines digitales del Arduino Mega.

2.3.2.6.

Programación

Como se mencionó anteriormente, el lenguaje de programación de Arduino se basa en el lenguaje de programación Wiring, además que su entorno se basa en Processing, a continuación se muestra una imagen del entorno utilizado en la programación del Arduino.

17

Figura 2.3 Entorno de programación de Arduino [6]

2.4. Comunicación serial

La comunicación serial recibe ese nombre porque los bits se reciben o se envían uno después del otro o en forma serial, caso contrario de la comunicación en paralelo donde varios bits se transmiten simultáneamente, la comunicación serial se utiliza comúnmente para realizar comunicaciones entre el computador y sus aparatos periféricos transmitiendo

18

de manera digital los datos, la comunicación serial utiliza el protocolo RS-232 y es uno de los métodos más comúnmente utilizado en las comunicaciones. Para la comunicación serie RS-232 se utiliza el conector DB9 el cual posee nueve pines entre ellos el pin de transmisión de datos, el de recepción, el de puesta a tierra y el resto que se mencionaran más adelante y son los que se utilizan para poner en marcha el protocolo de comunicación RS-232, a continuación se presenta una imagen donde se muestran los conectores DB9 tanto el conector hembra como el conector macho.

Figura 2.4 Conectores DB9, macho y hembra. [7]

Otra versión de conectores que se utiliza en la comunicación serial RS-232 es el conector DB25 el cual como su nombre lo indica posee 25 pines, pero este conector no será relevante en este proyecto a diferencia del conector DB9 que es el conector que utiliza el computador para enviar la información de control a la fresadora para la realización de algún proyecto.

19

2.4.1. Principio de funcionamiento del puerto serial El estándar del puerto serial es un estándar antiguo sin embargo este se ha mantenido vigente debido a lo práctico que ha resultado, los computadores aun lo incorporan hoy en día, la E.I.A o Institución de normalización Americana desarrolló la norma RS-232C que es la que regula el protocolo de transmisión de datos, las señales eléctricas, el cableado y los conectores que se deben emplear en una conexión RS-232. La comunicación que se realiza a través del puerto serial es una comunicación asincrónica, es por esta razón que es necesaria la presencia de un bit adicional con el cual se puedan intercambiar la señal de pulso el transmisor y el receptor, para realizar este intercambio existen diferentes programaciones de puertos seriales: •

Bit de inicio: este funciona cuando el receptor detecta el bit de inicio por lo que sabe que la transmisión comenzó, por tanto a partir del momento en que recibe el bit de arranque comienza a leer los datos enviados en la transmisión a intervalos de tiempo definidos por la velocidad de la transmisión.



Bit de parada: este bit establece la finalización de transmisión de una palabra de datos.



Bit de paridad: este bit es utilizado para detectar errores que ocurran en la transmisión ya que se le puede dar paridad par o impar para completar la palabra de datos a enviar por lo tanto si el transmisor envía una palabra de datos par el receptor deberá recibir una palabra par de lo contrario se sabrá que ocurrió un error durante la transmisión.

20

Un concepto importante en la comunicación serial es la tasa de baudios la cual es la unidad de medición que indica el número de bits transferidos por segundo. Los baudios son mediciones de la cantidad de bits de datos en una transmisión, generalmente la tasa utilizada es de 9600 baudios, es importante conocer el tamaño del paquete que se esta enviando ya que de esto depende la tasa de baudios, la cual si se elige incorrectamente provocará errores en la transmisión. Los valores estándar para los paquetes de datos son de 5, 6, 7, y 8 bits. Por tanto, se debe elegir un valor adecuado para conseguir la correcta transferencia de la información. 2.4.2. Protocolo RS-232 Como ya se mencionó anteriormente se utiliza un conector DB-9 para realizar la conexión generalmente entre un computador y algún dispositivo periférico, el puerto serial trabaja con señales digitales de +12 V para representar el valor lógico “0” y -12 V para el valor lógico “1” esto para la entrada y salida de datos, esto representa un problema para este proyecto en especifico ya que en el se trabará con el dispositivo Arduino Mega el cual no soporta estas tensiones por lo tanto se deberá realizar una conversión de esta tensión a valores TTL que rondan los 5 V, a continuación se presentan las funciones especificas de cada uno de los 9 pines que emplea el protocolo serie RS-232 para realizar la comunicación.

21

Tabla 2.2 Distribución de pines del protocolo serial RS-232 [0] Número de Pin Señal

Descripción

Función

E/S

1

CD/DCD (Data) Carrier Detect

Detección de señal portadora

E

2

RxD

Receive Data

Recibir Datos.

E

3

TxD

Transmit Data

Transmitir Datos.

S

4

DTR

Data Terminal Ready Terminal de datos listo.

5

SG

Signal Ground

Referencia a tierra de las señales -

6

DSR

Data Set Ready

Equipo de datos listo.

E

7

RTS

Request To Send

Solicitud de envío.

S

8

CTS

Clear To Send

Libre para envío.

E

9

RI

Ring Indicator

Indicador de llamada.

E

S

En la tabla anterior se puede observar como las señales RXD, DSR, DCD y CTS son señales de entrada mientras que TDX, DTR y RST son señales de salida además la señal SG es la referencia a tierra para todas las otras señales, a continuación se presenta el uso que se le da en el protocolo RS-232 a cada señal. 2.4.3. Utilización de las señales RS-232 RXD, Recibe Datos: por este pin ingresan los datos enviados por los dispositivos externos con lo que se establece la comunicación.

22

TDX, Transmite Datos: Este pin es el encargado enviar los datos hacia el dispositivo externo con el que se esta comunicando. DSR, Conjunto de datos listo: este pin por lo general es mantenido en un valor lógico permanente de “0”. GND, Tierra de señal: este pin sirve de referencia para todos los otros pines , además es de gran importancia ya que la comunicación se da con valores positivos y negativos que esta tierra se encarga de referenciar. DTR, Terminal de datos listo: este pin ejecuta el control principal del dispositivo externo con el que se comunica el computador, es el encargado de decidir si el dispositivo externo transmite o recibe dato alguno. RST, Solicita permiso para enviar datos: este pin se utiliza generalmente para efectuar un “handshaking”

o “estrecharse la mano” entre los dispositivos que se

comunican, entonces si el dispositivo al que se le van a enviar los datos puede recibir los datos lo hace saber poniendo un valor lógico de 0 en el pin CTS. CTS, Pista libre para enviar datos: este pin acompaña al anterior para la realización del “handshaking” ya que este pin se pone en 0 cuando esta listo para la recepción de datos del computador. RI, Timbre telefónico: este pin es de unos exclusivo para cuando un Controlador lógico programable esta conectado a un modem. En síntesis los pines que portan los datos a transmitir son RXD y TXD, los demás se encargan de otras labores como el DSR que indica si el dispositivo externo se encuentra

23

encendido, el DTR que similar al anterior pero este indica si el computador esta encendido, el RTS indica si el ordenador puede recibir datos o no, también esta el CTS que indica si el aparato conectado puede recibir datos y por ultimo el DCT que detecta la presencia de datos por tanto descubre la existencia de comunicaciones.

24

CAPÍTULO 3: Control automático de la fresadora 3.1 Verificación del funcionamiento del puerto serial Para realizar la comunicación entre la computadora que posee instalado el software de control donde se programan y simulan las instrucciones y la fresadora que las ejecuta es necesario que exista una comunicación por medio del puerto serial de ambos dispositivos, por esta razón se realizó un diagnostico del puerto serial existente

verificando su

funcionamiento para poder adaptarlo al controlador Arduino que fue el que se utilizó y con el cual se realizó el control de la fresadora, por tanto se efectuaron algunas pruebas de continuidad entre la parte externa que presenta los pines de conexión para el cable de comunicación o conector macho y la parte interna del puerto la cual esta conectada por un

Figura 3.1 Parte externa del Puerto serial.

25

cable que lleva las señales hasta el controlador de la máquina que en este caso llevaba las señales hacia el controlador antiguo que ya no existe y el cual fue sustituido por el Arduino Mega2560, a continuación se muestra una imagen en la figura 3.2 de los cables que van desde la conexión externa mostrada en la figura 3.1 hasta la conexión que llega al controlador que recibe los datos mostrada en la figura 3.3, este es un cable interno el cual trasporta los datos provenientes del computador cuando se realiza una comunicación exitosa y se quieren enviar instrucciones para que la máquina CNC trabaje de forma automática y no tener que realizar las piezas manualmente.

Figura 3.2 Cable de conexión del puerto serial. El conector que entra directamente a la tarjeta que contiene el controlador, es un tipo de conector diferente al conector DB9 utilizado en la comunicación serial como se puede observar en la figura 3.3 y aunque el cable para realizar la comunicación entre la máquina y el computador es un cable especial, este también posee una distribución de los 9

26

pines del conector DB9, por lo tanto se realizaron unas pruebas de continuidad para encontrar la respectiva distribución de pines del protocolo de comunicación RS-232 y para verificar el funcionamiento de los cables que comunican desde la parte externa de la máquina hasta la parte interna donde se encuentra el controlador de la misma, luego de realizar esas pruebas se obtuvo una distribución que se observa en la figura 3.4.

Figura 3.3 Conexión interna del puerto serial al controlador.

27

1

2

3

4

5

6

7

8

9

X

Figura 3.4 Distribución de los pines en el conector interno En la figura anterior se observa que aunque no es un conector tradicional DB9 si se sigue con una distribución similar a la de estos, además a raíz de las pruebas efectuadas se logró comprobar el funcionamiento del puerto serial instalado en la máquina ya que todos los cables contaban con continuidad y los nueve pines que se requieren para realizar la conexión serial estaban habilitados y en buen estado, luego de estas pruebas se procedió a realizar transmisiones de señales de un generador de señales para corroborar el buen funcionamiento, a continuación se presenta una imagen obtenida al trasmitir por los conectores del puerto serial.

28

Figura 3.5 Transmisión de prueba por los conectores del puerto serial.

3.2 Comunicación serial entre el computador y el Arduino Mega 3.2.1

Etapa de acople de tensiones

Para lograr el objetivo descargar listas de instrucciones de la computadora hacia la fresadora para que sean ejecutadas en esta, se procedió primero a verificar el con el torno la comunicación serial entre el programa CNC Lathe Level 4, en la figura siguiente se puede observar una captura obtenida de la comunicación serial entre el computador y el torno cuando se descargó una serie de comandos para ser ejecutados en este.

29

Figura 3.6 Captura de datos enviados por el puerto serial

De esta figura se observa el tipo de datos enviados por el puerto serial estos datos son los que se desean capturar y decodificar para implementarlos en la fresadora mediante el arduino, pero como se puede observar también la comunicación serial esta posee niveles de tensión de +12V para “0” lógico y -12V para “1” lógico, estas tensiones pueden dañar el dispositivo de Arduino por lo que antes de conectarlo directamente se debe implementar una etapa de conversión de tensiones de uso común en el estándar RS-232 a tensiones TTL que van de 0V a 5V y son las adecuadas para trabajar con este dispositivo, a continuación se presenta una imagen donde se observan una transmisión serial a través del controlador Arduino con tensiones TTL y su respectivo valor lógico.

30

Figura 3.7 Transmisión serial por dispositivo Arduino.[11]

Para la conversión obligatoria de estos niveles de tensión es necesaria la utilización del circuito integrado MAX232 el cual es un elemento eléctrico especializado para la realización de esta función, debido a la imposibilidad de encontrarlo en el mercado nacional se optó por la utilización de su homólogo el NTE7142 , este dispositivo cuenta con cuatro canales de comunicación dos en cada sentido, pero en este proyecto solo se utilizará uno que va desde la computadora hacia el Arduino y otro que va del Arduino a la computadora, este dispositivo es fácil de implementar ya que para funcionar solo necesita que se le adicionen 5 capacitores como se muestran en la siguiente figura y su alimentación es de solo 5 V ya que las demás tensiones son obtenidas de los capacitores que se colocan.

31

Figura 3.8 Dispositivo MAX232 Este circuito fue implementado físicamente y probado mediante una bifurcación del cable de comunicación serial para verificar el funcionamiento del dispositivo convirtiendo las tensiones que iban de +12V a -12V a tensiones TTL de 0V a 5V, a continuación se observa la imagen obtenida al implementar el circuito NTE7142 con sus correspondientes capacitores.

32

Figura 3.9 Funcionamiento del circuito integrado NTE7142 En la imagen anterior se observa como en el canal 2 se tiene la señal del protocolo RS-232 la cual posee valores relativamente altos y los cuales también son tanto positivo como negativos ya que un “1” lógico se representa con -12V y un “0” lógico se representa con una tensión de 12V, en el caso del canal 1 el cual posee la señal luego de pasar por la etapa de transformación a tensiones TTL se observa que las tensiones no superan los 5V y además no existen valores negativos ya que el cero lógico se representa con una tensión de 0V y el uno lógico se representa con una tensión aproximada de 5 V, estas son las tensiones que necesita el dispositivo Arduino para trabaja sin que corra el riesgo de ser dañado.

33

Para el caso del la obtención de las señales que se envían para que la máquina ejecute en modo automático, se trabajó con el programa Mill Level 4 de Lab Volt® con la intensión de realizar comandos cortos para poder capturarlos realizar una decodificación de su representación enviada a través de unos y ceros por el puerto serial, por ejemplo se enviaría el comando de realizar una línea entonces este comando sería capturado y se decodificaría cual era la parte que definía que se realizara la línea y cual parte contenía los datos como los puntos finales de la línea, en el desarrollo de este proceso se intentó de varias maneras primero enviando directamente al arduino pero este no encontraba la información enviada, luego se trabajó con el programa Hyperterminal de Windows el cual puede establecer la conexión en serie entre dos computadores para la transmisión de datos, en un computador se corría el programa propio de la fresadora Lab-Volt® intentando enviar instrucciones o códigos de programación pequeños para que la otra computadora los capturara y luego proceder a decodificarlos como anteriormente se mencionó, pero se encontró el inconveniente que el programa que es en el que se escriben los códigos, se realizan las simulaciones y se envían los datos a ejecutar en la máquina por el puerto serial, no envía los datos a menos que se encuentre la máquina conectada en el otro extremo, en una primera instancia se pensó que esto obedecía a diferencias en los estados de los pines que facilitan la comunicación con el protocolo RS-232, por lo tanto se procedió a la medición de estas tensiones en el torno cuando este estaba listo para recibir datos del computador, a continuación se presentan las tensiones medidas.

34

Tabla 3.1 Medición de las tensiones en la conexión serial para el torno Número de Pin

Tensión

Valor lógico

[V] 1

-9.4

1

2

-10.2

1

3

-6.0

1

4

6.2

0

5

0

-

6

-9.4

1

7

6.4

0

8

-9.6

1

Y luego se procedió a realizar las mismas mediciones de tensión en los pines del puerto serial pero esta vez en las computadoras en las que se deseaba realizar la trasmisión por medio del programa Hyperterminal, a continuación se presentan los resultados obtenidos para este otro caso.

35

Tabla 3.2 Medición de las tensiones en la conexión serial entre dos computadores Número de Pin

Tensión

Valor lógico

[V] 1

-8.38

1

2

-8.79

1

3

-9.29

1

4

8.28

0

5

0

-

6

-8.38

1

7

9.12

0

8

-9.14

1

En esta ocasión se observó que aunque existen diferencias de tensión entre ambas mediciones los valores lógicos que estas representan se encuentran iguales por lo tanto la falta de transmisión no se debió a un problema en el protocolo RS-232 ya que este se encontraba con la bandera de que la máquina estaba lista y libre para recibir datos y aun así no los envió, esto se corroboró después en el laboratorio al utilizar un cable serial el cual estaba cortado a la mitad y conectado mediante una protoboard, lo que permitía ir desconectando pines e intentar la conexión entre la computadora y el torno, se lograron desconectar uno por uno todos los pines del protocolo RS-232 excepto los pines de transmisión, recepción y tierra y el torno todavía recibía datos y los ejecutaba sin problemas

36

y también el programa CNC Lathe Level 4 de Lab-Volt enviaba los datos a este sin ningún problema o error, por lo tanto se observó que la comunicación entre el programa que envía los códigos o las instrucciones y la máquina que las ejecutará, no será posible si no se cuenta con la máquina apropiada ya que es posible que el controlador de la máquina CNC envíe una especie de llave que permite la comunicación, es por esta razón que no se pudo lograr la transmisión entre dos computadores conectados por Hyperterminal, como la fresadora no posee el controlador original no existen los códigos que permitan iniciar la transmisión, por esta razón que en este proyecto no se realizará la captura ni decodificación de datos ya que no sería de ninguna utilidad si se mantiene este software nativo de la máquina, la recomendación más conveniente sería utilizar software desarrollado en proyectos anteriores cuyo objetivo era enviar esta información al controlador existente, solamente que ahora se enviaría al controlador Arduino, sin embargo el proyecto se continuó desde este punto previendo que en un futuro la comunicación entre algún programa y la máquina se pueda realizar, por esta razón se realizó un programa en Arduino que sea capaz de adquirir los datos que serían enviados por medio de la comunicación serial, almacenarlos y luego ejecutarlos con subrutinas y movimientos anteriormente programados para cada código.

3.2.2

Programa de recepción de datos por el puerto serial en Arduino.

Se trabajó con el Arduino Mega para el cual se creó un programa basado en las funciones principales para la comunicación serial con otros sistemas, para la

37

implementación de este código que permitiera capturar datos, almacenarlos para luego ejecutarlos, primera mente se buscó información como guías de programación para la realización de este, a continuación se presentan las principales funciones utilizadas en este programa. Lo primero que se realizó fue abrir el puerto serial en el programa. Para ello se utiliza la función beginSerial(rate); en el rate se escribió la tasa de baudios utilizada generalmente la más comúnmente usada es de 9600 baudios y esta es la que emplea el programa que se encarga de enviar los datos desde el computador, como solo se va a correr una vez se coloca en el void setup(), también se utilizó la función Serial.available() que devuelve el numero entero que hay en el buffer disponibles para utilizar que ya se han recibido por el puerto serial y Serial.read() para leer el dato. Además se trabajó con la librería EEPROM para el almacenamiento de los datos en esta memoria, el código se adjunta en los anexos. Como no se logro realizar la lectura de la llave que abre la comunicación serial ya que se intentó comunicar el software CNC Mill Level 4 con el torno y en el programa se producía un error, no se lograron capturar los código que se enviaban como se tenía planeado desde un inicio es por esta razón que el programa se realizará sin esa etapa intermedia de decodificación y traducción de los códigos que envía la maquina a los códigos habilitados para el nuevo funcionamiento de la fresadora, a continuación se presenta la tabla con las instrucciones y códigos que se podrán utilizar con el nuevo controlador.

38

Tabla 3.3 Instrucciones habilitadas para el nuevo controlador Código

Código en el

Original

Arduino en binario

Hexadecimal Función

G01

b11111111

0xFF

Líneas rectas

G02

b11111110

0xFE

Arcos a favor del reloj

G03

b11111101

0xFD

Arcos en contra del reloj

G04

b11111100

0xFC

Pausa

G25

b11111011

0xFB

Cambiar el origen

G26

b11111010

0xFA

Restaurar origen

G70

b11111001

0xF9

Pulgadas

G71

b11111000

0xF8

Milímetros

M04

b11110111

0xF7

RPM

M05

b11110110

0xF6

RPM=0

M07

b11110101

0xF5

Definir Feedrate

M30

b11110010

0xF2

detener y regresar al inicio

M31

b11110001

0xF1

detener y reiniciar

EJEX

b11101101

0xED

indica posición absoluta en x

EJEY

b11101100

0xEC

indica posición absoluta en y

EJEZ

b11101011

0xEB

indica posición absoluta en z

39

Como no se logró realizar la decodificación ya que no se puede obtener la llave de apertura del puerto serial se recomienda utilizar software desarrollado en proyectos anteriores en los cuales se trabajó igualmente con la fresadora y cuya función era enviar las instrucciones de control como igualmente lo hace el software CNC Mill Level 4 de Lab-Volt® o en su defecto crear un software nuevo que lea un archivo txt lo traduzca en los comandos de la tabla 3.3 y los envié por el puerto de comunicación para que el arduino se encargue de capturarlos y almacenarlos en la memoria EEPROM, mediante los programas prototipo que se presentan en el apéndice D, los cuales ya fueron probados mediante el envió de datos desde el programa Hyperterminal, y el arduino se encarga de leerlos y almacenarlos, como se observa en la siguiente figura donde se probó mediante un arduino uno, para leer los datos almacenados una vez leídos del puerto serial.

Figura 3.10 Datos leidos y almacenados en la memoria EEPROM

40

Para la programación de piezas mediante los lenguajes de manufactura G y M se tienen dos opciones en el programa Mill Level 4 de Lab Volt, se puede elegir entre programación Line Mode que se refiere a la programación a escribiendo a mano cada código G o M respectivo para lo que se desea lograr o el otro método de programación es por Block-Mode este es más intuitivo ya que como su nombre lo indica se van agregando bloques de comandos con la secuencia que se desee que se realicen, en la siguiente figura se presenta la pantalla donde se elige el tipo de programación que se va a utilizar entre otros parámetros importantes a la hora de realizar la pieza que se desea.

Figura 3.11 Pantalla de inicio para crear un nuevo proyecto. En la figura 3.11 se puede observar que al iniciar un proyecto se deben establecer los parámetros más importantes antes de iniciar la programación de la pieza primero como ya se mencionó anteriormente se debe escoger que tipo de programación se desea realizar si en forma lineal escribiendo los códigos o en bloques, además se deben elegir las unidades con las que se desea trabajar ya sean milímetros o pulgadas e introducir las dimensiones del

41

material en bruto con el que se va a trabajar, a continuación se presenta una imagen donde se ejemplifica un bloque solido de plástico con los que trabaja la fresadora para realizar las piezas y sus respectivas dimensiones medidas en el laboratorio. 50 mm 50 mm

12 mm

Figura 3.12 Bloque en bruto para la realización de piezas Además volviendo a la Figura 3.11 se debe establecer si la programación será realizada en coordenadas absolutas que se trabaja como si fuera un plano cartesiano normal donde el eje “X” corresponde de la esquina inferior izquierda hacia la derecha, el eje “Y” de igual modo pero hacia arriba y por ultimo el eje “Z” hacia abajo. En el modo absoluto se dan las coordenadas a las que se desea que la fresa en milímetros desde la esquina inferior izquierda tomada como referencia, el otro modo de incremental estas no toman de referencia la esquina inferior izquierda si no que el ultimo punto a donde se desplazó la fresa de este punto se genera las nuevas coordenadas.

42

Por ultimo se elige el material con el que se va a trabajar es decir el material del que esta compuesto el bloque a fresar, en el laboratorio se cuentan con bloques de acrílico y plástico. Otro aspecto a tomar en cuenta para la programación es el ancho de la broca de fresado ya que se pueden utilizar varias brocas diferentes la que contaba la máquina por el momento se obtuvo que mide aproximadamente 3mm lo que quiere decir que realiza pequeños círculos de 3mm de diámetro, que aunque parezca una pequeña longitud, esta si debe ser tomada en cuenta a la hora de diseñar piezas ya que se trabaja con bloques relativamente pequeños y medidas muy exactas, además que si no se toman en cuenta pueden interferir con otras líneas y producir un error en la figura que se desea realizar. 3.2.3

Creación de pieza mediante la programación por bloques

Para la creación de una pieza mediante la programación por bloque, primero se establecieron los parámetros necesarios con los cuales se va a trabajar en la pieza, para este caso se trabajó con milímetros e introduciendo las dimensiones de la pieza obtenidas en el laboratorio, además se eligieron las coordenadas absolutas por comodidad y como material el plástico como se observa en la siguiente figura.

43

Figura 3.13 Parámetros elegidos para la programación por bloques En la programación por bloques la creación de piezas resulta muy intuitiva ya que como se muestra en la siguiente figura, se presentan los códigos con los que se va a trabajar a un lado y se introducen las coordenadas y las velocidades de manera sencilla.

Figura 3.14 interfaz de programación por medio de bloques

44

La pieza que se programó para simular su fresado fue una figura simple, la cual se compone de un círculo y de una estrella en el centro, esto se decidió así ya que la fresadora que será controlada por Arduino no ejecutará todos los comando con los que esta venía de fabrica en un inicio, es por esta razón que se eligió una figura que se pudiera replicar una vez la máquina trabaje correctamente y que no surjan errores por programar con códigos que ya la máquina no cuente para su ejecución.

Figura 3.15 Programación de la figura por bloques. Al simular la pieza se obtiene la siguiente figura.

45

Figura 3.16 Figura obtenida de la programación por bloques.

3.2.4

Creación de pieza mediante la programación lineal

Para la programación lineal se eligen los parámetros como en caso anterior, solamente con la diferencia en el caso del editor donde se elige el Line-Mode para la programación introduciendo manualmente los códigos G y M

Figura 3.17 Parámetros para la programación lineal.

46

En este caso la programación se realiza introduciendo los códigos y los parámetros manualmente como se muestra la siguiente figura.

Figura 3.18 Programación de modo lineal. En el caso de este tipo de programación es necesario saber los códigos o tenerlos a mano para poder utilizarlos, diferente a la programación por bloques que los códigos principales aparecen a un lado por lo que es un poco más sencillo, sin embargo cuando se obtiene práctica programando se realiza de manera más rápida que la programación en bloques que es más tediosa su programación. A continuación se presenta la figura programada de manera lineal para los códigos G y M, donde se emplearon los conceptos adquiridos durante el tiempo empleado para el conocimiento de estos códigos, además se observa como solamente con líneas y arcos se pueden crear casi cualquier figura que se desee y como la fresadora va a tener disponibles estos movimientos son piezas que se pueden llegar a implementar en determinado momento, otro aspecto importante es que en la simulación de piezas programadas de

47

manera lineal corre de manera más fluida sin presentar tantos problemas como en el caso de la programación por bloques donde las simulaciones algunas veces se quedaban atascadas y cerraban el programa de improviso.

Figura 3.19 Pieza programada de manera lineal.

48

4. Capítulo 4: Conclusiones y Recomendaciones A continuación se presentan las principales conclusiones y una serie de recomendaciones a las que se llegaron al realizar presente proyecto.



La Fresadora es una máquina CNC la cual puede ser de gran utilidad en la enseñanza de procesos de control e industrialización a estudiantes de la escuela de ingeniería eléctrica, sentando las bases de procesos que los estudiantes se podrían encontrar en el mundo laboral en alguna ocasión dado al alto éxito de estas máquinas en el mundo industrial y de precisión, es por esta razón la importancia de tener habilitado y en funcionamiento estos equipos del laboratorio de control.



Se verificó el buen funcionamiento del hardware existente para el puerto serial de la fresadora, por lo tanto se establece la posibilidad de conexión con un computador el cual pueda enviar una serie de instrucciones, para que estas sean ejecutadas de manera automática por la máquina con ayuda del controlador Arduino, se corroboró que todas las conexiones que se encargan de llevar los datos en una comunicación serial o hacer el control de flujo, funcionaran, mediante pruebas de continuidad y de transmisión de señales.



El protocolo de comunicación RS-232 utiliza valores de tensión relativamente elevados y con valores negativos, lo que es incompatible con el dispositivo arduino que utiliza valores de tensión TTL, es por esto que es necesario realizar una etapa de

49

acoplamiento y de transformación de tensiones para que los datos enviados por el puerto serial de una computadora sean compatibles con un controlador Arduino y que su interacción no llegue a dañar este dispositivo, para realizar este cambio de tensiones del estándar RS-232 a tensiones TTL se utilizó el dispositivo NTE 7142 el cual es fácil de conseguir en el mercado nacional y su implementación como circuito tampoco es complicada ya que solo necesita cinco capacitores adicionales y una fuente de alimentación de 5 V, las pruebas realizadas en este dispositivo resultaron exitosas. •

La captura de los códigos G y M que son los que se trabaja para programar los movimientos a ejecutar por la fresadora presentó grandes inconvenientes el primero de ellos fue el programa CNC Mill Level 4, en el cual se programan y simulan las instrucciones que realizará la máquina posteriormente, este software no envía los datos por el puerto serial hasta que tenga la máquina especifica conectada, y aunque en un principio se pensó la posibilidad de errores en las señales de control del protocolo RS-232 luego se comprobó que no era así y que muy probablemente el controlador de la máquina, posee un tipo de llave que habilita la comunicación serial para la descarga de datos, por lo tanto no se logró la captura ni decodificación de datos enviados desde este software, se intentó dicha lectura mediante el programa Hyperterminal de Windows pero tampoco funcionó, es por esta razón que se recomienda la utilización de un software realizado en un proyecto anterior similar ya que como el controlador de la fresadora no será el original, si no que será

50

controlada por Arduino el software original tampoco funcionará ni enviará datos por el puerto serial o eventualmente la creación de un programa propio el cual se encargue de leer un archivo de formato .txt donde irían las instrucciones, para que este software las traduzca conforme a la tabla 3.3 y envie los datos listos por el puerto serial donde el arduino solo tenga que leerlos y almacenarlos para su utilización con programas similares a los aquí desarrollados. •

Se creó el software de control el cual debe capturar los datos provenientes del puerto serial, como esta transmisión no fue posible efectuarla, el software queda como un software experimental, el cual lee y almacena instrucciones provenientes del puerto serial en la memoria EEPROM para que después sean ejecutadas mediante algoritmos desarrollados en un proyecto paralelo a este, sin embargo se observó la factibilidad de trabajar con dispositivos como el Arduino para la implementación de proyectos simples que no involucren tareas muy complejas.



En el caso de la programación de piezas para que estas sean creadas en la fresadora, se observó que el programa CNC Mill Level 4 de Lab-Volt®, facilita dicha programación ya que el usuario puede elegir entre programación por bloques o programación de modo lineal, la programación por bloques es una programación un poco más asistida donde como su nombre lo indica se van programando los movimientos de la máquina bloque por bloque, introduciendo los parámetros en casillas dispuestas para estos fines, en el caso de la programación lineal es un poco más complicada ya que se deben conocer los códigos para programarlos o tenerlos a

51

mano, además de la sintaxis de cada código para evitar problemas al compilarlo, cosa que es muy difícil que ocurra con la programación en bloques, para realizar programación lineal se necesita un poco más de práctica que con la programación por bloques. Se encontraron inestabilidades en el software de programación y simulación ya que en algunas simulaciones el software enviaba un error o simulaba triángulos u otras figuras cuando se le programaba para ejecutar un círculo o un arco, las figuras no pudieron ser ejecutadas en la práctica por problemas con el motor DC que mueve la broca entre otros.

BIBLIOGRAFÍA

Libros: 1. Gairaud Abarca, M “Propuesta para la implementación de un instrumento virtual de control para la fresadora del Laboratorio de Automática”, Escuela de Ingeniería Eléctrica, Universidad de Costa Rica. 2007 2. García Higuera, A. “CIM, el computador en la automatización de la produccion”, 1era edición, Editorial de la Universidad de Castilla-La Mancha, España, 2007. 3. Lab Volt Systems. “Student Manual: Mill Level 3 “s” Series Software”, I. Edición, USA,1997. 4. Lab Volt Systems. “User Manual: Lathe Level 3 “s” Series Software”, I. Edición, USA,1997. 5. Lab Volt Systems. “User Manual: Mill Level 3 “s” Series Software”, I. Edición, USA,1997.

Páginas web:

6. Arduino. “Arduino Mega 2560” http://arduino.cc/it/Main/ArduinoBoardMega2560

52

53

7. Autor desconocido. “La comunicación serial” http://catarina.udlap.mx/u_dl_a/tales/documentos/lem/morales_h_oe/capitulo3.pdf 8. Lab-Volt. “CNC Mill System (5400)” http://www.labvolt.com/products/automation-and-robotics/simulationsoftware/5400-cnc-mill-5400 9. Meza Martinez, I. “Comunicación de tarjeta Arduino con el computador”, http://blog.jorgeivanmeza.com/2009/06/comunicacion-de-la-tarjeta-arduino-con-elcomputador/ 10. National instruments. “Comunicación serial: conceptos generales”, http://digital.ni.com/public.nsf/allkb/039001258CEF8FB686256E0F005888D1 11. Ruiz Gutiérrez, J. “Manual de programación Arduino”, http://www.entremaqueros.com/bitacoras/roshardware/wpcontent/uploads/2012/04/arduma1.pdf

54

APÉNDICES A continuación se presentan los apéndices del proyecto.

Apéndice A. Programa de pieza con la programación de modo lineal G71 M04 1200 G01 X23.0 Y25.0 G01 X23.0 Y25.0 Z-2.0 G02 X27.0 Y25.0 I25.0 J25.0 G02 X23.0 Y25.0 I25.0 J25.0 G01 Z3.0 G01 X19.0 Y25.0 G01 Z-2.0 G02 X21.0 Y25.0 I20.0 J25.0 G02 X19.0 Y25.0 I20.0 J25.0 G01 Z5.0 G01 X15.0 Y25.0 G01 Z-2.0 G02 X17.0 Y25.0 I16.0 J25.0 G02 X15.0 Y25.0 I16.0 J25.0

55

G01 Z3.0 G01 X3.0 Y25.0 G01 Z-2.0 G02 X12.0 Y27.0 I10.0 J25.0 G01 X9.0 Y25.0 G01 Z5.0 G01 X3.0 Y25.0 G01 Z-2.0 G03 X12.0 Y23.0 I10.0 J25.0 G01 X9.0 Y25.0 G01 Z5.0 G01 X29.0 Y25.0 G01 Z-2.0 G02 X31.0 Y25.0 I30.0 J25.0 G02 X29.0 Y25.0 I30.0 J25.0 G01 Z5.0 G01 X33.0 Y25.0 G01 Z-2.0 G02 X35.0 Y25.0 I34.0 J25.0 G02 X33.0 Y25.0 I34.0 J25.0

56

G01 Z5.0 G01 X38.0 Y25.0 G01 Z-2.0 G02 X48.0 Y25.0 I43.0 J25.0 G01 X48.0 Y18.0 G01 X45.0 Y22.0 G01 X43.0 Y18.0 G01 X41.0 Y22.0 G01 X38.0 Y18.0 G01 X38.0 Y25.0 G01 Z5.0 G01 X39.0 Y26.0 G01 Z-2.0 G02 X41.0 Y26.0 I40.0 J26.0 G02 X39.0 Y25.0 I40.0 J26.0 G01 Z5.0 G01 X42.0 Y26.0 G01 Z-2.0 G02 X44.0 Y26.0 I43.0 J26.0 G02 X42.0 Y25.0 I43.0 J26.0

57

G01 Z5.0 G01 X0.0 Y0.0 M05

Apéndice B. Algunos Códigos G de la fresadora Lab-Volt G00

RAPID

Se desplaza a otra posición a la mayor velocidad posible

G01

MOVE

Se desplaza a otra posición a la velocidad en que se encuentra

G02

ARC.CW

Realiza un arco en sentido horario.

G03

ARC.CCW

Realiza un arco en sentido anti horario

G04

DWELL

Realiza una pausa de un intervalo definido.

G05

ARC

Realiza un circulo completo

G25

SET.ZERO

Establece la posición actual como el nuevo origen.

G26

ABS.ZERO

Reposiciona la herramienta de corte en el origen (0,0,0)

G50

SCALE.OFF

Apaga la herramienta de escalamiento.

G51

SCALE.ON

Enciende la herramienta de escalamiento.

G70

IN.

Establece los valores en pulgadas.

G71

MM.

Establece las unidades en milímetros

G80

FINISH

Finaliza el ciclo de la subrutina

G90

ABS

Establece las coordenadas son valores absolutos.

58

G91

INCR

Incrementa los valores de las coordenadas

G94

FEED

Establece fijo el nivel de entrada de la fresa

Apéndice C. Algunos Códigos M de la fresadora Lab-Volt M04

SPEED

Establece la velocidad de la fresadora

M05

SPEED OFF

Detiene la fresadora.

M06

TOOL

Selecciona la herramienta

M07

FEED

Establece el nivel de entrada.

M08

COOL.ON

Enciende el sistema de enfriamiento

M09

COOL.OFF

Apaga el sistema de enfriamiento

M28

DO

Establece el inicio de un ciclo DO.

M29

END.DO

Establece el fin del ciclo DO.

M30

END

Define el fin del programa y regresa a home

M47

RESTART

Reinicia el programa.

M97

CALL

Realiza el llamado a una subrutina

M98

SUB

Define la subrutina a ejecutarse

M99

END.SUB

Establece el fin de una subrutina

59

Apéndice D. Programación para el puerto serial Programa de captura de datos enviados por el puerto serial #include #include

int direccion = 1000; //inicia a escribir en el espacio 4096 de la EEPROM int valor = 0;// int EEinic; int led = 13; //enciende el led para verificar que se limpio la memoria void setup() { Serial1.begin(9600);//abre el puerto 1 serial a 9600 baudios for (EEinic=1000; EEinic < 4096; EEinic++) { EEPROM.write(EEinic, 0);

//inicializando la memoria EEPROM

if(EEinic==1023){ digitalWrite(led,HIGH);

} }

}

60

void loop() {

// lee desde el puerto 1, guarda en EEPROM 1000 en adelante:

if (Serial1.available()) {

int valor = Serial1.read();

//lee datos en Puerto 1

EEPROM.write(direccion,valor);

//los escribe en la posicion indicada por la dirección

direccion = direccion+1;

if (direccion == 4096) { delay(900000000); //delay para q no se sobreescriban datos durante la prueba } } }

61

Prueba de los datos almacenados en la memoria EEPROM #include #include int direccion = 1000; //inicia a escribir en el espacio 1000 de la EEPROM int valor = 0;// int EEinic;

void setup() { Serial1.begin(9600);//abre el puerto 1 serial a 9600 baudios }

void loop() {

// lee desde el puerto 1, guarda en EEPROM 1000 en adelante:

valor = EEPROM.read(direccion); Serial1.print(direccion); Serial1.print("\t"); Serial1.println(valor);

//lee datos en Puerto 1

62

delay(50);

//los escribe en la posición indicada por la dirección

direccion = direccion+1;

if (direccion == 4096) { delay(900000000);

//si llega al final se tiene que esperar para devolver al //inicio, este delay es solo para realizar la prueba y q no se

.

//reinicie y se puedan leer los datos }

}

63

ANEXOS Hojas de datos

64

65

66

67

68

69

70

71

72

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.