G-code
G-code | ||
---|---|---|
? | ||
Información general | ||
Extensiones comunes | .mpt, .mpf, .nc, .gcode entre otros | |
Apareció en | 1950s (first edition) | |
Diseñado por | Instituto Tecnológico de Massachusetts | |
Implementaciones | muchas, principalmente Siemens Sinumeric, FANUC, Haas, Heidenhain, Mazak. Por lo general hay un estándar internacional - ISO 6983. | |
El G-code es el nombre que habitualmente recibe el lenguaje de programación más usado en Control numérico (CNC), el cual posee múltiples implementaciones. Usado principalmente en automatización, forma parte de la ingeniería asistida por computadora. Al G-code se le llama en ciertas ocasiones lenguaje de programación G.
En términos generales, G-code es un lenguaje mediante el cual las personas pueden decir a máquinas herramienta controladas por computadora qué hacer y cómo hacerlo. Esos "qué" y "cómo" están definidos mayormente por instrucciones sobre adonde moverse, cuan rápido moverse y que trayectoria seguir. Las máquinas típicas que son controladas con G-code son fresadoras, cortadoras, tornos e impresoras 3D.
Implementaciones
La primera implementación del control numérico se desarrolló en el Laboratorio de Servomecanismos del MIT a principio de los años 50 del siglo XX. En las siguientes décadas se desarrollaron una gran cantidad de implementaciones de mano de multitud de organizaciones comerciales o no. El G-code se ha usado a menudo en estas implementaciones. La versión más común en Estados Unidos es la propuesta por Electronic Industries Alliance a principio de los años 60 del siglo XX. En febrero de 1980 se aprobó una revisión final con el nombre de RS274D. En todo el mundo, en estándar ISO 6983 es el más usado, aunque en algunos países europeos en concreto se utilizan a veces otros estándares como el DIN 66025 alemán o los PN-73M-55256, PN-93/M-55251 polacos.
Los distintos fabricantes de máquinas CNC han añadido todo tipo de extensiones y variaciones al lenguaje, por lo que los operadores de las máquinas deben conocer las peculiaridades concretas que el fabricante ha previsto para su uso.
Existe una versión de G-code conocida como BCL que aunque es considerado un estándar se usa sólo en unas pocas máquinas.
Desde los años 70 hasta los 90 del siglo XX, muchos fabricantes de máquinas CNC intentaron deshacerse de todos los problemas de compatibilidad estandarizando los controladores de las herramientas, construidos por Fanuc. Otra empresa con posición dominante en el mercado de los controladores CNC es Siemens, especialmente en Europa. Ya en la segunda década del siglo XXI, todas esas diferencias e incompatibilidades no causan grandes problemas puesto que el G-code es generado por aplicaciones CAD/CAM que son capaces de generar código adaptado a cada máquina específica.
Algunas máquinas CNC cuentan con una especie de programación "conversacional" consistente en un software parecido a un asistente que de algún modo enmascara el G-code o evita totalmente su uso. Algunos ejemplos son ProtoTRAK de Southwestern Industries, Mazatrol de Mazak, Ultimax de Hurco, Intuitive Programming System (IPS) de Haas, o CAPS de Mori Seiki.
G-code comenzó siendo un tipo de lenguaje bastante limitado que carecía de estructuras como búcles, operadores condicionales y variables declaradas por el usuario. Sin embargo, las implementaciones más recientes de G-code sí que incluyen tales estructuras, creando un lenguaje algo más parecido a lo que podría ser un lenguaje de alto nivel.
Códigos específicos
Los G-codes son conocidos también como códigos preparatorios, y se caracterizan por comenzar por la letra "G". Normalmente es un código que indica a la máquina que operación debe realizar. Algunas de estas operaciones podrían ser:
Existen también otros tipos, y en general se pueden considerar los códigos como los registros de una computadora. k
Enlaces externos de interés
- Code descriptions with graphics and example code files (examples can be downloaded).
- CNC G-Code and M-Code Programming
- G-Code Tutorial
- The NIST RS274NGC Standard - Version 3 Aug 2000 also available as a PDF
- http://museum.mit.edu/150/86 Has several links (including history of MIT Servo Lab)