1. Einführung
Dieses Dokument konzentriert sich auf die Verwendung von LinuxCNC, es ist für Leser gedacht, die es bereits installiert und konfiguriert haben. Einige Informationen zur Installation werden in den folgenden Kapiteln gegeben. Die vollständige Dokumentation über die Installation und Konfiguration kann im Handbuch des Integrators gefunden werden.
2. Wie LinuxCNC funktioniert
LinuxCNC ist eine Reihe von hochgradig anpassbaren Anwendungen für die Steuerung von computergesteuerten Fräsmaschinen und Drehmaschinen, 3D-Druckern, Robotern, Laserschneidern, Plasmaschneidern und anderen automatisierten Geräten. Sie ist in der Lage, eine koordinierte Steuerung von bis zu 9 Bewegungsachsen zu ermöglichen.
Im Kern besteht LinuxCNC aus mehreren Schlüsselkomponenten, die zusammen integriert sind, um ein komplettes System zu bilden:
-
eine grafische Benutzeroberfläche (GUI) als grundlegende Schnittstelle zwischen dem Bediener, der Software und der CNC-Maschine selbst bildet;
-
der Hardware Abstraction Layer (HAL) bietet eine Methode zur Verknüpfung aller verschiedenen internen virtuellen Signale, die von LinuxCNC erzeugt und empfangen werden, mit der Außenwelt, und
-
die High-Level-Controller, welche die Erzeugung und Ausführung der Bewegungssteuerung der CNC-Maschine koordinieren, sind der Motion Controller (EMCMOT), der diskrete Input/Output-Controller (EMCIO) und der Task Executor (EMCTASK).
Die nachfolgende Darstellung ist ein einfaches Blockdiagramm, das zeigt, wie eine typische 3-Achsen-CNC-Fräse mit Schrittmotoren aussehen könnte:
Ein Computer, auf dem LinuxCNC läuft, sendet eine Folge von Impulsen über die parallele Schnittstelle an die Schrittantriebe, von denen jeder einen Schrittmotor hat, der an ihn angeschlossen ist. Jeder Antrieb erhält zwei unabhängige Signale; ein Signal, um den Antrieb zu befehlen, seinen zugehörigen Schrittmotor im oder gegen den Uhrzeigersinn zu bewegen, und ein zweites Signal, das die Geschwindigkeit definiert, mit der sich dieser Schrittmotor dreht.
Während ein Schrittmotor-System unter parallelen Port-Steuerung dargestellt ist, kann ein LinuxCNC-System auch die Vorteile einer Vielzahl von dedizierten Hardware-Motion-Control-Schnittstellen für erhöhte Geschwindigkeit und E / A-Funktionen. Eine vollständige Liste der von LinuxCNC unterstützten Schnittstellen kann auf der unterstützte Hardware Seite des Wikis gefunden werden.
In den meisten Fällen werden die Benutzer eine Konfiguration speziell für ihre Mühle Setup mit entweder der Stepper Configuration Wizard (für CNC-Systeme, die mit dem Computer 'Parallel-Port) oder die Mesa Hardware Wizard (für fortgeschrittene Systeme mit einem Mesa I/O PCI-Karte). Wenn Sie einen der beiden Assistenten ausführen, werden mehrere Ordner auf der Festplatte des Computers erstellt, die eine Reihe von Konfigurationsdateien enthalten, die für diese CNC-Maschine spezifisch sind, und ein Symbol wird auf dem Desktop platziert, um den einfachen Start von LinuxCNC zu ermöglichen.
Wenn zum Beispiel der Assistent für die Schrittmotorenkonfiguration verwendet wurde, um eine Einrichtung für die oben abgebildete 3-Achsen-CNC-Fräse mit dem Namen "My_CNC" zu erstellen, würden die vom Assistenten erstellten Ordner in der Regel die folgenden Dateien enthalten:
-
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. Graphical User Interfaces
Eine grafische Benutzeroberfläche ist der Teil der LinuxCNC, mit dem der Werkzeugmaschinenbediener interagiert. LinuxCNC verfügt über verschiedene Arten von Benutzeroberflächen, aus denen Sie auswählen können, indem bestimmte Felder bearbeitet werden, die in der Datei INI enthalten sind:
- ACHSE
-
AXIS, die Standard-Tastatur-GUI-Schnittstelle. Dies ist auch die Standard-GUI, die gestartet wird, wenn ein Konfigurationsassistent zum Erstellen eines Desktop-Symbol-Launchers verwendet wird:
- Touchy
-
Touchy, eine GUI für Touchscreens:
- Gscreen
-
Gscreen, eine vom Benutzer konfigurierbare Touchscreen-GUI:
- GMOCCAPY
-
GMOCCAPY, eine Touchscreen-GUI, die auf Gscreen basiert. GMOCCAPY ist so konzipiert, dass es auch in Anwendungen funktioniert, bei denen Tastatur und Maus die bevorzugten Methoden zur Steuerung der GUI sind:
- NGCGUI
-
NGCGUI, ein Subroutinen-GUI, das die Programmierung von G-Code im Assistentenstil ermöglicht. NGCGUI kann als eigenständiges Programm ausgeführt oder in eine andere GUI als eine Reihe von Registerkarten eingebettet werden. Der folgende Screenshot zeigt NGCGUI eingebettet in AXIS:
- TkLinuxCNC
-
TkLinuxCNC, eine weitere Schnittstelle, die auf Tcl/Tk basiert. Ehemals die beliebteste Schnittstelle nach AXIS.
- QtDragon
-
QtDragon, ein Touchscreen GUI basierend auf QtVCP mit der PyQt5 Bibliothek. Sie kommt in den Versionen QtDragon und QtDragon_hd. Sie sind sehr ähnlich in Features, aber QtDragon_hd ist für größere Monitore vorbereitet.
- QtPlasmaC
-
QtPlasmaC, ein Touchscreen-Plasmaschnitt GUI basierend auf QtVCP mit der PyQt5-Bibliothek. Es kommt in drei Aspektverhältnissen, 16:9, 4:3, und 9:16.
4. Benutzerschnittstellen
Diese Benutzeroberflächen sind eine Möglichkeit, mit LinuxCNC außerhalb der grafischen Benutzeroberflächen zu interagieren.
- halui
-
Eine HAL-basierte Benutzeroberfläche, die es erlaubt, LinuxCNC mit Tasten und Schaltern zu steuern
- linuxcncrsh
-
Eine Telnet-basierte Benutzeroberfläche, die es ermöglicht, Befehle von entfernten Computern zu senden.
5. Virtuelle Schalttafeln
Wie oben erwähnt, können viele der GUIs von LinuxCNC vom Benutzer angepasst werden. Dies kann geschehen, um Indikatoren, Anzeigen, Schalter oder Schieberegler zum grundlegenden Aussehen einer der GUIs für erhöhte Flexibilität oder Funktionalität hinzuzufügen. Zwei Arten von Virtual Control Panel sind in LinuxCNC angeboten:
- PyVCP
-
PyVCP, ein auf Python basierendes virtuelles Bedienfeld, das der AXIS-GUI hinzugefügt werden kann. PyVCP nutzt nur virtuelle Signale, die im Hardware Abstraction Layer enthalten sind, wie z.B. die Spindel-bei-Drehzahl-Anzeige oder das Notstopp-Ausgangssignal, und hat ein einfaches, schnörkelloses Aussehen. Dies macht es zu einer ausgezeichneten Wahl, wenn der Benutzer ein virtuelles Bedienfeld mit minimalem Aufwand hinzufügen möchte.
- GladeVCP
-
GladeVCP, ein Glade-basiertes virtuelles Bedienfeld, das zu den AXIS oder Touchy GUIs hinzugefügt werden kann. GladeVCP hat den Vorteil gegenüber PyVCP, dass es nicht auf die Anzeige oder Steuerung von virtuellen HAL-Signalen beschränkt ist, sondern auch andere externe Schnittstellen außerhalb von LinuxCNC wie Fenster oder Netzwerkereignisse einbeziehen kann. GladeVCP ist auch flexibler in der Art und Weise, wie es konfiguriert werden kann, um auf der GUI zu erscheinen:
- QtVCP
-
QtVCP, ein auf PyQt5 basierendes virtuelles Bedienfeld, das zu den meisten GUIs hinzugefügt oder als eigenständiges Bedienfeld ausgeführt werden kann. QtVCP hat gegenüber PyVCP den Vorteil, dass es nicht auf die Anzeige oder Steuerung von virtuellen HAL-Signalen beschränkt ist, sondern auch andere externe Schnittstellen außerhalb von LinuxCNC, wie z.B. Fenster- oder Netzwerkereignisse, durch Erweiterung mit Python-Code einbeziehen kann. QtVCP ist auch flexibler, wie es konfiguriert werden kann, um auf der GUI mit vielen speziellen Widgets erscheinen:
6. Sprachen
LinuxCNC verwendet Übersetzungsdateien, um LinuxCNC Benutzeroberflächen in viele Sprachen zu übersetzen, einschließlich Französisch, Deutsch, Italienisch, Finnisch, Russisch, Rumänisch, Portugiesisch und Chinesisch. Unter der Annahme, dass eine Übersetzung erstellt wurde, wird LinuxCNC automatisch verwenden, was auch immer Muttersprache Sie sich mit, wenn Sie das Linux-Betriebssystem. Wenn Ihre Sprache nicht übersetzt wurde, wenden Sie sich an einen Entwickler im IRC, in der Mailingliste oder im Benutzerforum, um Hilfe zu erhalten.
7. Denken wie ein CNC-Bediener
Dieses Handbuch gibt nicht vor, Ihnen den Umgang mit einer Dreh- oder Fräsmaschine beizubringen. Um ein erfahrener Bediener zu werden, braucht man viel Zeit und eine Menge Arbeit. Ein Autor hat einmal gesagt: Wir lernen durch Erfahrung, wenn man sie macht. Zerbrochene Werkzeuge, angegriffene Schraubstöcke und die Narben sind der Beweis für die gelernten Lektionen. Eine schöne Oberfläche, enge Toleranzen und Vorsicht bei der Arbeit sind Beweise für gelernte Lektionen. Keine Maschine und kein Programm kann die menschliche Erfahrung ersetzen.
Jetzt, wo Sie anfangen, mit der LinuxCNC-Software zu arbeiten, müssen Sie sich in die Rolle eines Bedieners versetzen. Sie müssen sich in die Rolle einer Person versetzen, die für eine Maschine verantwortlich ist. Es ist eine Maschine, die auf Ihre Befehle wartet und dann die Befehle ausführt, die Sie ihr geben werden. Auf diesen Seiten werden wir die Erklärungen geben, die Ihnen helfen werden, ein guter CNC-Bediener mit LinuxCNC zu werden.
8. Betriebsarten
Wenn LinuxCNC läuft, gibt es drei verschiedene Haupt-Modi für die Eingabe von Befehlen verwendet. Diese sind Manuell, Auto, und Manuelle Dateneingabe (MDI). Der Wechsel von einem Modus zum anderen macht einen großen Unterschied in der Art und Weise, dass die LinuxCNC-Steuerung verhält. Es gibt bestimmte Dinge, die in einem Modus getan werden können, die in einem anderen nicht getan werden können. Ein Bediener kann eine Achse im manuellen Modus referenzieren, aber nicht im Auto- oder MDI-Modus. Ein Bediener kann die Maschine veranlassen, eine ganze Datei voll von G-Codes in der Auto-Modus, aber nicht in der manuellen oder MDI ausführen.
Im manuellen Modus wird jeder Befehl einzeln eingegeben. In menschlicher Sprache könnte ein manueller Befehl lauten: "Kühlmittel einschalten" oder "X mit 25 Zoll pro Minute verfahren". Dies entspricht in etwa dem Umlegen eines Schalters oder dem Drehen des Handrads für eine Achse. Diese Befehle werden normalerweise auf einer der grafischen Oberflächen durch Drücken einer Schaltfläche mit der Maus oder durch Drücken einer Taste auf der Tastatur ausgeführt. Im Automodus kann eine ähnliche Taste oder ein Tastendruck verwendet werden, um ein ganzes Programm mit G-Code zu laden oder dessen Ausführung zu starten, das in einer Datei gespeichert ist. Im MDI-Modus kann der Bediener einen Codeblock eingeben und die Maschine durch Drücken der <Return>- oder <Enter>-Taste auf der Tastatur anweisen, ihn auszuführen.
Einige Bewegungssteuerungsbefehle sind gleichzeitig verfügbar und führen in allen Modi zu denselben Bewegungsänderungen. Dazu gehören Abbruch, Notaus und Vorschub-Override. Befehle wie diese sollten selbsterklärend sein.
Die AXIS-Benutzeroberfläche verbirgt einige der Unterschiede zwischen Auto und den anderen Modi, indem sie Auto-Befehle in den meisten Fällen verfügbar macht. Sie verwischt auch die Unterscheidung zwischen Manuell und MDI, da einige manuelle Befehle, wie z. B. "Touch Off", eigentlich durch das Senden von MDI-Befehlen implementiert werden. Dies geschieht, indem automatisch in den Modus gewechselt wird, der für die vom Benutzer angeforderte Aktion erforderlich ist.