Carlos Francisco Maciel Castellanos
Carlos Francisco Maciel Castellanos
Carlos Francisco Maciel Castellanos
C ENTRO DE I NVESTIGACIÓN EN
C IENCIA A PLICADA Y T ECNOLOGÍA AVANZADA
U NIDAD Q UERÉTARO
TESIS
Presenta:
I NG . C ARLOS F RANCISCO M ACIEL C ASTELLANOS
Director de tesis:
D R . R EYDEZEL T ORRES M ARTÍNEZ
La siguiente página web contiene el presente texto así como información actual refe-
rente al tema:
https://mega.co.nz/#F!pIJXDC4D!6oe2IoRQwXcasmcn1k2YiA
Impreso en Querétaro, Qro.
Compilado con LATEX
Primera Edición, diciembre 2014
Reconocimientos
Reconocimientos.
Carlos Maciel
diciembre 2014
Resumen
This thesis presents the design and construction of an open architecture al-
ternate current (AC) servo-motor using Modbus communication protocol
over an RS-485 network in Remote Terminal Unit (RTU) mode Computer
Numerical Control (CNC) for 254 devices; the hereby reported applica-
tion corresponds to the application of the control using standardized ISO
codes for turning machining operations, this with the purpose of showing
that it is possible to develop open architecture CNCs in México.
Acta de Revisión I
Cesión de Derechos II
Resumen II
Glosario VIII
Siglas X
Índice de tablas XV
1 Introducción 1
1.1 Generalidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Descripción del Problema . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 Hipótesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 Propuesta de Solución . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6 Justificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.7 Alcances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.8 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.8.1 Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . 14
1.8.2 Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . 14
1.9 Sumario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
IV
2 Estado del Arte 16
2.1 Investigación Bibliográfica . . . . . . . . . . . . . . . . . . . . . . . 17
3 Fundamentación Teórica 19
3.1 Software Libre para CNC . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.1 LinuxCNC . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.2 RepRap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.3 Grbl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1.4 CNCPro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2 Arquitectura Abierta . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.1 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.2 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3 Servo-Sistemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.1 Drivers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.2 Servomotores de Corriente Alterna . . . . . . . . . . . . . . 27
3.3.3 Encoders . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.4 Variación de Velocidad en motores de CA . . . . . . . . . . . . . . . 31
3.4.1 Control Escalar . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.4.2 Control Vectorial . . . . . . . . . . . . . . . . . . . . . . . . 34
3.5 CNC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.5.1 Estandarización . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.5.2 Nomenclatura de Ejes . . . . . . . . . . . . . . . . . . . . . 35
3.5.3 Programas para CNC . . . . . . . . . . . . . . . . . . . . . . 37
3.6 Protocolo Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.7 Operaciones de Maquinado en Torneado . . . . . . . . . . . . . . . . 48
3.7.1 Cilindrado . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.7.2 Refrentado . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.7.3 Conicidades . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.7.4 Ranurado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.7.5 Roscados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
V
4 Materiales y Métodos 55
4.1 Materiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.1.1 Servo-Sistemas SureServo . . . . . . . . . . . . . . . . . . . 56
4.1.2 Drive de CA DuraPulse GS3 y Motor MicroMax . . . . . . . 57
4.1.3 Gabinete del Control . . . . . . . . . . . . . . . . . . . . . . 58
4.1.4 Módulo de E/S Arduino . . . . . . . . . . . . . . . . . . . . 59
4.1.5 Equipo de Computo . . . . . . . . . . . . . . . . . . . . . . 62
4.2 Métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.2.1 Control de los Servo-Motores . . . . . . . . . . . . . . . . . 63
4.2.2 Control del Inversor Vectorial . . . . . . . . . . . . . . . . . 66
5 Experimentación y Resultados 68
5.1 Montaje del Hardware y Pruebas Fundamentales . . . . . . . . . . . 69
5.2 Calculo de Potencias del Sistema . . . . . . . . . . . . . . . . . . . . 71
5.3 Software para Lectura y Escritura Remota de Registros . . . . . . . . 72
5.3.1 Apertura de la Comunicación . . . . . . . . . . . . . . . . . 73
5.3.2 Lectura Múltiple de Registros . . . . . . . . . . . . . . . . . 74
5.3.3 Escritura de un Registro . . . . . . . . . . . . . . . . . . . . 74
5.3.4 Cierre de la Comunicación . . . . . . . . . . . . . . . . . . . 75
5.4 Software para Comunicación con Varios Dispositivos . . . . . . . . . 76
5.5 Intérprete de Códigos ISO . . . . . . . . . . . . . . . . . . . . . . . 77
5.5.1 Tratamiento del Documento de Texto . . . . . . . . . . . . . 77
5.5.2 Reconocimiento de Código . . . . . . . . . . . . . . . . . . . 79
5.5.3 Procesamiento Individual y Simultáneo . . . . . . . . . . . . 83
5.5.4 Tratamiento de Errores . . . . . . . . . . . . . . . . . . . . . 84
5.6 Interfaz Gráfica de Usuario (GUI) . . . . . . . . . . . . . . . . . . . 84
5.6.1 Barra de Herramientas . . . . . . . . . . . . . . . . . . . . . 85
5.6.2 Cuadro de Texto . . . . . . . . . . . . . . . . . . . . . . . . 88
5.6.3 Cuadro de Estado . . . . . . . . . . . . . . . . . . . . . . . . 89
5.6.4 Movimiento Manual . . . . . . . . . . . . . . . . . . . . . . 89
5.6.5 Barra de Estado . . . . . . . . . . . . . . . . . . . . . . . . . 89
5.7 Funciones Soportadas . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.7.1 Número de Programa . . . . . . . . . . . . . . . . . . . . . . 90
VI
5.7.2 Número de Línea (N) . . . . . . . . . . . . . . . . . . . . . . 90
5.7.3 Función preparatoria (G) . . . . . . . . . . . . . . . . . . . . 91
5.7.4 Función Auxiliar (M) . . . . . . . . . . . . . . . . . . . . . . 92
5.7.5 M30 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.7.6 Velocidad Avance (F) . . . . . . . . . . . . . . . . . . . . . . 94
5.7.7 Velocidad Husillo (S) . . . . . . . . . . . . . . . . . . . . . . 94
5.7.8 Coordenadas (X, Y, Z) . . . . . . . . . . . . . . . . . . . . . 95
5.8 Ejecución en tiempo real . . . . . . . . . . . . . . . . . . . . . . . . 95
5.9 Pruebas de Funcionamiento . . . . . . . . . . . . . . . . . . . . . . . 96
5.10 Acoplamiento del Sistema . . . . . . . . . . . . . . . . . . . . . . . 97
5.10.1 Ejes del sistema . . . . . . . . . . . . . . . . . . . . . . . . . 97
5.10.2 Instrucciones . . . . . . . . . . . . . . . . . . . . . . . . . . 98
5.10.3 Actuadores misceláneos . . . . . . . . . . . . . . . . . . . . 99
5.10.4 Entonación de servo-motores . . . . . . . . . . . . . . . . . . 99
A Código Fuente A
A.1 Estructura REGEX . . . . . . . . . . . . . . . . . . . . . . . . . . . A
B Diagramas Eléctricos B
Bibliografía
VII
Glosario
Arduino Es una plataforma de hardware libre, basada en una placa con un microcon-
trolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica
en proyectos multidisciplinarios. XIII, 21, 59–61
Hardware Se refiere a todas las partes tangibles de un sistema; sus componentes pue-
den ser eléctricos, electrónicos, electromecánicos, mecánicos, etcétera. 23–25
Interfaz Gráfica de Usuario Conocida también como GUI (del inglés Graphical User
Interface) es un conjunto de imágenes y objetos gráficos para representar la infor-
mación y acciones disponibles en el programa informático, consiste en propor-
cionar un entorno visual sencillo para permitir la comunicación con el sistema.
XIII, 14, 85, 88, 89, 96, 102
VIII
requiere poco desarrollo y maneja bloques de datos sin suponer restricciones.
XIII, XV, 44–47, 56, 57, 59–63, 66, 67, 72, 76, 77, 86, 95, 96
IX
Siglas
CN Control Numérico. 2, 3, 6, 9, 17
CNC Control Numérico Computarizado. XIII, 2, 3, 6–8, 10, 12–14, 17, 18, 21, 35,
37, 41, 42, 70, 77–81, 83–87, 89, 90, 93–99, 102, 103
X
INEGI Instituto Nacional de Estadística y Geografía. 11
XI
Índice de figuras
XII
3.17 Maquinado de conicidad en un torno. . . . . . . . . . . . . . . . . . . 49
3.18 Esquematización del proceso de ranurado en una operación de tornea-
do mediante buril de tronzado. Cortesía de Florian Schott. . . . . . . 50
3.19 Partes de una rosca. . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
XIII
5.14 Pieza desarrollada en aluminio utilizando el torno COMPACT 5 . . . 96
XIV
Índice de tablas
XV
Iniciar es la parte más importante de
cualquier trabajo.
Platón
CAPÍTULO
1
Introducción
1
1.1 Generalidades
Se puede definir al Control Numérico (CN) como un dispositivo, capaz de dirigir a uno
o varios elementos mecánicos, de tal forma que las órdenes relativas a sus desplaza-
mientos y velocidades son elaboradas, en forma automática o semiautomática a partir
de datos numéricos y simbólicos definidos por un programa, dicho método de control
ha sido adoptado popularmente en la automatización de máquinas-herramienta.
Las máquinas herramienta son maquinaria propulsada por un motor eléctrico que
realiza acciones específicas sobre materiales sólidos y rígidos tales como el metal, el
plástico o la madera. Los trabajos más comunes para los que son usadas dichas máqui-
nas incluyen: eliminación de material (tornos, fresadoras, taladros, rectificadoras, corte
por chorro de agua o láser); formado de material (estampado, plegado, incorporación);
así como para sujeción (mandril, montajes para fresado, tornillos, y bloques). Parte de
este equipo es de naturaleza técnica e incorpora tecnología de CNC o PLC formando
un sistema automatizado o semiautomatizado.
2
se dedican a fabricar productos o partes de productos (generalmente metálicos, pero
no exclusivamente) y se les considera máquinas madre porque posibilitan la fabrica-
ción de todas las demás máquinas incluyendo a ellas mismas.
3
1.2 Antecedentes
Popularmente es aceptable creer que las maquinas herramienta nacieron cuando la má-
quina comenzó de alguna manera a guiar la herramienta de manera que el humano
perdía la intervención directa en el proceso de formado y se transformaba en un super-
visor. Desde este punto de vista, se entiende que antes de la aparición de estos equipos
los procesos de formación de materiales eran meramente manuales y las herramientas
eran solamente una extensión de la mano del hombre.
4
Figura 1.1: Esbozo de un Torno de Pedal - Pértiga de Leonardo da Vinci - Siglo XV -
Códice Atlántico.
máquinas herramienta.
No fue sino hasta 1930 que el Buró Nacional del Desarrollo Económico (NBER)
de Estados Unidos hizo referencia a la definición de máquina herramienta como ”cual-
quier maquina que opere sin energía manual y que emplee una herramienta para
trabajar en el metal" [J EROME 1934]. Dicha definición, limitaba en un sentido muy
estricto a las máquinas herramientas e ignoraba los muchos otros tipos de maquinado
existentes así como los demás materiales que podían ser formados.
5
La electrónica y la informática han provocado una nueva revolución industrial. El
inicio de ésta nueva revolución hay que situarlo en 1945, cuando dos científicos de la
Universidad de Pennsilvanya, John W. Manclhy y J. Presper Ecker crearon la primera
computadora electrónica digital que realmente funcionaba; se le denominó Electro-
nic Numerical Integrator And Calculator (ENIAC) [PATTERSON 2000]. En 1948, John
Parson inicia la aplicación del CN a la máquina herramienta, con el objeto de resolver
el problema del fresado de superficies complejas tridimensionales para la aeronáutica.
En 1949 Parson contrató con el Instituto Tecnológico de Massachussets el diseño de
los servomecanismos de control para una fresadora. En 1952 funcionaba un control
experimental, aplicado a una fresadora Cincinnati. La programación utilizaba un có-
digo binario sobre cinta perforada, y la máquina ejecutaba movimientos simultáneos
coordinados sobre tres ejes.
6
1.3 Descripción del Problema
En la actualidad, la industria existe en un ambiente de grandes expectativas e incer-
tidumbre motivada por los cambios de la tecnología actual que por su velocidad de
desarrollo, no permite ser asimilada en forma adecuada de modo que es muy difícil
aprovecharla completamente. También surgen cambios rápidos en el orden económico
y político los cuales en sociedades como la nuestra (países en desarrollo) inhiben el
surgimiento de soluciones autóctonas o propias para dichos problemas.
Entre todos estos cambios es sin duda el desarrollo de las nuevas políticas mun-
diales de mercados abiertos y globalizados, encarando la libre competencia, surge la
necesidad de adecuar nuestras industrias con la finalidad de que puedan satisfacer el
reto de los próximos años. Una alternativa para afrontar estos retos reside en la au-
tomatización de las industria y dentro de este resurgir de la automatización se debe
considerar a las Máquinas de CNC, las cuales, frente a las dificultades industriales ac-
tuales (la exigencia en la precisión, los diseños complejos, la diversidad de productos,
la reducción de costos de fabricación, la exigencia en la minimización de errores y el
tiempo de entrega cada vez más reducido) presentan mejores soluciones:
7
• Aumento del tiempo de trabajo en corte por maquinaria.
De las limitantes anteriores, la que más representa una barrera para la introducción
de dichas tecnologías en la industria, es la elevada inversión inicial que debe ser reali-
zada en la adquisición de la maquinaria, aunado al costo del mantenimiento que deberá
ser realizado por personal técnico especialmente calificado. Las máquinas herramienta
CNC cuentan con una multitud de funciones pre-cargadas y distintos grados de libertad
que en algunas ocasiones pueden llegar a ser excesivos (para cierta aplicación específi-
ca); el comprador se ve obligado a adquirir maquinaria sobrada para su requerimiento
realizando una inversión superior a la necesaria y donde además se terminan desperdi-
ciando funciones incluidas en la maquina. A lo anterior, podemos agregar la creciente
tendencia al desarrollo de Sistemas de Arquitectura Cerrada presentada por los dis-
tintos proveedores de esta tecnología, la cual limita e incluso prohíbe legalmente la
adecuación o modificación de sus productos necesarias para satisfacer las necesidades
específicas de cada usuario y sólo permiten trabajar con una parte de sus desarrollos.
8
1.4 Hipótesis
Se considera que la ingeniería en México y en general, la tecnología ha alcanzado un
nivel de desarrollo que puede permitir el diseño y la construcción de un control numé-
rico (CN) de arquitectura abierta a partir de la integración de elementos disponibles en
el mercado y el diseño y construcción de otros mediante las herramientas disponibles
en los centros de investigación del Instituto Politécnico Nacional, y que en un futuro,
con base a este y otros trabajos, en mediano plazo, podrán ser desarrollados y fabrica-
dos en México.
9
1.5 Propuesta de Solución
Ante el elevado costo de adquisición y mantenimiento de un sistema de CNC tradi-
cional así como la dificultad de acoplar estos sistemas a necesidades específicas, este
trabajo presenta como propuesta de solución el desarrollo y la integración de un con-
trol numérico de arquitectura abierta; aplicado para demostrar su utilidad a un caso
particular, el control de actuadores basados en el uso de servo-motores con capacida-
des de 400 y 1000 Watts respectivamente y de variación vectorial de velocidad de hasta
3 HP mediante la utilización de software que incorpora instrucciones correspondientes
a códigos estandarizados ISO para máquinas herramienta con CNC.
10
1.6 Justificación
Según cifras de la Secretaría de Economía el sector metal-mecánico representa apro-
ximadamente 2,9 % del Producto Interno Bruto (PIB) nacional y 14 % del PIB manu-
facturero. Las empresas del sector metal-mecánico están dedicadas a la fabricación,
reparación, ensamble y transformación de metales; aunque también existen empresas
de inyección de plástico y forja, de servicio galvanizado, trabajo de lámina, estampado,
ensamblado, mecanizado, troquelado y fundición. Dentro de las empresas registradas
aproximadamente 2000 son compañías grandes (entre ellas las automotrices), mien-
tras que el resto son pequeñas y microempresas. La mayor parte de las empresas se
encuentran concentradas en Nuevo León, Jalisco, Chihuahua, San Luis Potosí, estado
de México, Querétaro y Puebla.
Según cifras del INEGI, del personal ocupado en 2011 (más de 731,000 trabaja-
dores), un porcentaje considerable labora en la industria manufacturera (2010); más
del 36 % del PIB del estado proviene de actividades secundarias en la que se encuentra
11
dicha industria con 57,847 Millones de pesos (MXP) (MDP) aportados; de la inversión
extranjera directa, Querétaro recibió 310.5 MDD en 2011 y particularmente la indus-
tria manufacturera fue el principal sector beneficiado con este recurso. Así también,
según cifras del Consejo Nacional de Ciencia y Tecnología (CONACyT) la ciudad
cuenta con el 2.5 % de los investigadores a nivel nacional, la mayoría de ellos en las
ramas de ingeniería [INEGI 2011]. Oscar Peralta, presidente de la Cámara Nacional
de la Industria de la Transformación (CANACINTRA) en Querétaro, pronostica para
años subsecuentes un crecimiento superior o por lo menos similar al de 2011 (que fue
de 8 % aproximado).
En base a las cifras y conceptos expresadas en los párrafos anteriores y ante la llega-
da continua de inversiones, consideramos correcto afirmar que es fundamental trabajar
en el desarrollo de la investigación industrial generando un círculo donde investigado-
res locales trabajen para el desarrollo de tecnología para la industria queretana y en
general para la industria nacional evitando así la continua importación de tecnología.
12
1.7 Alcances
El presente trabajo de tesis, se enfoca en desarrollar un software de control que sea
capaz de interpretar códigos ISO y traducirlos en movimientos mecánicos en una
máquina-herramienta. El sistema propuesto consistirá en un intérprete de códigos ISO
para CNC basado en arquitectura abierta que utilice servo-motores de corriente alterna
como sus actuadores; ya que el sistema estará basado en arquitectura abierta, no será
necesario el pago regalías o licencias de software privativo ayudando así a mantener el
bajo coste del mismo.
13
1.8 Objetivos
1.8.1 Objetivo General
Diseñar, construir e integrar elementos para la fabricación un CNC de arquitectura
abierta que permita la fácil re-programación y acoplamiento del mismo a problemas
específicos en la automatización de dispositivos mecatrónicos mediante la utilización
de códigos ISO para máquinas-herramienta.
2. Desarrollo del software de control de código abierto de lazo cerrado por medio
del uso de una PC, que interprete y utilice instrucciones por códigos de uso
generalizado (ISO) en las máquinas de CNC de hasta 4 ejes.
14
1.9 Sumario
En el primer capítulo de el presente, el lector podrá encontrar información introducto-
ria básica del trabajo junto con elementos justificatorios, datos económicos, alcances
y objetivos del proyecto. En el segundo capítulo se encuentra contenido el estado del
arte del proyecto desarrollado; en el tercero se enuncian los materiales utilizados así
como los métodos implementados para su utilización.
15
Personalmente, creo que es de mu-
cha ayuda y que al final hace una
diferencia benéfica, pero en sí, la li-
teratura científica es muy confusa.
Jeanne Petrek CAPÍTULO
2
Estado del Arte
16
2.1 Investigación Bibliográfica
Las máquinas herramientas han jugado un papel fundamental en el desarrollo tecnoló-
gico del mundo, tanto que se puede decir que su tasa de desarrollo gobierna directa-
mente la tasa del desarrollo industrial. En general, en los últimos treinta años las má-
quinas más comunes en la industria son las convencionales como: tornos, fresadoras,
perforadoras, rectificadoras, cepilladoras, etcétera; algunas con sus controles y disposi-
tivos a control numérico (CN) y otras con controles numéricos computarizados (CNC).
Actualmente, se exige a las empresas industriales mejoras de calidad a menores costos,
tiempos de desarrollo cada vez más cortos y atención continua a los requerimientos de
la demanda; por lo que se hace necesario desarrollar e implementar nuevas pautas de
producción y de gestión para funcionar eficazmente. Una opción para lograr los nive-
les de producción flexible que el mercado exige, es la incorporación y actualización de
tecnologías de producción flexible como: tecnologías de la información, máquinaria
con CNC , autómatas programables, Diseño Asistido por Computadora (CAD), Manu-
factura Asistida por Computadora (CAM), centros de mecanizado, etc.
17
ventajas que conlleva su implementación.
18
CAPÍTULO
3
Fundamentación Teórica
19
3.1 Software Libre para CNC
Existe gran cantidad de software de arquitectura abierta creado con la finalidad de con-
trolar y automatizar dispositivos mecatróncios, en especial a las máquinas-herramienta.
3.1.1 LinuxCNC
LinuxCNC es un software gratuito y de código abierto utilizado para el control de
máquinas-herramienta por computadora liberado bajo la licencia General Public Li-
cense (GPL) y Lesser General Public License (LGPL). El software provee al usuario
de diversas interfaces de usuario, u interprete de códigos ISO, planeamiento de movi-
miento con “Look-Ahead”, operación de electrónicos a bajo nivel, tableta de desarrollo
digital y emulador de PLC y puede ser instalado o utilizado como un Live-CD.
3.1.2 RepRap
Se autodenomina como el primer proyecto de propósito general para máquinas auto-
replicantes, es decir, para máquinas que puedan hacer otras máquinas (o partes para
20
construir una copia de sí mismas) y aunque es un proyecto de impresión 3D, el prin-
cipio básico es el mismo “posicionamiento de un útil en el espacio”, el proyecto está
disponible para sistemas operativos que soporten Java, utiliza para su funcionamiento
códigos ISO, está implementado para utilizar motores a pasos de CD controlados me-
diante un microcontrolador ATMEL o bien, un Arduino. El software puede encontrarse
en la página oficial del proyecto.
Figura 3.2: Imagen representativa del proyecto RepRap, cortesía del proyecto mismo
3.1.3 Grbl
Este proyecto es un controlador de CNC para fresado de código abierto y alto desem-
peño que se programa para correr directamente en un Arduino, carece de una interfaz
gráfica para el usuario y es en sí una base para aquel proyecto que requiera un intérprete
de códigos para CNC. Tiene un soporte limitado de funciones (códigos ISO), es decir,
sólo cuenta con las funciones básicas y sin rotaciones. El proyecto y su documentación
pueden ser encontrados en la página oficial del proyecto.
3.1.4 CNCPro
CNCPro es otro proyecto gratuito y de código abierto, se basa en un programa de
control vía PC que corre bajo DOS y utiliza el puerto paralelo como interfaz para el
control del hardware de la máquina a automatizar. Debido al spam es necesario acceder
a la página oficial del proyecto y darse de alta para poder obtener el código fuente.
21
3.2 Arquitectura Abierta
El concepto de sistema de arquitectura abierta puede ser definido como: Aquel sistema
que permite al usuario mejorar, modificar o reemplazar componentes del sistema de
manera totalmente libre, sin ninguna restricción propietaria. Típicamente la documen-
tación general o específica del proyecto o partes del mismo es liberada conjuntamente.
Las ventajas que presenta la arquitectura abierta ante los sistemas privativos tradi-
cionales, son fáciles de distinguir: la exención en los costos de licencias, la “comuni-
dad” como principal encargado de evolucionar el sistema, implementación autónoma
de personalizaciones y sobre todo la disponibilidad de la “información fuente”.
3.2.1 Software
El Software abierto es aquel cuyo código fuente está protegido y disponible bajo licen-
cias Open Source (OS), las cuales otorgan al usuario el derecho de estudiar, modificar
y distribuir el mismo de manera libre a quien sea y bajo cualquier propósito.
De acuerdo con la Open Source Initiative (OSI), la cual es una organización sin
fines de lucro ubicada en California, EUA fundada en 1998 y cuya misión consiste en
educar sobre los beneficios del código abierto y lo considera un método de desarrollo
que aprovecha el poder de revisión distribuida y transparente; prometiendo mejor cali-
dad, mayor fiabilidad, flexibilidad y menor costo.
3. Las obras derivadas pueden y deben ser distribuidas bajo la misma licencia.
4. Integridad del código fuente del autor, en el sentido que las obras derivadas de-
ben ser diferenciadas.
22
5. No discriminación contra personas o grupos.
3.2.2 Hardware
El Hardware abierto es aquel conjunto de dispositivos físicos cuyas especificaciones
tales como diagramas esquemáticos, firmwares o planos de construcción son de acceso
público. Los proyectos de Hardware abierto utilizan fundamentalmente las licencias
OS para Software "portándolasçomo licencias Open Source Hardware (OSHW).
Es preciso notar que el Hardware es diferente del Software ya que los recursos fí-
sicos se dedican a la creación de objetos físicos, de manera que personas o entidades
que produzcan objetos ("productos") bajo una licencia OSHW tienen la obligación de
23
NO declarar que dichos objetos hayan sido manufacturados, vendidos, garantizados o
autorizados en cualquier forma por el diseñador original. Además dichas personas o
entidades no deberán usar ninguna de las marcas registradas en posesión del diseñador
original.
La distribución del OSHW deberían de manera similar al OSS seguir los siguientes
criterios:
24
9. Distribución de la licencia, la misma aplicará a todos aquellos a los que sea
redistribuído el trabajo.
25
3.3 Servo-Sistemas
Se define como servo-sistema a aquél conjunto de dispositivos cuya salida es regular-
mente un elemento mecánico y tiene un sistema de control retroalimentado que permite
manejar una o más variables de interés tales como posición, velocidad, torque etcéte-
ra. Generalmente, los servo-sistemas consisten en un manejador o driver, un actuador
(Motor) y un sistema de retroalimentación (Encoder), dicho proceso se esquematiza en
la figura 3.3.
Variable a
Driver Actuador
Controlar
Encoder
Los servo-sistemas son de manera general sistemas de control en lazo cerrado que
permiten conocer y corregir el error de la variable a controlar. Para el caso particular
de un servo-motor, el drive, es el encargado de controlar las 3 fases del servomotor (U,
V y W) y crear así campos electromagnéticos en el rotor. Mientras tanto, el encoder
se encargará de retroalimentar al sistema para que el motor pueda alcanzar la posición
deseada.
3.3.1 Drivers
En un servo-sistema, se le llama "Driver” (figura 3.4) al dispositivo electrónico es-
pecializado que se utiliza para el control del servo-actuador, cumple la función de
proporcionar la energía necesaria para la alimentación de dicho dispositivo mediante
electrónica de potencia y cuenta además con una serie de sensores para el control en
26
lazo cerrado ajustando de manera continua la variable de control de manera que la
desviación de ésta no salga de un intervalo definido. Su funcionamiento, de manera
sintética y generalizada, es el siguiente:
27
Figura 3.4: Esquema de distintos drivers para servo-motor de corriente alterna marca
SureServo. Manual de Usuario SureServo - [D IRECT 2011]
28
tancias normales operan de manera simétrica y en los que la asimetría entre las fases
se considera una falla, los servo-motores aprovechan diversos niveles de “asimetría”
para lograr su cometido, ésta es la diferencia fundamental entre estos dos sistemas.
3.3.3 Encoders
Un encoder (figura 3.6 y 3.7) es un dispositivo mecánico-electrónico que permite trans-
formar movimiento mecánico (rotativo o lineal) en información útil procesable por el
sistema (posición, velocidad, desplazamiento, etc). Existen dos tipos principales:
• Absoluto: Produce a la salida un código digital único para cada posición espe-
cífica y se encuentra referenciado a un origen.
• Incremental: Produce a la salida un pulso digital cada vez que el sensor pasa
una marca del encoder, no se encuentra referenciado a un origen y en su forma
más simple sólo es capaz medir cambios entre posiciones.
29
Figura 3.6: Diversos tipos de encoder rotatorio para uso industrial. Cortesía de Automa-
tion Direct
30
3.4 Variación de Velocidad en motores de CA
La capacidad de variar la velocidad en las máquinas eléctricas (motores) con que ope-
ran diversos sectores industriales siempre ha tenido un gran peso pues es una manera
fiable para puede mantener control sobre la producción, calidad, ventilación, tempera-
tura, etc.
60 ∗ f
RP M = (3.1)
P
Conforme la industria electrónica fue tomando mayor fuerza y abaratando costos,
se hizo posible la introducción de dispositivos electrónicos capaces de incluir las ven-
tajas de un motor de CD en los confiables motores de inducción posibilitando así el
control de velocidad de los mismos; estos dispositivos son conocidos actualmente co-
mo Variadores.
31
1. Se rectifica la corriente alterna de las 3 fases.
Figura 3.8: Circuito esquemático básico para la variación de velocidad en motores de CA.
32
Dentro de los dispositivos electrónicos de variación de velocidad en motores de CA
se distinguen dos tipos principales de control, el escalar y el vectorial, a continuación
se presentan sus características.
33
3.4.2 Control Vectorial
El control vectorial, es un control orientado al flujo (Flux Oriented Control) cuya base
se encuentra en los principios de ingeniería eléctrica que enuncian que las cantida-
des de las 3 fases de las máquinas de corriente alterna (CA) trifásicas pueden ser
sintetizadas en vectores complejos que pueden representarse en sistemas coordinados
cartesianos de donde pueden obtenerse diversas relaciones físicas [N GUYEN 2008],
es decir que la suma vectorial de las corrientes del sistema trifásico del estator dará co-
mo resultado un vector de corriente (ecuación 3.2) que podrá ser utilizado para generar
una corriente inducida en el rotor (dependiente del tiempo) y para generar par.
34
3.5 CNC
3.5.1 Estandarización
La “International Organization for Standardization (ISO)” es la organización mundial
más grande encargada de crear y/o promover la utilización de normas internacionales
para los bienes, servicios y la buena práctica, su función principal es la de buscar la
estandarización de normas de productos y seguridad para las empresas u organizacio-
nes (públicas o privadas) a nivel internacional mediante consenso mundial en comités
ubicados en 164 países.
Eje Z: Coincide con la dirección del husillo principal, aquel que proporciona la
potencia de corte. El sentido positivo es la dirección en que la herramienta de corte se
35
aleja de la pieza.
De manera que para una máquina-herramienta de torneado, los ejes quedarían tal
como se indica la figura 3.11.
36
3.5.3 Programas para CNC
Un programa de CNC en la actualidad es en sí mismo un documento electrónico de
texto plano cuya extensión está definida por el fabricante (*.txt, *.har, *.cnc, etc.) y
cuyo contenido será una serie de líneas de código alfanumérico. Para que esta serie
de caracteres (programas) puedan ser interpretados de manera correcta por el control
a utilizar, se deben seguir ciertas reglas (3.5.1) que son denominadas lenguaje de pro-
gramación.
Un programa correctamente escrito debe además ser entendible por cualquier otra
persona (con el conocimiento mínimo requerido) que desee leer el programa; para esto
se recomienda que en el programa incluya tres etapas bien definidas:
Los programas de control numérico están compuestos por líneas de código de-
nominadas “bloques” (figura 3.12), los bloques se ejecutan de manera secuencial de
izquierda a derecha y de arriba hacia abajo e incluyen datos, palabras o funciones.
Figura 3.12: Estructura básica de una línea de código ISO para CNC.
37
Palabra Descripción
N Número de línea
G Función preparatoria
M Función Auxiliar
F Velocidad Avance
S Velocidad Husillo
T Herramienta
X, Y, Z Coordenada
38
Muchos fabricantes incluyen sus propias funciones preparatorios por lo que la inter-
pretación de las mismas puede variar dependiendo del control. Se dividen en 2 grupos
secuenciales cuya función se activa únicamente durante la ejecución de la misma o
modales que permanecen activas hasta que otra función las reemplace. Las funciones
preparatorias G contenidas en la norma DIN 66025 o RS274 son:
• G33: Roscado.
• G50: Escala.
39
• G72/G73: Interpolación con parada precisa.
• G74: Ir a “Home”.
40
3.5.3.4 Selección de Herramienta T
Comienza con el caracter T seguida de 4 dígitos; el primer par de dígitos indica la po-
sición de la herramienta en el almacenaje y el segundo par el número de herramienta
en una base de datos para efectos de corrección de posicionado (diferentes herramien-
tas, diferentes formas). En algunos controles, si la función miscelanea M06 no ha sido
incluida en el mismo bloque que la instrucción T, el sistema continuará el maquinado
y cambiará los parámetros cuando se realice el cambio de herramienta, esto se co-
noce como “Next Tool Ready”, (siguiente herramienta lista) que permite reducir los
tiempos muertos durante el maquinado.
... ...
N50 M06 T0201
... ...
Tabla 3.3: Ejemplo de cambio de la herramienta actual por la #02 con el juego de para-
metros #01 en la línea 50.
3.5.3.5 Coordenadas
El posicionamiento de el punto final de una herramienta en un espacio de trabajo es la
premisa básica de un CNC para lograr ésto, tal como se comentó en 3.5.2 se necesita
de una nomenclatura para los ejes de trabajo para así poder distinguirlos, de manera
que se hace uso principalmente de los caracteres X, Y y Z para denotarlos, seguido
de una serie de números que indicarán la posición a la que el control deberá enviarlos
siguiendo una trayectoria definida.
41
entre estos dos sistemas para seguir una misma trayectoria representada en la figura
3.13.
Absolutas Relativas
N10 G90 N10 G91
N20 G00 Z10 X10 N20 G00 Z10 X10
N30 G01 Z80 X10 N30 G01 Z70 X0
N40 G01 Z90 X20 N40 G01 Z10 X10
N50 G01 Z20 X20 N50 G01 Z-70 X0
N60 G01 Z10 X10 N60 G01 Z-10 X-10
Tabla 3.4: Diferencias de programación para la trayectoria referida en la figura 3.13 para
coordenadas absolutas e incrementales.
42
En el ejemplo presentado en la tabla 3.5, se puede observar, la implementación
del código CNC para la programación de la velocidad de avance, en este ejemplo
particular, indicando al control que ésta vale 10 mm
rev
.
... ...
N15 G71 G95 F10
... ...
... ...
N30 G95 S300
... ...
Tabla 3.6: Ejemplo de la programación de la velocidad del husillo S indicando 150 RPM
43
3.6 Protocolo Modbus
Modbus es un protocolo de comunicación serial que está basado en una arquitectura
maestro-esclavo, diseñada en 1979 por la empresa Modicon (ahora Schneider Electric)
se ha convertido en un estándar de comunicación industrial [M ODBUS O RG 2012], es
de utilización pública y no hay que pagar regalías o comprar licencias para implemen-
tarlo. Se encuentra en la capa 7 del modelo (Open Source Interconection) englobado
en la norma ISO 7498-1 [ISO 1996] el cual caracteriza y estandariza las funciones
internas de un sistema de comunicación fragmentandolo en capas de abstracción:
1 Lógico 0 Lógico
A − B < −0,3V olts A − B > +0,3V olts
44
El protocolo permite la interconexión (ideal) de hasta 255 dispositivos (1 Byte) en
una misma red, existen en la actualidad 3 variantes:
3. Todos los esclavos quedan en espera de una nueva petición del maestro.
Tabla 3.8: Direcciones utilizadas en las tablas de datos del protocolo Modbus según la
norma Modicon
45
De acuerdo al “MODBUS Application Protocol Specification” [M ODBUS O RG 2012]
existen diversas funciones que facilitan la comunicación entre dispositivos y depen-
diendo a las necesidades del fabricante y su producto, estarán o no implementadas
(tabla 3.9).
Código Descripción
1 Read Multiple Coils
2 Read Multiple Discrete Inputs
3 Read Multiple Holding Registers
4 Read Multiple Input Registers
5 Write Single Coil
6 Write Single Holding Register
15 Write Multiple Coils
16 Write Multiple Holding Registers
46
Sub-bloque Tamaño (bits) Descripción
Inicio 28 Periodo de silencio
Dirección 8 Dirección del dispositivo
Función 8 Código de función (3.9)
Datos 8*n Información a enviar
CRC 16 Comprobación de errores
Fin 28 Periodo de silencio
47
3.7 Operaciones de Maquinado en Torneado
3.7.1 Cilindrado
El cilindrado, es una operación de maquinado que produce como su nombre lo índica
partes cilíndricas y que tiene por objeto obtener una superficie cilíndrica de diámetro
menor a la pieza de trabajo de la que se parte; para lograr ésto, la herramienta de tra-
bajo correrá en un eje paralelo al de giro de la pieza desprendiendo cierta cantidad de
material.
3.7.2 Refrentado
El refrentado, es una operación que consiste en maquinar una de las caras de la pieza
cilíndrica con la finalidad de que esta quede perfectamente plana. Esto se realiza mo-
48
viendo la herramienta de corte en dirección normal al eje de rotación de la pieza de
trabajo. Es posible utilizar para esto la misma herramienta que en el cilindrado.
3.7.3 Conicidades
Las operaciones de conocidad son semejantes al proceso de cilindrado con la diferencia
de que en este se presenta un movimiento interpolado (diagonal) de los ejes transversal
y longitudinal de la herramienta.
49
3.7.4 Ranurado
El ranurado es un proceso de manufactura que consiste en el maquinado de muescas de
profundidad y anchura especificadas de acuerdo al requerimiento, similar al proceso
de cilindrado con la diferencia que este se realiza en una sección definida de la pieza y
puede ser frontal (3.18(a)) o lateral (3.18(b)). La herramienta necesaria para este pro-
ceso debe ser elegida con precaución, eligiendo correctamente entre herramientas de
corte recto o lateral según sea necesario.
Figura 3.18: Esquematización del proceso de ranurado en una operación de torneado me-
diante buril de tronzado. Cortesía de Florian Schott.
3.7.5 Roscados
El roscado, es una operación fundamental en los procesos de manufactura metal-
mecánicos, la necesidad de unir piezas es fácilmente solucionada aplicando este con-
cepto. En definición, si una pieza con parte cilíndrica o casi cilíndrica posee un canal
en forma de hélice continua se le llama tornillo, es decir, posee rosca exterior; en cam-
bio si esta es una superficie interna se denomina tuerca.
50
que haya de tener la pieza. Los tornillos de fijación tienen filetes triangulares, para
las roscas de movimiento son adecuadas las roscas trapezoidales, de sierra o de filetes
redondos.
1. Paso: La vuelta sencilla de una rosca alrededor del cilindro se llama espira. El
camino recorrido en dirección axial se llama paso de rosca. El sentido del filete
puede ser a la derecha o a la izquierda distinguiendo así roscas de paso derecho o
izquierdo; la más utilizada es la rosca de paso derecho, para atornillar, se deberá
girar en torno a las agujas del reloj. Existen roscas con más de un filete que son
útiles cuando con un corto giro, se quiere obtener un gran avance en dirección
axial.
51
• Triangulares Las roscas de los tornillos de fijación tienen que soportar grandes
esfuerzos y no soltarse, las roscas de perfil triangular responden a esta exigencia;
este tipo de roscas tienen un paso reducido y ya que el rozamiento entre los flan-
cos de la rosca interior y exterior es grande, provoca un efecto de auto-frenado
que evita que el tornillo se afloje con facilidad.
• Finas Tienen pasos más pequeños y profundidades de rosca menores a las roscas
métricas o Whitworth, al tener un paso más reducido, se obtiene un auto-frenado
mejor, se utilizan en piezas que estarán expuestas a sacudidas o vibraciones, exis-
te rosca fina tanto en métrica como en Whitworth. Un ejemplo de designación
es M50x2, que se refiere a una rosca métrica fina de 50 milímetros de diámetro
por 2 milímetros de paso, W99x1/4” que quiere decir una rosca fina Whitworth
de diámetro de 99 milímetros y paso de 1/4 de pulgada.
52
de 40 milímetros de diámetro, 12 milímetros de paso y de 2 filetes.
El hecho de que dos piezas puedan atornillarse de manera fluida no implica que
estas ajusten de manera correcta, para esto es necesario igualar los diámetros de los
flancos tanto en perno como en tuerca, tener un perfil simétrico y pasos iguales. Para
que los elementos roscados puedan ser intercambiables entre sí, se han fijado toleran-
cias y límites para los diámetros interior y exterior del roscado, ya que existen diversas
exigencias en cuanto a la calidad de las mismas por sus diferentes aplicaciones, se han
estandarizado distintos grados de calidad cuyo símbolo se coloca después de la desig-
nación de la rosca: Calidad Fina (f), Calidad Media (m) y Calidad Baja (g).
53
1. Refrentado y afinado de la pieza.
5. Tallado de la rosca
6. Torneado de la punta
7. Maquinado de la cabeza
8. Templado de la punta
54
La metodología histórica, a mi pa-
recer, es producto del sentido co-
mún aplicado a las circunstancias.
Samuel E. Morison
CAPÍTULO
4
Materiales y Métodos
55
4.1 Materiales
4.1.1 Servo-Sistemas SureServo
Es un sistema comercial de servo-control de la marca Automation Direct construido
desde 100 hasta 3000 kW de potencia y están disponibles con o sin freno integrado,
cuentan con control de posición, velocidad o torque. Para controlar el sistema, este
cuenta con una serie de entradas digitales que pueden ser programadas para dar dife-
rentes instrucciones al servo-sistema, entradas analógicas que permiten el control de
velocidad y torque o bien puede utilizarse comunicación vía red Modbus para dar ins-
trucciones al sistema o para leer los parámetros y sensores.
56
4.1.2 Drive de CA DuraPulse GS3 y Motor MicroMax
El drive de CA DuraPulse es un controlador (también conocido como “inversor”) de
velocidad para motores de inducción de CA de 3 fases así como el arranque, paro,
modificación de las rampas de aceleración y protección ante la sobre-carga del dispo-
sitivo. El dispositivo permite reducir la cantidad de energía consumida por el motor
suavizando el arranque y otorga al usuario la capacidad de controlar distintos paráme-
tros mediante la programación de comandos, mediante entradas digitales de control o
bien conectando el dispositivo a una red Modbus RTU.
57
4.1.3 Gabinete del Control
El gabinete utilizado para contener los elementos del control es un gabinete de acero de
la marca Schneider Electric 4.3(a) modelo NSYCRTN86300-M, las medidas elegidas
fueron de 800 de altura, 600 de ancho y 300 de profundidad expresadas en milímetros
(mm).
(a) Gabinete marca Schneider electric (b) Gabinete armado en CICATA, Queré-
taro
58
4.1.4 Módulo de E/S Arduino
Se desarrolló un módulo de entradas y salidas mediante un sistema Arduino MEGA
(4.4) y una serie de circuitos de potencia y comunicaciones. La idea central del “mó-
dulo de E/S Arduino” es crear un similar económico a módulos comerciales existen-
tes cuya función central es ser un esclavo en una red Modbus a la espera de recibir
instrucciones del maestro para que éste lea o escriba las entradas o salidas digitales
respectivamente.
Gracias a esto, el sistema será capaz de ejecutar códigos misceláneos (3.5.3.3) para
controlar elementos como una bomba de refrigerante, el control de la puerta de seguri-
dad, luces indicativas, etcétera. Algunos ejemplos de sistemas comerciales de este tipo
se representan en la figura 4.5.
Figura 4.5: Existen diversas opciones comerciales para módulos de entradas y salidas de
tipo industrial.
59
La construcción del modulo es sencilla, pues consiste únicamente en diseñar o
anexar a la tarjeta Arduino un módulo que permita al sistema manejar señales de “po-
tencia”, por su fiabilidad y facilidad de implementación se utilizaron optoacopladores,
los cuales permiten a una señal de “baja potencia” manejar una carga a la vez que las
aísla galvanicamente, un ejemplo del diseño para una señal se muestra en la figura 4.6.
Figura 4.6: Circuito esquemático general para el manejo de señales de potencia mediante
una señal digital
60
Existen librerías para Arduino que permiten al usuario programar en la tarjeta el
código necesario para que este se comporte como un esclavo en una red Modbus un
ejemplo de ella es la librería “Arduino Modbus Slave” creada por jpmzometa que pue-
de encontrarse en su sitio web que tiene implementadas las funciones 3, 6 y 16. Una
mejor aproximación a la solución del problema es presentada en la librería “ACIMUT
Monitoriza for Arduino”, puede consultarse en el sitio web del proyecto, creada por
ACIMUT, la librería permite crear en un Arduino un pequeño servidor de monitoriza-
ción Supervisión, Control y Adquisición de Datos (SCADA).
Código Modificandose y no listo, aún probando.
switch(regs[MB_CTRL]) {
case 0:
digitalWrite(ledPin, LOW);
break;
case 1:
digitalWrite(ledPin, HIGH);
break;
default: /* blink */
if (millis() - tprev > regs[MB_TIME]) {
if (LOW == digitalRead(ledPin)) {
digitalWrite(ledPin, HIGH);
/* this is how you change your holding
registers
so the master can read values from the
slave */
regs[MB_CNT]++;
} else {
digitalWrite(ledPin, LOW);
}
tprev = millis();
}
}
61
4.1.5 Equipo de Computo
El equipo de computo que puede ser utilizado para el control de los dispositivos me-
diante una red Modbus sólo hace falta que cumpla con los siguientes requisitos:
Figura 4.8: PC corriendo Windows 8 y ejecutando una versión del intérprete CNC
62
4.2 Métodos
4.2.1 Control de los Servo-Motores
Para el posicionamiento de la herramienta en un espacio cartesiano, se consideró con-
veniente utilizar el modo de control de los servo-motores denominado “control de posi-
ción”. Es posible realizar un control remoto de este dispositivo mediante la utilización
de una red Modbus que sea capaz de leer y escribir en los registros del sistema. Un
registro es un dato o una posición en un tabla o base de datos y para este caso particu-
lar, cada registro está preprogramado en el firmware del dispositivo y cumple con una
función específica en el control del sistema, es decir, existe un registro que controla
la posición, otro para la velocidad y así para cada parámetro controlable del sistema;
estos registros están enumerados en la sección de “Comunicaciones Modbus” del ma-
nual de usuario SureServo [D IRECT 2011].
Una vez que se ha configurado el parámetro P1-01 en el modo de control “Pr Con-
trol de Posición(Interno)” será posible para el usuario controlar el servomotor mediante
63
el uso de los registros P1-15 para controlar las revoluciones y P1-16 para controlar las
revoluciones 10−4 (diezmilésimas de revolución), es decir, que si se desea ordenar al
servo-control que realice un desplazamiento de 2.7 revoluciones, se deberá introducir
un valor de 2 en el parámetro P1-15 y 7000 en el parámetro P1-16.
Una vez que se han introducido los parámetros de desplazamiento en los registros
respectivos, se debe dar la orden al controlador para que realice este movimiento, para
ello es necesario configurar una de las 8 entradas digitales del sistema ubicadas en
el conector CN1 o en la tarjeta ZP-Link (figura 4.9) para que al enviarle una señal
eléctrica, el control lo interprete como la instrucción habilitadora del movimiento a la
posición programada.
Con esto, se tiene un sistema donde el usuario es capaz de exigirle al control una
serie de posiciones en un espacio de trabajo. Sin embargo, en ocasiones es necesa-
rio lograr controlar más que simplemente la posición. Para configurar la velocidad, es
posible utilizar el parámetro P2-36, este parámetro configura la velocidad de despla-
zamiento máxima (en RPM) que el control alcanzará para llegar a la posición referida
en los parámetros P1-15 y P1-16, su rango de trabajo está entre 1 y 5000 RPM.
64
1. P1-34 - Aceleración (Frente): El valor introducido en este parámetro indica el
tiempo requerido para acelerar de 0 a la velocidad introducida en P2-36 y vice-
versa cuando se ha alcanzado la posición requerida por el control. Éste parámetro
es efectivo cuando el actuador gira en sentido horario y se encuentra declarado
en milisegundos (ms).
65
4.2.2 Control del Inversor Vectorial
De igual manera que con los servo-motores, el inversor vectorial adquirido cuenta con
una tabla de registros que el usuario puede controlar a discreción mediante una red
Modbus. Primero es necesario indicarle al inversor las características del motor que
debe controlar tal como se muestra en la tabla 4.3.
Ya que este controlador será utilizado para una máquina-herramienta de tipo torno,
no es necesario que el sistema considere tener rampas de aceleración complejas, basta
con configurar los parámetros P1-01 y P1-02 que corresponden al tiempo de acelera-
ción y desaceleración 4.11 en segundos respectivamente. Una vez que los parámetros
anteriores han sido configurados de manera correcta, el control de sistema se basa en
la utilización de 3 registros: P9-26, P9-27 y P9-28, tal como se muestra en la tabla 4.5.
66
Figura 4.11: Curva de aceleraciones del Inversor
Para que el control remoto sea posible se le deberá otorgar control absoluto del
dispositivo a la red Modbus RS-485, esto se realiza mediante el parámetro P4-00, indi-
cándole el valor 05: “Frequency determined by RS-485 communication interface”.
2. P9-27: Al escribir este registro, el usuario puede indicar al control si debe iniciar
o detener el movimiento si escribe un 1 o un 0 respectivamente.
67
La lógica de la validación nos per-
mite movernos entre los límites del
dogmatismo y escepticismo.
Paul Ricoeur
CAPÍTULO
5
Experimentación y Resultados
68
5.1 Montaje del Hardware y Pruebas Fundamentales
Para la realización del montaje inicial se decidió utilizar el servo-motor de 400 W, se
utilizó la información contenida en la documentación ([D IRECT 2011]). Para la cone-
xión eléctrica del dispositivo puede utilizarse el diagrama eléctrico que se presenta en
la figura 5.1. Estos dispositivos cuentan con una tabla (pre-programada en el firmware)
de parámetros que al ser modificados permiten al usuario acceder a distintas funcio-
nes del sistema. Seguidamente se deben configurar los parámetros pertinentes para la
función que se desea el controlador y el motor realicen, para la configuración básica,
basta con acceder al parámetro P1-31 e indicarle al sistema de acuerdo a la tabla 5.1 el
tamaño del servo-motor a utilizar.
Parámetro P1-31
Valor Código de Motor
10 100 W
11 200 W
12 400 W
20 750 W
21 1 kW (Baja Inercia)
22 1 kW (Mediana Inercia)
30 2 kW
31 3 kW
69
Figura 5.1: Conexión eléctrica básica para servo-motor SureServo
Estas pruebas son la fase inicial para el control de sistema, la utilización de los con-
ceptos contenidos en la literatura así como en los manuales de usuario de los productos
permitirán proceder a la siguiente fase del proyecto, el control y comunicación remota
70
de los dispositivos enlazados en la red.
Con estos elementos, se realizaron los cálculos necesarios para conocer la cantidad
de material que pueden trabajar en operaciones de torneado.
φDiametro(mm)RP M
Vc =
1000
Para una pieza de 200mm de diámetro y una velocidad de giro de 1800RP M .
φ(200)(1800) m
Vc = = 502,6
1000 min
Considerando que:
Vc ∗ f ∗ d ∗ Ps
Pc =
6,12 ∗ 103 ∗ ρ
Donde:
Pc es la potencia de corte (kW ).
Vc es la velocidad de corte (m/min).
f es la velocidad de avance en (m/rev).
d es la profundidad de corte (mm).
Ps es la fuerza específica de corte (N/mm2 ).
ρ es la eficiencia mecánica del sistema (80 %).
71
(6,12)(103 )(ρ)(10) (6,12)(103 )(0,8)(1)
d= = = 0,20mm2
(V )(f )(Ps ) (502,6)(1)(465)
La máquina-herramienta sería capaz de trabajar una sección de 0,2mm2 de alumi-
nio, aunque esta cantidad parezca baja, note que no se toman en cuenta reducciones
mecánicas que ayudarían notablemente a disminuir la velocidad y aumentar la potencia
con lo que se lograrían áreas de trabajo mayores. Es recomendable realizar este cálculo
para la aplicación específica de la máquina-herramienta.
Haciendo uso de las funciones 3 (Read Multiple Holding Registers) y 6 (Write Sin-
gle Holding Register) se logró en primera instancia un sencillo programa en C# que
permite al usuario leer y escribir en el registro que se desee (siempre que dicho registro
no se encuentre “reservado”) valores decimales. Para la comprobación de la funciona-
lidad de la aplicación, se utilizó un simulador de PLC y un emulador de puertos seria-
les, este resultado (figura 5.3) se encuentra documentado en el proyecto SIP 20131148.
72
Figura 5.3: Lectura y escritura de registros virtuales utilizando un simulador de PLC
Para la programación del algoritmo que permitió realizar las pruebas de comuni-
cación, se observan etapas fundamentales: La creación de un objeto en un puerto de
comunicación que permitirá invocar las funciones, la implementación de la función de
lectura, la implementación de la función de escritura y finalmente la finalización de la
comunicación.
serialPort1.Open();
73
ModbusSerialMaster master =
ModbusSerialMaster.CreateRtu(serialPort1);
// ID del Esclavo
byte slaveId = 1;
74
ModbusSerialMaster master =
ModbusSerialMaster.CreateRtu(serialPort1);
// ID del Esclavo
byte slaveId = 1;
// Invocación de la función 3
master.WriteSingleRegister(slaveId, startAddress,
Convert.ToUInt16(Dato));
75
5.4 Software para Comunicación con Varios Dispositi-
vos
La comunicación con varios dispositivos es un proceso análogo a la implementación de
las funciones descritas en las secciones: 5.3.1, 5.3.2 y 5.3.3, únicamente se debe tener
en cuenta el correcto direccionamiento de la información a los dispositivos a través de
la enumeración de los esclavos mediante el “ID” único para cada uno de ellos, esto
es importante ya que recordando que la información enviada en una red Modbus RS-
485 se transmite a todos los dispositivos presentes (Sección 3.6) siendo descartada o
tomada en cuenta mediante el “Slave ID” presente en el paquete de datos. El siguiente
fragmento de código presenta un ejemplo de la implementación de la función 6 (5.3.3)
para escribir el elemento “Dato” en el “Registro1”, “Registro2” y “Registro3” de los
dispositivos con el ID 1, 2 y 3 respectivamente.
// ID de los esclavos
byte slave1 = 1;
byte slave2 = 2;
byte slave3 = 3;
76
Figura 5.4: Interfaz gráfica para el control simultaneo de 3 dispositivos vía Modbus
77
Figura 5.5: Esquema de trabajo del intérprete de códigos ISO para CNC
78
archivo = "C:/archivo.txt";
if (System.IO.File.Exists(archivo))
{
using (System.IO.StreamReader sr = System.IO.File.OpenText(archivo))
{
String input;
while ((input = sr.ReadLine()) != null)
{
richTextBox1.AppendText("\n" + input);
}
}
}
Suponiendo que existe un archivo de texto plano que contenga códigos ISO en él y
cuyo nombre fuera “archivo.txt”, con el anterior fragmento de código se podrá cargar
dicho archivo de texto en un elemento “RitchTextBox” para que posteriormente pueda
ser visualizado por el usuario y procesado por el algoritmo de reconocimiento.
Ya que un archivo que contiene códigos ISO para CNC se encuentra organizado
en bloques (figura 3.12) cuyas instrucciones deben ser ejecutadas simultáneamente y
cada bloque se encuentra contenido en una línea de texto, se decidió que el algoritmo de
búsqueda deberá primero encontrar las líneas que componen a dicho arreglo y analizar
una a la vez; esto se logra mediante la implementación del siguiente fragmento de
código; suponiendo que existe un arreglo llamado “lineas”, haciendo uso de la función
“foreach” se separará cada línea de texto del arreglo “lineas” y la pasará una a la vez a
la variable “line” para ser procesada.
foreach (string line in lineas)
{
79
\\ Reconocimiento de cada línea
}
+ El caracter que precede a este signo debe aparecer por lo menos una
vez. La colección “pe+rro” permitirá encontrar “perro”, “peerro”, “peee-
rro” y así infinitamente.
? El caracter que precede a este signo debe aparecer a lo más en una sóla
ocasión. La colección “b?alazo” permitirá encontrar “balazo” y “alazo”.
* El caracter que precede a este signo puede aparecer cualquier número
de veces incluyendo cero. La colección “0*44” permitirá encontrar “44”,
“044”, “0044” y así infinitamente.
Prácticamente cada caracter que no es una letra tiene un significado especial en las
expresiones regulares, en la construcción del algoritmo de reconocimiento de códigos
ISO para CNC además de los ya presentados, se utilizaron:
80
• Metacaracteres Representación de los caracteres no imprimibles como las ta-
bulaciones “\t” y los saltos de línea “\n”.
81
Para cada línea pueden existir 10 coincidencias distintas básicas (tabla 3.1). Ha-
ciendo uso de la función “foreach” es posible nuevamente evaluar cada una de las
coincidencias detectadas en cada línea y usando el método “StartsWith” el algoritmo
será capaz de detectar a que grupo pertenecen.
foreach (Match n in m)
{
// Coincidencia encontrada
// Número de Línea
if (n.Value.StartsWith("N")
{
// Acción a tomar
}
.
.
.
} // Siguiente Línea
case "M01":
// Parada Opcional
break;
.
82
.
.
}
}
foreach (Match n in m)
{
// Procesamiento Individual (Bloques)
} // Fin de Línea
83
}
default:
// Código Desconocido
break
}
}
84
La Interfaz Gráfica de Usuario desarrollada permite al operador familiarizarse con
los códigos ISO para control de CNC al tiempo que proporciona elementos gráficos
similares a los del control de una máquina-herramienta convencional.
85
Figura 5.7: Barra de herramientas
Figura 5.8: Cuadro de diálogo para configurar los parámetros de comunicación serial
2. Verificar + Simular: Realiza las operaciones del primer modo y además el pro-
grama de simulación (En proceso).
86
3. Verificar + Simular + Ejecutar: Realiza las operaciones del segundo modo
pero esta vez dando las ordenes de movimiento a los actuadores, es decir, se
realiza el proceso de maquinado.
87
(a) Menú Archivo (b) Menú Modo
88
5.6.3 Cuadro de Estado
La sección de la Interfaz Gráfica de Usuario denominada cuadro de estado permite al
operador conocer información sintética correspondiente a la interpretación del código,
cuenta con funciones que al detectar un código mal empleado o desconocido en la
“compilación”, mostrarán la línea de código en color rojo para que ésta pueda ser
tratada por el operador.
89
5.7 Funciones Soportadas
A pesar de que el intérprete de códigos estandarizados ISO para CNC es capaz de re-
conocer (en teoría) todas las instrucciones contenidas en la norma ISO-6983-1:2009
[ISO 2009], no todas son necesarias para las operaciones de torneado, algunas funcio-
nes están construidas como repeticiones de otras más básicas y cada fabricante anexa
aquellas que considera más útiles para su hardware propietario.
90
5.7.3 Función preparatoria (G)
Las funciones preparatorias, conocidas como códigos G son capturadas por el intér-
prete de la siguiente manera:
if (n.Value.StartsWith("G")) // Código G
{
G = Convert.ToDouble(n.Value.Remove(0, 1).Trim());
// Tratamiento para el código encontrado
}
5.7.3.1 G00
Esta función indica al control que debe realizar una interpolación lineal (movimiento
simultaneo) de todos los ejes requeridos en la operación hacia un punto con velocidad
más alta disponible en los ejes involucrados, se conoce también como posicionamiento
rápido.
5.7.3.2 G01
Esta función indica al control que debe realizar una interpolación lineal (movimiento
simultaneo) de todos los ejes requeridos en la operación hacia un punto con velocidad
relativamente baja (de maquinado) en los ejes involucrados.
5.7.3.3 G02/G03
Estas dos funciones indican al control que debe realizar una interpolación circular, es
decir, mover la herramienta creando una trayectoria de arco en sentido de las maneci-
llas del reloj o al contrario de estas respectivamente.
91
Donde X y Y son las coordenadas del punto final del arco, I y J son las coordenadas
del origen de dicho arco (en coordenadas incrementales).
5.7.3.4 G04
Al utilizar esta función, se le está indicando al control que debe realizar una pausa
antes de ejecutar la siguiente instrucción. Las unidades de “temporización” se repre-
sentan mediante la letra K seguida de una serie de dígitos numéricos que indican las
centésimas de segundo a esperar.
G04 K...
5.7.3.5 G20/G21
Esta función indica al control que las instrucciones que siguen a esta estarán dadas en
unidades imperiales o bien en unidades métricas (respectivamente), su utilización es
simple pues al indicarle una de estas instrucciones, la orden quedará activa hasta que
sea reemplazada por una del mismo grupo.
5.7.3.6 G98/99
Esta función indica al control que las instrucciones que siguen estarán dadas en uni-
dades por minuto o en unidades por revolución (respectivamente), su utilización es
simple pues al indicarle una de estas instrucciones, la orden quedará activa hasta que
sea reemplazada por una del mismo grupo.
92
5.7.4.1 M00
Este código es utilizado para detener el programa CNC cuando esta instrucción es
ejecutada la máquina detendrá el movimiento de todos los ejes, la rotación de la pieza
de trabajo y la bombas de refrigerante.
5.7.4.2 M01
Realiza la misma función que el código M00 siempre y cuando la opción de parada
opcional de la interfaz de ususario se encuentre activa.
5.7.4.3 M02
Esta instrucción da por finalizada la ejecución de un programa de CNC y corta la
energía a los actuadores del sistema.
5.7.4.4 M03/04
Este código se utiliza para dar la orden al control de encender el husillo principal en
sentido horario o antihorario respectivamente; para el caso específico de un torno, el
husillo principal es aquel que mueve la pieza de trabajo.
5.7.4.5 M05
Esta instrucción da al control la orden de detener el movimiento del husillo principal
de la máquina-herramienta.
5.7.4.6 M08
Enciende la bomba de refrigerante con la finalidad de enfriar la pieza de trabajo.
5.7.4.7 M09
Realiza la operación contraria a la instrucción M08, es decir, apaga la(s) bomba(s) de
refrigerante.
93
5.7.4.8 M13/14
Esta instrucción combina los códigos miscelaneos M03/M04 para encender el husillo
principal en uno de los dos sentidos posibles al tiempo que activa la función M08 para
encender la bomba de refrigerante.
5.7.5 M30
Este código miscelaneo realiza una función similar al M02 con la diferencia que re-
gresa al inicio del programa, facilitando así el proceso de producción.
94
5.7.8 Coordenadas (X, Y, Z)
La utilización de coordenadas es muy útil a la hora de desplazarse en un espacio de
trabajo cartesiano es por ello que son ampliamente utilizadas en dispositivos con CNC.
Para capturar posiciones, el interprete programado utiliza el código presentado:
if (n.Value.StartsWith("X")) // Valor para pasar al Spindle
{
X = Convert.ToDouble(n.Value.Remove(0, 1).Trim());
// Tratamiento para pasar la variable
}
Análogamente para cualquier otra letra que indique coordenadas. A pesar de que
existen las llamadas coordenadas absolutas y relativas, su utilización es similar, el al-
goritmo se encargará de dar a la variable el procesamiento matemático requerido para
luego pasar la orden al sistema de control.
95
5.9 Pruebas de Funcionamiento
Durante el desarrollo del proyecto, se realizaron diversas pruebas sucesivas, documen-
tadas a lo largo de este trabajo de tesis, desde el montaje y pruebas manuales del siste-
ma, la creación de utilidades para la comunicación de dispositivos en una red Modbus,
la programación de un intérprete de códigos estandarizados ISO y finalmente la con-
junción de todos estos desarrollos en una Interfaz Gráfica de Usuario. La parte que
requirió de mayor atención fue el desarrollo del intérprete de código ya que de ello
depende el correcto funcionamiento del CNC desarrollado. Para verificar la correcta
interpretación de los códigos estandarizados ISO para operaciones de torneado con
CNC se realizó la comparación de la interpretación del mismo con un control comer-
cial de la marca FANUC implementado en un torno “COMPACT 5 CNC” de la marca
EMCO en las instalaciones de la Universidad Tecnológica del Estado de Querétaro
(UTEQ).
96
...
97
// Las siguientes variables determinan las literales posibles para
su reconocimiento por parte del intérprete, aquí se puede
modificar la nomenclatura de los ejes.
public double N, G, X, Y, Z, F, S, M;
1. Reconocimiento de líneas.
5.10.2 Instrucciones
Si el usuario desea agregar instrucciones extras a las ya incluidas en la base de datos
del sistema de CNC, se le recomienda tomar en cuenta las recomendaciones incluídas
en la normaISO-6983-1:2009 [ISO 2009]. El procedimiento para agregar funciones
es análogo al de la adición de ejes de trabajo, con la diferencia de que para el caso
de funciones, el sistema realiza una comparación extra, es decir, primero compara la
primera letra del código para discriminar la categoría a la que pertenece, luego con la
información numérica contenida después de la letra, realiza la busqueda en una base
98
de datos pre-cargada con la información necesaria. Es aquí donde el usuario podrá
agregar, modificar o eliminar las funciones reconocibles por el programa de CNC y las
operaciones que éste debe realizar al encontrar coincidencias.
\\ El usuario puede agregar instrucciones mediante la inclusión de
los datos numéricos consecutivos a la literal deseada que serán
discriminados por la instrucción "SWITCH"
if (n.Value.StartsWith("M"))
{
switch (n.Value)
{
case "M00":
// Acciones a ejecutar
break;
...
}
...
}
99
1. Manual: Permite al usuario introducir los valores de las ganancias del controla-
dor PID.
Para conocer más a detalle los modos de control y la manera en que las ganancias se
ajustan, es posible consultar el manual de usuario de los servo-motores[D IRECT 2011]
utilizados en éste prototipo.
———————————————————————-
100
Éste no es el final. Ni siquiera es el
principio del final. Pero es, quizás,
el final del principio.
Winston Churchill
CAPÍTULO
6
Conclusiones y
Recomendaciones
101
Los resultados obtenidos tras la realización del presente trabajo de tesis permiten
concluir que la aplicación del proyecto es factible en maquinas-herramienta que fabri-
quen piezas con tolerancias correspondientes a calidades dimensionales ISO 8. El CNC
por sí mismo es un prototipo didáctico utilizable con propósitos de formar recursos
humanos con habilidades en operación y mantenimiento de sistemas que incorporen
servo-motores y sus accesorios de control. Al ser el sistema una máquina-herramienta
de propósito específico, es posible adaptar la misma a necesidades propias.
Los dispositivos utilizados para la construcción del prototipo presentado son capa-
ces de realizar operaciones de maquinado metal-mecánico en velocidades convencio-
nales de manera similar a maquinaria disponible comercialmente, es posible adaptar el
102
sistema propuesto a necesidades específicas modificando el hardware aquí propuesto,
las características finales del a máquina-herramienta serán dadas por las necesidades
de las operaciones de maquinado que se requieran realizar.
103
APÉNDICE
A
Código Fuente
foreach (Match n in m)
{
//Reconocimiento de Cada Línea
if (n.Value.StartsWith("X")) // Valor para mover el eje
X
{
X = Convert.ToDouble(n.Value.Remove(0, 1).Trim());
richTextBox2.AppendText("X" + X);
}
...
}
}
A
APÉNDICE
B
Diagramas Eléctricos
B
Figura B.2: Diagrama eléctrico de conexión de los manejadores
C
APÉNDICE
C
Automation Direct Fair-Use
To: Carlos Maciel (IPN)
Dear Carlos,
This letter is to advise you that AutomationDirect.com respects the "Fair Use” of our
copyrighted works. "Fair Useïs a limited legal license to use others’work, whether they
approve or not. Any time you use our copyrighted works in a non-commercial (non-
profit) setting, we expect you to give us credit for the work. Any time you consider
using our copyrighted works in a commercial (for profit) setting, we expect you to
ask us for permission to use those works, as well as give us credit for the work. Your
communication of 2/12/2014 satisfies that request. None of this means we resign any of
our rights as the originator of the works. You have our permission to use any graphics
or textual content from our sites, manuals or catalog in any printed or online project
you may create or distribute, pursuant to the above conditions.
D
Bibliografía
[ISO 1996] ISO (1996). Information technology - Open systems Interconection - Ba-
sic Reference Model. The Basic Model. 44
[ISO 2009] ISO (2009). Automation systems and Integration - Numerical Control of
Machines - Program format and definitions of address words. Part 1. Data format
for positioning, line motion and contouring control systems. 35, 90, 98
[L I 2004] Li, Bin y Zhou, Y.-f. y. T. X.-q. (2004). A researh on open CNC system ba-
sed on architecture/component software reuse technology. 55, 73–85, issn = 0166–
3615. 17
[N GUYEN 2013] Nguyen, D. (2013). The Bastards Book of Regular Expressions: Fin-
ding Patterns in Everyday Text: LeanPub. Sitio Web. 80
[NM ODBUS 2014] NModbus (2014). Librería NModbus. Dirección Web. 73, 74
[TI 1998] TI (1998). Field Orientated Control of 3-Phase AC-Motors. Texas Instru-
ments Europe. 34