1. Introducción
Este documento se centra en el uso de LinuxCNC, está destinado a lectores que ya lo han instalado y configurado. Se proporciona algo de información sobre la instalación en los capítulos siguientes. La documentación completa sobre la instalación y la configuración se encuentra en el manual del integrador.
2. Cómo funciona LinuxCNC
LinuxCNC es un conjunto de aplicaciones altamente personalizables para el control de fresadoras y tornos de control numérico computarizado (CNC), impresoras 3D, robots, cortadores láser, cortadores de plasma y otros dispositivos automatizados. Es capaz de proporcionar el control coordinado de hasta 9 ejes de movimiento.
En esencia, LinuxCNC consta de varios componentes clave que se integran para formar un sistema completo:
-
una interfaz gráfica de usuario (GUI), que forma la interfaz básica entre el operador, el software y la máquina CNC en sí misma;
-
una capa de abstracción de hardware (HAL), que proporciona un método para vincular las diversas señales virtuales internas generadas y recibidas por LinuxCNC con el mundo exterior, y
-
controladores de alto nivel que coordinan la generación y ejecución del control de movimiento de la máquina CNC, es decir, el controlador de movimiento (EMCMOT), el controlador de entrada/salida discretas (EMCIO) y el ejecutor de tareas (EMCTASK).
La siguiente ilustración es un diagrama de bloques simple que muestra cómo se vería una típica fresadora CNC de 3 ejes con motores paso a paso:
Una computadora que ejecuta LinuxCNC envía una secuencia de impulsos a través del puerto paralelo a las unidades paso a paso; de las cuales cada una tiene un motor paso a paso conectado. Cada unidad recibe dos señales independientes; una señal para ordenar al accionamiento que mueva su motor paso a paso asociado en sentido horario o antihorario (señal de direccion), y una segunda señal (tren de pulsos) que define la velocidad a la que gira el motor paso a paso.
Se ha ilustrado un sistema de motor paso a paso bajo control del puerto paralelo, pero un sistema LinuxCNC también puede conectarse a una amplia variedad de interfaces hardware dedicadas de control de movimiento para una mayor velocidad o capacidades de E/S. Se puede encontrar una lista completa de interfaces compatibles con LinuxCNC en la página Wiki Hardware soportado.
En la mayoría de los casos, los usuarios crearán una configuración específica para su fresadora ya sea utilizando el Asistente de configuración de steppers (para sistemas CNC que funcionan con puerto paralelo) o el Asistente de hardware Mesa (para sistemas más avanzados que utilizan tarjetas PCI Anything I/O de Mesa). La ejecución de cualquiera de los asistentes creará varias carpetas en el disco duro de la computadora que contendrán algunos archivos de configuración específicos para esa máquina CNC, y un ícono colocado en el escritorio para lanzar LinuxCNC fácilmente.
Por ejemplo, si se usó el Asistente de configuración de steppers para configurar la fresadora CNC de 3 ejes ilustrada más arriba y se tituló Mi_CNC, las carpetas creadas por el asistente contendrían generalmente los siguientes archivos:
-
Folder:
My_CNC-
My_CNC.ini
The INI file contains all the basic hardware information regarding the operation of the CNC mill, such as the number of steps each stepper motor must turn to complete one full revolution, the maximum rate at which each stepper may operate at, the limits of travel of each axis or the configuration and behaviour of limit switches on each axis. -
My_CNC.hal
This HAL file contains information that tells LinuxCNC how to link the internal virtual signals to physical connections beyond the computer. For example, specifying pin 4 on the parallel port to send out the Z axis step direction signal, or directing LinuxCNC to cease driving the X axis motor when a limit switch is triggered on parallel port pin 13. -
custom.hal
Customisations to the mill configuration beyond the scope of the wizard may be performed by including further links to other virtual points within LinuxCNC in this HAL file. When starting a LinuxCNC session, this file is read and processed before the GUI is loaded. An example may include initiating Modbus communications to the spindle motor so that it is confirmed as operational before the GUI is displayed. -
custom_postgui.hal
The custom_postgui HAL file allows further customisation of LinuxCNC, but differs from custom.HAL in that it is processed after the GUI is displayed. For example, after establishing Modbus communications to the spindle motor in custom.hal, LinuxCNC can use the custom_postgui file to link the spindle speed readout from the motor drive to a bargraph displayed on the GUI. -
postgui_backup.hal
This is provided as a backup copy of the custom_postgui.hal file to allow the user to quickly restore a previously-working postgui HAL configuration. This is especially useful if the user wants to run the Configuration Wizard again under the same My_CNC name in order to modify some parameters of the mill. Saving the mill configuration in the Wizard will overwrite the existing custom_postgui file while leaving the postgui_backup file untouched. -
tool.tbl
A tool table file contains a parameterised list of any cutting tools used by the mill. These parameters can include cutter diameter and length, and is used to provide a catalogue of data that tells LinuxCNC how to compensate its motion for different sized tools within a milling operation.
-
-
Folder:
nc_files
The nc_files folder is provided as a default location to store the G-code programs used to drive the mill. It also includes a number of subfolders with G-code examples.
3. Interfaces de usuario gráficas
A graphical user interface is the part of the LinuxCNC that the machine tool operator interacts with. LinuxCNC comes with several types of user interfaces which may be chosen from by editing certain fields contained in the INI file:
- AXIS
-
AXIS, es la interfaz GUI de teclado estándar. Es también la GUI predeterminada que se inicia cuando se usa un Asistente de configuración para crear un icono lanzador en el escritorio:
- Touchy
-
Touchy es una GUI para pantallas táctiles:
- Gscreen
-
Gscreen una GUI de pantalla táctil configurable por el usuario:
- GMOCCAPY
-
GMOCCAPY una GUI de pantalla táctil basada en Gscreen. GMOCCAPY también está diseñada para funcionar igualmente en aplicaciones donde el teclado y el mouse son los métodos preferidos para controlar la GUI:
- NGCGUI
-
NGCGUI una GUI de subrutinas que proporciona una programación de código G de tipo asistente. NGCGUI puede ejecutarse como un programa independiente o incrustado en otra GUI como una serie de pestañas. La siguiente captura de pantalla muestra a NGCGUI incrustado en AXIS:
- TkLinuxCNC
-
<< sec:tklinuxcnc-intro,TkLinuxCNC >>, otra interfaz basada en Tcl/Tk. Alguna vez la interfaz más popular después de AXIS.
- QtDragon
-
QtDragon, una GUI de pantalla táctil basada en QtVCP usando la librería PyQt5. Viene en dos versiones QtDragon y QtDragon_hd. Son muy similares en cuanto a características, pero QtDragon_hd esta hecha para monitores más grandes.
- QtPlasmaC
-
QtPlasmaC, una GUI de pantalla táctil para corte por plasma basada en QtVCP usando la librería PyQt5. Viene en tres relaciones de aspecto: 16:9, 4:3 y 9:16.
4. Interfaces de usuario
Estas interfaces de usuario son una manera de interactuar con LinuxCNC fuera de las interfaces de usuario gráficas.
- halui
-
Una interfaz de usuario basada en HAL que permite controlar LinuxCNC usando botones e interruptores
- linuxcncrsh
-
Una interfaz de usuario basada en telnet para enviar comandos desde computadoras remotas.
5. Paneles Virtuales de Control
Como se mencionó anteriormente, muchas de las GUI de LinuxCNC pueden ser personalizadas por el usuario. Esto se puede hacer para agregar indicadores, lectores de salida, interruptores o controles deslizantes a la apariencia básica de una de las GUI para aumentar su flexibilidad o funcionalidad. Se ofrecen dos estilos de Panel de control virtual en LinuxCNC:
- PyVCP
-
PyVCP, un panel de control virtual basado en Python que se puede agregar a la GUI AXIS. PyVCP utiliza solo señales virtuales contenidas dentro de la capa de abstracción de hardware HAL, como el indicador de velocidad del husillo o la señal de salida de Parada de emergencia, y tiene una apariencia sencilla, sin lujos. Esto lo hace una excelente opción si el usuario desea agregar un Panel de control virtual con mínimo esfuerzo.
- GladeVCP
-
GladeVCP, un panel de control virtual basado en Glade que se puede agregar a las GUIs AXIS o Touchy. GladeVCP tiene la ventaja sobre PyVCP en que no se limita a la visualización o control de señales virtuales HAL, sino que puede incluir otras interfaces externas fuera de LinuxCNC, como eventos de ventana o red. GladeVCP también es mas flexible en cuanto a cómo se puede configurar para que aparezca en la GUI:
- QtVCP
-
QtVCP, un panel de control virtual basado en PyQt5 que se puede agregar a la mayoría de las IGU o ejecutarse como un panel independiente. QtVCP tiene la ventaja sobre PyVCP en que no se limita a mostrar o controlar señales virtuales HAL, sino que puede incluir otras interfaces externas fuera de LinuxCNC, como eventos de ventana o red, extendiendo con código python. QtVCP también es mas flexible en cuanto a cómo se puede configurar para que aparezca en la GUI con muchos widgets especiales:
6. Idiomas
LinuxCNC utiliza archivos de traducción para traducir las interfaces de usuario de LinuxCNC a muchos idiomas, incluidos francés, español, alemán, italiano, finlandés, ruso, rumano, portugués y chino. Suponiendo que una traducción ha sido creada, LinuxCNC usará automáticamente cualquier idioma nativo con el que inicie la sesión en el sistema operativo Linux. Si su idioma no ha sido traducido, contacte a un desarrollador en el IRC, la lista de correo o el Foro de usuarios para obtener ayuda.
7. Piensa como un operador de CNC
Este manual no pretende enseñarte cómo usar un torno o una fresadora. Toma mucho tiempo convertirse en un operador experimentado y requiere de mucho trabajo. Un autor alguna vez dijo, Aprendemos por experiencia, si uno la tiene toda. Herramientas rotas, vicios atacados y cicatrices son evidencia de las lecciones aprendidas. Un hermoso acabado, tolerancias ajustadas y cuidado durante el trabajo son evidencia de las lecciones aprendidas. Ninguna máquina o programa puede sustituir a la experiencia humana.
Ahora puedes comenzar a trabajar con LinuxCNC, tienes que ponerte en los zapatos de un operador. Debes ocupar el rol de alguien a cargo de una máquina; una que espera tus instrucciones que luego ejecutará. En estas páginas daremos las explicaciones que te ayudarán a convertirte en un buen operador de CNC con LinuxCNC.
8. Modos de operación
Cuando LinuxCNC se está ejecutando, hay tres modos principales, diferentes entre si, utilizados para ingresar comandos. Son los modos manual, automático y MDI (entrada manual de datos). Al cambiar de un modo a otro, hay una gran diferencia en la forma en que se comporta LinuxCNC. Hay cosas específicas que se pueden hacer en un modo y que no pueden hacerse en otro. Un operador puede hacer home en un eje en modo manual pero no en modo automático o MDI. Un operador puede hacer que la máquina ejecute un archivo completo de código G en el modo automático pero no en manual o MDI.
En el modo manual, cada comando se ingresa por separado. En términos humanos, un comando manual podría ser "encender el refrigerante" o "mover el eje X a 25 pulgadas por minuto". Estos serían, mas o menos, equivalentes a pulsar un interruptor o girar el volante de un eje. Estos comandos se manejan normalmente en una de las interfaces gráficas presionando un botón con el ratón o manteniendo presionada una tecla en el teclado. En el modo automático, un botón similar o presionar una tecla podría usarse para cargar o iniciar la ejecución de un programa completo de código G almacenado en un archivo. En el Modo MDI, el operador puede escribir un bloque de código y decirle a la máquina que lo ejecute al presionar en el teclado <return> o <enter>.
Algunos comandos de control de movimiento están disponibles en todo momento y causarán los mismos cambios de movimiento en todos los modos. Estos incluyen Abort (abortar), Emergency Stop (parada de emergencia) y Feed Rate Override (mando manual de alimentación). Comandos como estos deberían explicarse por sí mismos.
La interfaz de usuario AXIS oculta algunas de las distinciones entre Auto y los otros modos, haciendo disponibles comandos Auto en muchas ocasiones. También difumina la distinción entre Manual y MDI porque algunos de los comandos manuales como Touch Off se implementan realmente mediante el envío de comandos MDI. Esto lo hace cambiando automáticamente al modo que se necesite para la acción que el usuario ha solicitado.