lunes, 24 de enero de 2011

Los servomotores


La principal ventaja de un servomotor, sobre los motores tradicionales de corriente continua o alterna, es la incorporación en los mismos, de un sistema de retroalimentación. Esta información puede ser utilizada para detectar un movimiento no deseado, o para garantizar la exactitud del movimiento ordenado. Un sistema de control de motor que responde a este diseño, es conocido como sistema de “Lazo Cerrado” (Closed Loop). La retroalimentación es generalmente provista por un codificador de algún tipo.

Además, los motores servo, tienen un ciclo de vida más prolongado, que los típicos motores síncronos o asíncronos, a la hora de soportar el constante cambio de velocidad. Los servomotores también pueden actuar como un freno, por derivación de la electricidad generada, a partir del propio motor.

Un Servomotor podría definirse genéricamente, como un motor utilizado para obtener una salida precisa y exacta en función del tiempo. Dicha salida esta expresada habitualmente en términos de posición, velocidad y/o torque.

Es así que los motores servo están ganando un lugar de privilegio en muy diversos ámbitos de la industria, en los cuales se valora sus extraordinarios desempeños, cuando se busca implementar soluciones de automación de gran confiabilidad. Se emplean en la potenciación de máquinas herramientas CNC, así como también en la automatización de plantas industriales y robótica en general.


Servomotores brushless de iman permanente

Si bien existen diferentes tecnologías de motores, que pueden ser utilizadas como servomotor, este artículo tratara sobre los servomotores brushless a imán permanente. Estos incorporan los más avanzados y eficientes adelantos en esta tecnología y son la base de apoyo de todo buen sistema de control CNC profesional.

La aplicación industrial de dichos motores está desarrollándose significativamente por múltiples razones, entre las que podemos mencionar: nuevos y más potentes componentes magnéticos para los motores como los imanes de tierras raras, reducción de costo de los motores y los equipos electrónicos necesarios para el control de los mismos, incorporación en dichos equipos electrónicos de nuevas funciones, para un control preciso y confiable del movimiento, que permiten utilizarlos eficientemente e incorporar nuevas áreas a su dominio de aplicación.

Esencialmente un motor brushless a imán permanente es una maquina sincrónica con la frecuencia de alimentación, capaz de desarrollar altos torques (hasta 3 o 4 veces su torque nominal), en forma transitoria, para oponerse a todo esfuerzo que trate de sacarla de sincronismo. La denominación brushless deviene del hecho de que no posee escobillas y es una forma de diferenciarlo de sus predecesores, los servomotores a imán permanente alimentados con corriente continua. Estos motores está alimentados con corriente alterna y en comparación con los motores asíncronos, a “jaula de ardillas” (que erogan el mismo torque / velocidad en su eje), la inercia de un servomotor brushless es sustancialmente menor. Ambas características: sobre-torques de importancia e inercias reducidas son características apreciadas y útiles para el control del movimiento, pues permiten rápidas aceleraciones y desaceleraciones, así como control preciso de posición en altas velocidades.


Constructivamente el servomotor brushless posee un estator parecido al de un motor de jaula con un núcleo laminado y un bobinado trifásico uniformemente distribuido. El rotor está constituido por un grupo de imanes permanentes fijados en el eje de rotación. La forma de los rotores a imanes varía de acuerdo al diseño y puede clasificarse en cilíndricos o de polos salientes. La fijación de los imanes al rotor ha sido uno de los puntos críticos en la construcción de estos motores debido a las altas fuerzas centrifugas a las que se encuentran sometidos durante los procesos de aceleración y frenado. Actualmente se combinan fijaciones mecánicas de diferentes tipos, con sus elementos pegados utilizando adhesivos especiales (atadura con fibra de vidrio, chavetado con diferentes materiales, etc.).



Haciendo circular corriente alterna en las fases del bobinado del estator producimos un campo magnético rotante en el entrehierro del motor. Si en cada instante, el campo magnético generado en el estator, intersecta con el ángulo correcto al campo magnético producido por los imanes del rotor, generamos torque para lograr el movimiento del motor y la carga acoplada a él.


La utilización de un dispositivo electrónico denominado servodrive, para alimentar al estator con la tensión y frecuencia correcta, permite en cada instante generar un campo magnético estatórico de magnitud y posición correctamente alineada, con el campo magnético de rotor. De esta forma obtenemos el torque necesario para mantener la velocidad y posición deseada del eje del motor. El proceso implica conocer en todo instante la posición del rotor, para lo cual se equipan los servomotores con dispositivos tales como resolvers, encoders u otros. Los mismos rotan solidariamente con el eje del servomotor e informan al servodrive la posición del rotor. Dichos dispositivos de realimentación de posición se diferencian en la robustez, resolución, capacidad de retener la información de posición ante cortes de alimentación y número de conexiones necesarias entre otras.

Por ejemplo en una servo-máquina de tracción directa, que rota normalmente a una velocidad nominal de algunas centenas de rpm, deberemos seleccionar dispositivos con un alto número de pulsos por revolución, a fin de tener control de torque, durante la partida y parada.

Actualmente los servodrives operan por técnicas de modulación de ancho de pulso o Pulse Width Modulation (PWM) con configuraciones de hardware (básicamente en la parte de potencia) parecidas a los inversores para el control de motores asincrónicos. De hecho existen en el mercado drives que permiten controlar ambos tipos de motores. Debe puntualizarse, que para la operación normal de un servomotor necesitamos un servodrive. El motor no puede ser operado directamente de la red de suministro.

El análisis del circuito equivalente simple de un servomotor brushless a iman, nos permite obtener las ecuaciones básicas de su comportamiento:

Torque en el eje:= Kt * Corriente, o sea que el torque en el eje es proporcional a la corriente del estator del servomotor. “Kt” es una constante para cada motor, expresada en unidades de torque dividido por la corriente (por ejemplo: NM / AMP). Conociendo el torque que deben erogar el motor, esta ecuación permite seleccionar el servodrive necesario en función de la corriente nominal y pico del mismo.

Tension de alimentación = Ke * Velocidad del motor, válida para resistencias de estator bajas. Expresa que la tensión de alimentación del estator es función de la velocidad de rotación. “Ke” es una constante para cada motor, expresada en unidades de tensión eléctrica, dividido la velocidad (por ejemplo: VOLT / RPM).

La selección de un servomotor para una determinada aplicación requiere conocer el torque de pico necesario para acelerar y frenar la carga impulsada por el motor, así como el torque eficaz requerido por la aplicación. Básicamente, el conjunto servodrive-servomotor deben estar en condiciones de satisfacer los requerimientos de torque pico solicitados por el sistema y el motor debe soportar sin deterioro, el régimen térmico impuesto, por manejar el torque eficaz requerido por la aplicación.


La unidad Servo Drive

Un unidad de servo es un tipo especial de amplificador electrónico, utilizado para suministrar energía eléctrica a un servomotor conectado al mismo. Este dispositivo efectúa un seguimiento de las señales de retorno del motor y ajusta continuamente para corregir las eventuales desviaciones respecto del comportamiento esperado.


Función

La unidad de servo recibe la señal de comando de un sistema de control, amplifica la señal y transmite corriente eléctrica al servo motor, con el fin de producir el movimiento proporcional a la señal de mando. Normalmente, la señal de mando representa una velocidad deseada, pero también puede representar un torque deseado o posición. Un sensor de velocidad conectado al motor servo informa la velocidad real del motor a la unidad de servo.  La unidad de servo a continuación, compara la velocidad real del motor con la velocidad esperada del motor al mando.  A continuación, altera la frecuencia de voltaje enviada al motor, con el fin de corregir cualquier error en la velocidad. 

En un sistema bien configurado, el servo motor gira a una velocidad, muy proxima a la señal de velocidad recibida desde la unidad de servo y del sistema de control.  Varios parámetros, como la rigidez (también conocido como ganancia proporcional), la amortiguación (también conocido como ganancia derivada), y la ganancia de retroalimentación, se pueden ajustar para lograr este rendimiento deseado. El proceso de ajuste de estos parámetros se llama Tuning o Puesta a Punto.
Aunque muchos servomotores necesitan una unidad específica, para la marca del motor o modelo en particular, existen fabricantes que ofrecen sistemas compatibles, con motores brushless no estandarizados, permitiendo de esta forma, que una gran variedad de servomotores distintos puedan estar comandados por un único sistema de impulsión.


Elementos de un Servo Drive

En la imagen que se muestra a continuación se pueden individualizar los elementos básicos, presentes en cualquier servodrive. Hasta aquí se ha comentado aspectos relativos a su principio de funcionamiento y particularidades de su estado de desarrollo presente, pero resulta también interesante ver como se hallan materializados muchos de estos conceptos en el producto real.




OMRON Accurax G5 EtherCAT

Display

Muchos servos incluyen una pantalla LCD o Display, para informar del estado del servo así como posibles anomalías.


Entrada de potencia:

La entrada de potencia (desde la red eléctrica, previo paso por filtros si fuera necesario para cumplir con EMC), aporta la energía necesaria al Drive, para que posteriormente rectificada y troceada, sea entregada al motor. Normalmente existen versiones del servo para suministro monofásico y trifásico. La frontera entre sistemas monofásicos y trifásicos acostumbra a situarse alrededor de 1KW-1.5 KW. Este aspecto dependerá del fabricante.
La mayoría de los servosistemas tendrán a su vez una entrada adicional de control, que alimentará la lógica del servodrive. Esta entrada acostumbra a ser de 230 VAC (para sistemas monofásicos) ó 24 V (para sistemas trifásicos).

La segregación entre la alimentación del DC BUS y el Control, permite por ejemplo deshabilitar toda la potencia del DC BUS, manteniendo el control (por ejemplo, para que el servo no pierda la realimentación de posición del encoder).


Salida de Potencia

La salida de potencia es la que alimenta al motor, es por donde la onda PWM de alta potencia, será conducida para hacer girar el motor según velocidad y par comandados.
Por tratarse la señal PWM de una señal de alta frecuencia y alta potencia, existe la posibilidad de que ondas radiadas afecten a otros equipos adyacentes. Para evitar este problema deben seguirse las instrucciones de montaje e instalación del fabricante del equipo. Un mal apantallamiento o aislamiento de estos cables (por ejemplo. si se los fabrica uno mismo, o se realizan empalmes) es la causa de numerosos problemas de ruido, de difícil diagnosis y en ocasiones de difícil solución.

Es habitual en la mayoría de los servos, que se permita el acceso al DC BUS mediante bornas. De este modo se puede controlar el nivel del DC BUS, ya sea con resistencias de frenado (quemamos el exceso de energía al regenerar) o mediante regeneración a la red eléctrica (se acostumbra a utilizar en sistemas de muy alta potencia, debido al incremento en los costos).

El servo de la imagen anterior, permite al acceso a dichas bornas del DC BUS, pero para aplicaciones donde existan muchos ejes y en los que se produzca regeneración y consumo simultáneo por varios ejes. Existe la posibilidad de cablear los DC BUS de varios servos, de este modo en teoría la energía regenerada de un eje puede ser aprovechada por otro. La teoría es muy bonita, pero en la práctica no son tantas las aplicaciones en las que los ejes trabajen de un modo en la que el aprovechamiento de la regeneración sea rentable.


Comunicaciones Serie

Pese a que hoy en día la mayoría de los servos presentan versiones con Buses de Motion Control Digitales, lo cierto es que existen muchas aplicaciones que se siguen solucionando con consignas analógicas o de pulsos. Para poder configurar dichos servos se acostumbra a dotar al servo de un puerto de comunicaciones serie. En el pasado estos solían ser RS-232 o 422, pero en la actualidad muchos servos de nueva generación vienen provistos de puertos serie USB, que permiten una comunicación mucho más rápida con el equipo.
Incluso los servos provistos de protocolo de comunicaciones para Motion, acostumbran a conservar el puerto serie/USB, es siempre una puerta de acceso adicional cuando por algún motivo es necesario.


Motion BUS

Para sistemas multi-ejes, en los que se requiere acceso a parámetros de control de función de muchos ejes, en las que varios ejes funcionan sincronizados o coordinados, se acostumbra a utilizar sistemas de Motion BUS digitales.

Existen muchos buses, ya sean propietarios del fabricante o abiertos mediante organizaciones. Cada fabricante intentará convencernos de las bondades de su BUS, lo cierto es que en la actualidad nos encontramos en un momento de transición entre buses, con un ancho de banda “ajustado”, para controlar muchos ejes (10-20 Mbps), a  protocolos basados en el medio físico Ethernet. En la actualidad el número de ejes por máquina está aumentando, así como el número de ejes, que es capaz de controlar un Motion Controller.

Son estas funciones adicionales, como la automatización de cambios y los beneficios para el usuario final, que estas generan, las razones que justificarán pagar un precio mayor por una máquina.


Seguridad Integrada

La normativa de seguridad europea es muy estricta y cada vez lo va a ser más. Ciertamente las partes móviles de una máquina son un factor de peligro, es por esto que desde hace algunos años están apareciendo servosistemas con funciones de seguridad integrada. El motivo es claro: aumentan la seguridad, ya que el dispositivo a cargo de la gestión de las medidas de seguridad está integrada en la electrónica del drive, reduciéndose así el tiempo de reacción. Por otro lado, facilitan el proceso de certificación de seguridad de la máquina.


Entradas y salidas I/O

Todos los servos necesitan interactuar con su entorno, en función de la naturaleza del servo y de la disponibilidad de un bus de control de movimiento, los servos vendrán provistos de más o menos entradas.

Entradas / Salidas (I/O’s) típicas en un servo son:

-Enable / Run: Habilitación de la etapa de salida del DC BUS.

-Alarm Reset: En caso de fallo, se requerirá de una entrada para borrar la alarma.

-Positive Over Travel (POT): Los límites de carrera positivos indican al servo (por ejemplo mediante un sensor inductivo), que ha alcanzado una posición física, que no debe de ser superada.

-Negative Over Travel (NOT): Análogamente al POT, existen posiciones en sentido negativo de movimiento, que no deben de ser superadas.

-Touch Probe (o captura de registro): Se trata de una entrada ultra rápida que permite al servo memorizar la posición del eje, cuando dicha entrada es activada.


Adicionalmente el servo acostumbrará a tener como mínimo las siguientes salidas:

-Alarma: indicará que el servo se encuentra en estado de fallo.

-Ready: todo marcha bien.

-Brake: El servo está operando un motor con freno eléctrico.

Existen muchas más otras I/O’s configurables, que estarán presentes o no en función del servo y fabricante: por ejemplo salidas configurables en función del estado del servo: velocidad, posición, etc., entradas adicionales de registro, cambios de ganancias, etc.


Realimentación del encoder del motor

Esta entrada es necesaria para un control preciso del motor, es imprescindible para poder cerrar el lazo de velocidad y en la mayoría de las aplicaciones también se utilizará para cerrar el lazo de posición.


Realimentación Encoder Auxiliar

La realimentación del lazo de velocidad nos vendrá dada por el encoder del motor, pero en ocasiones resulta útil poder cerrar el lazo de posición con otro encoder adicional: por ejemplo cuando la mecánica de la máquina es francamente mala, pueden existir notables holguras entre la posición del eje del motor y la posición de la carga que queremos controlar.



Robaq Automación. Buenos Aires. Argentina. 
E-Mail: info.robaq@gmail.com



Fuentes: http://www.infoplc.net/blog4/2010/08/04/elementos-de-un-servo-drive/

Para saber más acerca de nuestros servicios relacionados, selecciona el siguiente enlace:



Folleto en formato JPG











Folleto en formato PDF

jueves, 11 de noviembre de 2010

La popularización del controlador: DIY, Hobby, y CNC personal

Habiendo realizado un repaso general de los conceptos más relevantes que se destacan en la implementación y empleo de sistemas CNC profesional, no se puede dejar de mencionar los diferentes tipos de tecnologías adoptadas por unas y otras vertientes de esta tendencia tecnológica. Estas diversas corrientes de desarrollo afectan tanto a la electrónica de control, como al diseño mismo de la mecánica de la máquina herramienta. Es así que durante años esta actividad estuvo circunscripta a determinados ámbitos productivos, generalmente caracterizados por su escala de producción y especialización técnica. Aquí hicieron su debut los primeros sistemas NC y luego tuvieron lugar los más modernos Centros de Mecanizados CNC, que hasta dicho momento respondían al concepto de “tecnología propietaria” o “arquitectura cerrada”. Desde entonces compañías originarias de Alemania, Estados Unidos de Norte América, Japón, Corea de Sur y China se destacaron por sus avances y afianzaron sus marcas, entre ellas Siemens, Emco, Heidenhain, Fanuc, Hurco, Haas, Fagor, Makino, Mitsubishi, Masak, Okuma, Mori Seiki, GSK, Doosan, KND, SNK, Great, Eurotech, etc.


Pero como se mencionó en más de una oportunidad anteriormente,  queda bien claro el peso específico que tiene el microprocesador, como elemento a partir del cual, se hace posible el acceso de forma económica al desarrollo de programas informáticos destinados al control de dispositivos CNC y de otros que le dan soporte al mismo.
Es así que en la actualidad se distinguen dos filosofías, en referencia a la arquitectura lógica sobre la cual se apoyan los programas de control o controladores CNC, pero sin embargo ambas están basadas en el mismo estándar industrial, en cuanto al microprocesador se refieren. Estamos hablando de los Sistemas Operativos, basados en la plataforma UNIX o compatible con la misma, desarrollado por AT&T Corp. y los que responden a Windows, desarrollado por Microsoft Corp., a partir del Sistema Operativo DOS en su instancia inicial.

En términos generales, los primeros se ajustarían de mejor forma a los requerimientos específicos de un dispositivo robótico, a partir de la misma arquitectura lógica que le da forma y que le confiere las características funcionales adecuadas para recibir la catalogación de Real Time Operating System (RTOS o Sistema Operativo de Tiempo Real). En tanto los segundos, requieren de un algoritmo “emulador”, para poder ajustarse a las condicionalidades agrupadas dentro de la especificación. 

Un RTOS, es un sistema operativo que ha sido desarrollado para aplicaciones de tiempo real. Como tal, se le exige corrección en sus respuestas bajo ciertas restricciones de tiempo. Si no las respeta, se dirá que el sistema ha fallado. Para garantizar el comportamiento correcto en el tiempo requerido se necesita que el sistema sea predecible (determinista). 

En la actualidad hay un debate sobre qué es en verdad tiempo real. Muchos RTOS tienen un programador y diseños de controladores que minimizan los periodos, en los que las interrupciones están deshabilitadas. Muchos incluyen también formas especiales de gestión de memoria que limitan la posibilidad de fragmentación de la memoria y aseguran un límite superior mínimo, para los tiempos de asignación y refresco de la memoria.
Este tipo de sistemas operativos no es necesariamente eficiente en el sentido de tener una capacidad de procesamiento alta. El algoritmo de programación especializado y a veces una tasa de interrupción del reloj alta, pueden interferir en la capacidad de procesamiento. Aunque para propósitos generales un procesador moderno suele ser más rápido, para programación en tiempo real deben utilizarse procesadores lo más predecibles posible, es decir, sin paginación. 

Las interrupciones son la forma más común de pasar información desde el mundo exterior al programa y son, por naturaleza, impredecibles. En un sistema de tiempo real estas interrupciones pueden informar diferentes eventos como la presencia de nueva información en un puerto de comunicaciones, de una nueva muestra de audio en un equipo de sonido o de un nuevo cuadro de imagen en una videograbadora digital.
Para que el programa cumpla con su cometido de ser tiempo real es necesario que el sistema atienda la interrupción y procese la información obtenida antes de que se presente la siguiente interrupción. Como el microprocesador normalmente solo puede atender una interrupción a la vez, es necesario que los controladores de tiempo real se ejecuten en el menor tiempo posible. Esto se logra no procesando la señal dentro de la interrupción, sino enviando un mensaje a una tarea o solucionando un semáforo, que está siendo esperado por una tarea. El programador se encarga de activar la tarea y esta se encarga de adquirir la información y completar el procesamiento de la misma.

El tiempo que transcurre entre la generación de la interrupción y el momento en el cual esta es atendida se llama “latencia de interrupción”. El inverso de esta latencia es una frecuencia llamada “frecuencia de saturación”, si las señales que están siendo procesadas tienen una frecuencia mayor a la de saturación, el sistema será físicamente incapaz de procesarlas. En todo caso la mayor frecuencia que puede procesarse es mucho menor que la frecuencia de saturación y depende de las operaciones que deban realizarse sobre la información recibida.

En cambio, los sistemas operativos que responden a un tipo de diseño típico, una tarea en particular tiene tres posibles estados: “ejecución”, “preparación” y “bloqueo”. La mayoría de las tareas están bloqueadas casi todo el tiempo. Solamente se ejecuta una tarea por CPU (Central Procesing Unit o Unidad Central de Procesamiento). La lista de tareas preparadas suele ser corta, de dos o tres tareas como mucho.  

Usualmente, la estructura de datos de la lista de tareas preparadas en el programador está diseñada para que cada búsqueda, inserción y eliminación necesiten interrupciones de cierre, solamente durante un período muy pequeño, cuando se buscan partes de la lista muy definidas.
Esto significa que otras tareas pueden operar en la lista asincrónicamente, mientras que el sistema realiza su búsqueda. Una buena programación típica es una lista conectada bidireccional de tareas preparadas, ordenadas por orden de prioridad. Hay que tener en cuenta, que no es rápido de buscar sino determinista. La mayoría de las listas de tareas preparadas sólo tienen dos o tres entradas, por lo que una búsqueda secuencial es usualmente la más rápida, porque requiere muy poco tiempo de instalación. El tiempo de respuesta crítico es el tiempo que necesita para poner en la cola una nueva tarea preparada y restaurar el estado de la tarea de más alta prioridad. 

En un sistema operativo en tiempo real bien diseñado, preparar una nueva tarea necesita de 3 a 20 instrucciones por cada entrada en la cola y la restauración de la tarea preparada de máxima prioridad de 5 a 30 instrucciones. Por ejemplo, en un procesador tipo 68000 de 20MHz, los tiempos de cambio de tarea son de 20 microsegundos con dos tareas preparadas. Cientos de CPU tipo MIP ARM pueden cambiar en unos pocos microsegundos.

Es así que se puede afirmar que el sistema operativo Windows, compatible con el microprocesador x86 de Intel, se ajusta más a un tipo de diseño típico, de acuerdo a lo descripto hasta aquí y por lo tanto carece de las prestaciones adecuadas para administrar en “tiempo real” un programa CNC ejecutado en el modo “usuario normal”. Sin embargo, las notables mejoras en el diseño y por lo tanto de rendimientos, que han experimentado los microprocesadores de esta serie, han dado lugar para que los sistemas operativos compatibles con esta arquitectura lógica alcancen niveles de respuesta adecuadas para automatismos, a pesar de su clara orientación generalista. Más aún, existen diversos desarrollos, que han logrado suplir este “flanco débil”, que presentan los sistemas operativos Windows y que “corrigen” ciertos aspectos de los algoritmos que limitan su capacidad de respuesta en tiempo real. Estos desarrollos tienen la forma de extensiones de aplicación general, tal es el caso del Ardance RTX, adoptado en el proyecto llevado adelante por NC System, con su controlador integrado WinPCNC o de otros de tecnología propietaria, como el desarrollado por Artsoft Corp., para su controlador CNC Mach3.

Los ejemplos mencionados tienen en común, diseños que responden al concepto de arquitectura abierta. En cambio se pueden citar muchos más, que en cambio adoptaron una arquitectura cerrada, tales son los propuestos por PlanetCNC, con su producto CNC USB, CamSoft, Flashcut, Win-PCNC, de la firma Heiz CNC Technik, MicroKinetics MillMaster Pro, EdingCNC, USBCNC, ProNC, de ISEL Germany, WinCNC, de la compañía MicroSystems, y varios otros más. Arquitectura abierta es un tipo de arquitectura de computadoras o arquitectura de software, que permite añadir, modernizar y cambiar sus componentes.




Pero no es la intensión del presente artículo profundizar en este aspecto técnico en particular, de los programas controladores CNC y de los sistemas operativos, que en muchos casos le dan soporte, sino más bien dar una idea general del estado actual de los avances en el ámbito que nos ocupa y sus alcances. Existe una notable profusión de información relacionada a las arquitecturas lógicas de los sistemas operativos, que recomendamos consultar, para indagar en mayor profundidad sobre el tema.

No obstante, las diferencias que prevalecen hoy en día entre una y otra corriente de desarrollo, la notable mejora de las prestaciones que ofrecen los microprocesadores de uso corriente en ámbitos laborales, tanto así como domésticos, hacen posible la implementación de sistemas de automación de pequeña escala, tales como controlar un pequeño torno o fresadora de mesa, con una computadora personal.
Los desarrollos recientes en la técnica del CNC en pequeña escala son posibles, en gran parte debido al proyecto conocido como Enhanced Machine Controller, (EMC o Controlador de Máquina Mejorado), llevado adelante por el National Institute of Standards and Technology (NIST o Instituto Nacional e Tecnología y Estándares), una agencia del Departamento de Comercio de los Estados Unidos de Norte América.


EMC es un programa de dominio público que opera dentro el sistema operativo Linux y que trabaja basado en hardware de PC, vale decir microprocesadores compatibles con el estándar x86 de Intel o compatibles con el mismo, como son los productos de AMD entre otros. Una vez concluido el proyecto EMC del NIST, el desarrollo continuó, dando lugar al EMC2, el cual está licenciado bajo la GNU / GLP Licencia Pública General, creada por la Free Software Foundation. 
De esta forma y siguiendo la misma filosofía que le da existencia al sistema operativo Linux, se hizo disponible un programa de control CNC de arquitectura abierta, con todas las mejores prestaciones de uno de arquitectura cerrada o tecnología propietaria. 
Una descripción detallada del proyecto EMC se puede acceder mediante en el siguiente enlace: The NIST RS274NGC Interpreter - Version 3

Sin embargo sería injusto no mencionar otras aproximaciones al diseño de un controlador CNC basado en la plataforma PC. Estas a diferencia de las anteriores se asentaron sobre el sistema operativo DOS, optando de esta forma, por dejar a un lado las ventajas que otorgan una mayor y mejor disponibilidad de recursos gráficos, pero evitando las complejidades técnicas de los anteriores. Así se hicieron populares controladores como el CNCPro, Turbo CNC, Zeus CNC.


La disponibilidad de estos programas de control basados en formato PC ha llevado al desarrollo del DIY CNC (Do It Yourself o Hazlo Tu Mismo), permitiendo que los aficionados puedan construir sus propias máquinas herramientas utilizando en sus diseños, kits de retrofiting o componentes de libre disponibilidad, que no responden a tecnologías propietarias.

La misma arquitectura básica ha permitido a los fabricantes de pequeñas máquinas herramientas, como Sherline, Taig y MaxNC, Sieg, proveer llave en mano sus productos, ya sean estos máquinas de fresado o torneado ligero de escritorio, para los aficionados. Finalmente, la arquitectura abierta permitió la proliferación de muchos más emprendimientos productivos y comerciales, a partir de su utilización para crear las partes componentes y máquinas herramientas adecuadas para aplicaciones comerciales e industriales. Esta clase de equipo ha sido referido en diversos ámbitos como CNC Personal.

Paralelamente a la evolución de las computadoras personales, el CNC Personal tiene sus raíces en el proyecto EMC, de controlador CNC basado en PC, pero ha evolucionado hasta el punto en que puede sustituir a grandes equipos convencionales, en muchos casos. Al igual que con la computadora personal , el CNC Personal se caracteriza por un equipo cuyo tamaño, capacidad y precio de venta, lo hacen especialmente accesible para un gran cantidad de personas y está destinado a ser operado directamente por el usuario final, muchas veces sin formación profesional en tecnología de CNC.



Robaq Automación. Buenos Aires. Argentina. 
E-Mail: info.robaq.@gmail.com





Para saber más acerca de nuestros servicios relacionados, selecciona el siguiente enlace:



Folleto en formato JPG











Folleto en formato PDF

jueves, 28 de octubre de 2010

Acerca de los controladores del CNC

Un controlador o control CNC (Computer Numerical Control) es un dispositivo digital de control numérico (CNC) que cumple la función controlar máquinas herramientas y sus procesos. Ofrecen capacidades que van desde el control de una simple relación de movimiento de punto a punto, hasta el control de algoritmos muy complejos, con múltiples ejes de control. Los controladores CNC se utilizan para equipar a muchos tipos de maquinaria en un taller o planta fabril.

Algunos ejemplos incluyen Centros de Mecanizado Verticales y Horizontales (Vertical Machining Center y Horizontal Machining Center), tornos, Rectificadoras, equipos de Mecanizado por Descarga Electrostática (EDM), Routers, Pantógrafos de Oxicorte y Plasma-Corte, Patógrafos LASER y dispositivos para la inspección de equipos. 


Hoy en día se ofrecen controladores CNC en forma de kits, para la modificación o conversión de una máquina herramienta manual a una máquina automática por CNC. El proceso de recambio de un sistema analógico NC (Numerical Control) a uno digital CNC o la implantación de un sistema CNC en una máquina herramienta manual, habitualmente recibe la denominación de “retrofiting”, la cual resume la idea de las tareas necesarias para la incorporación de esta mejora en el dispositivo al cual se le está aplicando.

De esta forma, es posible prolongar la vida útil de una máquina usada, en buenas condiciones generales, dotándola de los medios tecnológicos más modernos, que le permitirán ofrecer mejores prestaciones en cuanto a velocidad y precisión. Estos kits incluyen componentes comunes, tales como el software, el cableado, y uno o varios generadores de señales, controladores y los motores. 

Los motores pueden ser del tipo de Pasos Incrementales, también conocidos como Paso a Paso o Stepper. También pueden instalarse los más sofisticados servomotores. Tanto los primeros, como los segundos ofrecen ventajas y desventajas, que responden a las características de su solución técnica, que obviamente tienen implicancias directas en sus prestaciones y como es de esperar, también en sus valores de mercado.
Tanto los motores Stepper como los servomotores pueden ser controlados con extrema precisión y más aún si los mismos adoptan el uso motores de retroalimentación de posición, conocidos como codificadores o encoders. Aquí es oportuno aclarar que los encoders cumplen el mismo propósito que los resolvers, pero los primeros responden a una arquitectura electrónica digital, en cambio los segundos son de índole analógica y por esta razón existe una insalvable incompatibilidad entre ellos. 

Los motores de pasos incrementales proporcionan el movimiento (pasos) en respuesta a la alternancia de los pulsos de corriente, que cambia la polaridad de los polos del estator.
La más relevante característica técnica o especificación de los controladores CNC está determinada por el número de ejes, que son capaces de gestionar, pero también entra en consideración la Interface Hombre-Máquina o HMI (Human Machine Interfase)  y el entorno gráfico que habitualmente estas ofrecen, también referida como Interface Gráfica de Usuario o GUI (Graphical User Interfase), su flexibilidad de configuración y la plataforma informática sobre la cual opera.


Hoy en día es moneda corriente los controladores CNC configurados como paneles computarizados de control, instalados en el mismo gabinete o chasis de la máquina herramienta que controla. Otros están alojados en gabinetes independientes y separados de la misma. También hay controladores “de escritorio”, los cuales permiten a los operadores controlar los equipos y procesos de forma remota o desde oficinas separadas y próximas al entorno de trabajo. Existen alternativas que responden a necesidades de mejor ergonomía, los cuales adoptan la forma de paneles “colgantes”. En estos, los controladores cuelgan de un brazo articulado fijado al chasis de la máquina herramienta, permitiendo así su fácil reubicación de acuerdo a las necesidades del trabajo. Es también habitual encontrar controladores de “pedestal”, los cuales se asientan en la parte superior de un brazo fijo conectado a la máquina. 

En estos últimos años se han generalizado los controladores con pantalla integral, pantallas táctiles y teclados en pantallas táctiles. Algunas de las características ofrecidas por los modernos controladores CNC incluyen alarmas y monitoreo de eventos, almacenamiento de datos en disco rígido, almacenamiento en dispositivos de memoria no volátil tipo “Flash”, tales como “Pen-Drives”, con conector Bus en Serie Universal (Universal Serial Bus o USB), “Memory Stick” con conexión tipo SD o Micro SD, así como también programas de almacenamiento de múltiples trabajos y su control simultáneo. 

Los controladores CNC también se diferencian en términos del protocolo de comunicación industrial que adoptan. Los tipos más comunes son: Red de Recursos de Computador Conectado (ARCNET), Bus de Area de Control de Red (CAN-Bus), Red de Control (ControlNet), Data Highway Plus (DH +), DeviceNet, Ethernet 10 Base T o 100 Base-T, y el Proceso de Bus de Campo (PROFIBUS ®). También se emplean protocolos de comunicación por puertos paralelos, incluidos en la normativa IEEE 1284, nivel bi-direccional del Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) de Estados Unidos de América del Norte. 

Algunos controladores se conectan por medio de interfaces en serie, que realizan la transmisión de datos un bit a la vez y son el RS232, RS422 y RS485. También hay controladores CNC que utilizan el Bus en Serie Universal (USB) para su conexionado, el cual consta de 4 cables y velocidad de transmisión de 12 Mbps. Este por lo general se emplea para conectar a velocidades bajas o medias, dispositivos periféricos o computadoras personales (PC). 

El lenguaje y modos de operación son consideraciones importantes a la hora de seleccionar el controlador CNC. Las opciones de lenguaje de un controlador CNC son: mapa de bits (entre ellos los más comunes son los que responden al formato BMP, JPG, TIF, PCX), programación conversacional, dibujo de intercambio de formato (DXF), código G (funciones preparatorias y de control G, M, F, S, T y otras varias más), lenguaje gráfico de Hewlett-Packard (HPGL, HP-GL ®) y la lógica de escalera.

Código G es el nombre común del lenguaje de programación de máquinas herramientas más utilizado, para la ejecución autónoma de de operaciones por control numérico (NC). Sin embargo este lenguaje tiene otras muchas implementaciones.
Este sentido general del término adoptado para su identificación, en referencia al lenguaje en su totalidad (haciendo un uso genérico de la palabra "código"), es imprecisa, porque se trata metonímicamente al sentido literal del término.  Esta forma de llamar a este lenguaje  toma como referente la instrucción preparatoria propia del mismo, no obstante es sólo uno de los muchos comandos que conforman este lenguaje (G es un comando preparatorio y va asociado a otros códigos específicos para dar forma completa a su sentido.
De hecho, cada letra del alfabeto Inglés es utilizada en algún lugar de este lenguaje, aunque el uso de algunas de estas es menos común que otras. La G es el carácter más profusamente repetido y relevante en los programas que responden a esta normalización y precisamente es por esta razón, establecido como el nombre común del lenguaje. 

En décadas posteriores a su creación, muchas implementaciones fueron desarrolladas por muchas organizaciones comerciales y no comerciales. La primera implementación de un control numérico se desarrolló en el Laboratorio de Servomecanismos del Massachusets Institute of Technology (MIT) en la década de 1950. La versión estándar más utilizada en los Estados Unidos fue establecida por la Alianza de Industrias Electrónicas (EIA). Una revisión final fue aprobada en Febrero de 1980 como RS274D. En Europa, es usual que en su lugar se adopte la norma del International Organization For Standarization ISO 6983, aunque son varios los estados de esta región que siguen la norma del Deutsches Institut für Normung DIN 66025, entre los que se destaca Alemania.

Varias extensiones y variaciones se añadieron de forma independiente por los fabricantes de controladores CNC y por fabricantes de máquinas herramientas, por esta causa los operadores de un controlador específico, deben tener conocimientos conscientes con las diferencias que presentan cada producto según su fabricante.  Existe una versión estandarizada del código G, conocido como BCL, pero el mismo no logró su propósito ya que únicamente se usa en algunas máquinas hoy en día. 

Algunos fabricantes de máquinas CNC han intentado superar las dificultades de compatibilidad mediante la estandarización de los controladores, integrando en sus máquinas herramientas dispositivos de control CNC construidos por la firma Fanuc o que sean compatibles con este. Esta semi-estandarización se puede comparar con las registradas en otros sectores industriales en los cuales existe una clara dominación del mercado, tal es el caso de lo que ocurre en el ámbito de la informática con IBM, Intel o Microsoft.

Existen pros y contras, y una gran variedad de alternativas disponibles. Algunas máquinas herramientas CNC hacen un uso "coloquial" de la programación, poniendo a disposición del operador un asistente “virtual”, que se muestra gráficamente en la GUI. De este modo evita por completo el uso de G-código en la instancia de programación, no obstante el mismo subyace detrás de la presentación gráfica, que se exhibe en la pantalla gráfica del controlador. Este recurso es conocido como “modo de programación conversacional” y tiene la particularidad de adoptar herramientas y procedimientos originarios del ámbito de la informática, resumidos en el concepto de “programación orientada a objetos”. Algunos ejemplos más populares son ProtoTRAK del fabricante Southwestern Industries, Mazatrol de Mazak, Haas Intuitive Programming System o IPS, WinMax de Hurco y el software Mori-AP System, de Mori Seiki, todo estos orientados hacia la programación conversacional. 

El código G comenzó como un tipo limitado de lenguaje, que carecía de construcciones tales como lazos o loops, los operadores condicionales y variables de programación declaradas, con empleo de palabras naturales (o las expresiones en las que los utilizan). Fue por lo tanto incapaz de codificar la lógica, sino que era esencialmente sólo una manera de "conectar puntos" en el espacio de coordenadas cartesiano, en la que muchos de los parámetros indispensables para la adecuada interpretación y ejecución de la instrucciones requerían la escritura a mano del programador. 

Las últimas implementaciones del código G son tales construcciones, que crean un lenguaje más cercano a un lenguaje de programación de alto nivel. Cuanto más es la medida, que le permita a un programador indicarle a la máquina lo que desea como resultado final, dejando los cálculos intermedios a esta, mayor es la utilización del poder computacional del controlador, para el máximo provecho.

Las opciones de modos para la operación del controlador CNC son: comandos de coordenadas polares, compensación de corte, interpolación lineal o circular, interpolación helicoidal, memorización del error de posicionamiento y su compensación, ciclos fijos o enlatados, rigid tapping o roscado rígido y auto-escalamiento.

Los comandos de coordenadas polares referencian todas las coordenadas a una recta llamada “eje” y a un punto específico del sistema de coordenadas cartesiano, llamado “polo”. Para fijar la posición de un punto se determina la distancia de éste al polo y el ángulo que éste forma con la dirección positiva del eje. Si los sistemas un sistema de coordenadas cartesiano y un sistema de coordenadas polar se disponen de modo que el origen cartesiano coincide con el polo y además el sentido positivo del eje polar se hace coincidir con la dirección positiva del eje de las abscisas, la equivalencia de valores de un sistema a otro se logra mediante la aplicación de fórmulas matemáticas.

Los comandos de interpolación lineal y circular, son los algoritmos más comúnmente utilizados en el programa de trabajo, para administrar la tasa de alimentación o velocidad de avance de la herramienta durante la tarea de cortado del material. El programa especifica los puntos inicial y finales, y el controlador calcula automáticamente por interpolación los puntos intermedios por los cuales deberá pasar la herramienta, dando lugar así a una trayectoria en línea recta o una trayectoria curva o en arco según sea el caso (de ahí se habla de "interpolación lineal" o “interpolación circular”). El controlador luego calcula la velocidad angular a la cual deben ser girados los tornillos actuadores, engranajes, poleas o cualquiera sean los elementos dispuestos para la transmisión mecánica de los movimientos, en la máquina herramienta. Estas operaciones requieren la realización de miles de cálculos por segundos, de parte de la computadora a cargo del controlador CNC.

La memorización de la compensación por error de posicionamiento (backlash) mejora la precisión de la máquina, mediante la corrección de huelgos originados en el o los tornillos actuadores, engranajes y cremalleras, poleas dentadas y correas o cualquier otro posible error de posicionamiento causado por los elementos de transmisión mecánica, que accionan los elementos móviles de la máquina herramienta. La interpolación helicoidal se utiliza para hacer agujeros de gran diámetro en piezas de trabajo.

Los ciclos enlatados son rutinas de trabajo propias de la máquina en cuestión, tales como la perforación, taladrado profundo, fresado, roscado, alesado y mandrinado que implican una serie de operaciones estandarizadas, que se agrupan y se especifican por medio de un solo programa de código G, con los parámetros adecuados.


La mayoría de los controladores modernos de máquinas herramientas CNC ofrecen ahora la capacidad de roscado rígido (rigid tapping), como una característica estándar. Un ciclo de roscado rígido sincroniza el eje de rotación de la máquina y el de alimentación, para que coincida con un paso de rosca específico, mientras el macho es rápidamente conducido dentro o fuera del agujero. Puesto que la alimentación en el agujero está sincronizado, en teoría, se puede utilizar un porta-herramientas sólido, sin ningún tipo de compensación de tensión. 



Robaq Automación. Buenos Aires. Argentina. 
E-Mail: info.robaq@gmail.com



Fuentes: http://gramlich.net/projects/cnc/controller/  
Traducción y adaptación: Robaq Automación


Para saber más acerca de nuestros servicios relacionados, selecciona el siguiente enlace:



Folleto en formato JPG











Folleto en formato PDF