Um die grafische Oberfläche von LinuxCNC einfach und enorm flexibel zu halten sind viele Einstellungen nur über die INI Datei erreichbar.
Die INI Datei selbst ist dabei eine Text Datei die mit jedem Standard Texteditor bearbeitet werden kann wobei Änderungen immer erst beim nächsten neustart der Konfiguration wirksam werden.
Die INI Datei ist in Sektionen aufgeteilt die mit eckigen Klammern gekennzeichnet sind was die Lesbarkeit deutlich vereinfacht.
Die Parameter der INI können natürlich bearbeitet werden, darüber hinaus können die Sektionen aber auch mit diversen nützlichen Parametern erweitert werden. Eine vollständige Auflistung der Parameter kann in der INI Dolumentation von LinuxCNC eingesehen werden.
Da die Anzahl der INI Doku mittlerweile zu einer beachtlichen Enzyklopädie angewachsen ist sollen hier folglich nur die gebräuchlichsten Parameter der Sektionen beschrieben werden.
Eine Konfiguration kann mit dem StepConf oder PncConf Wizard erstellt oder eine Vorlage aus den Beispiel Konfigurationen genutzt werden ( -->Linux Anwendungsmenü -->CNC -->LinuxCNC).
Jede startfähige Konfiguration enthält dabei bereits eine fertig eingerichtete INI die sich im Konfigurations Ordner befindet.
/home/BENUTZERNAME/linuxcnc/configs/NAME_DER_KONFIGURATION/
In der [DISPLAY] Sektion finden wir Parameter um die Benutzeroberfläche anzupassen.
Interessant sind sowohl die Parameter zum einstellen der Schieberegler als auch die Möglichkeit aus gänzlich unterschiedlichen Benutzeroberflächen zu wählen.
Der PROGRAM_PREFIX ist ein guter Kandidat um den Alltag zu beschleunigen.
POSITION_FEEDBACK spielt nur eine Rolle wenn es eine Positions-Rückmeldung gibt wie es bei Servo Maschinen üblich ist. Diese Rückmeldung kann mit der Einstellung ACTUAL sehr komfortabel überprüft werden.
Parameter | Beschreibung |
DISPLAY | LinuxCNC bietet gänzlich verschiedenen Benutzeroberflächen (GUIs) zur Auswahl an. |
OPEN_FILE | GCode Datei die beim starten geladen wird. |
POSITION_OFFSET | Der Nullpunkt der Positionsangaben in der Vorschau kann der Nullpunkt der Maschine (MACHINE) oder der angetastet Nullpunkt (RELATIVE) sein. |
POSITION_FEEDBACK | Das Vorschauwerkzeug kann die Soll- (COMMANDED) oder Ist-Position (ACTUAL) anzeigen. Nützlich kann das bei der Einrichtung von Servo Maschinen sein. |
MAX_FEED_OVERRIDE | Maximum des Schiebereglers für die Vorschubübersteuerung. Ein Wert von 2.5 entspricht 250% |
DEFAULT_LINEAR_VELOCITY | Startwert des Schiebereglers für die Schrittgeschwindigkeit in mm/s. |
MAX_LINEAR_VELOCITY | Maximum des Schiebereglers für die Schrittgeschwindigkeit in mm/s. |
INCREMENTS | Schrittweiten die beim manuellen Fahren zur Verfügung stehen sollen. |
PROGRAM_PREFIX | Startpfad beim öffnen von NGC (GCODE) Dateien. |
INTRO_GRAPHIC | Pfad des Bildes das beim starten der Konfiguration angezeigt werden soll. Erlaubt sind GIF Bilder. |
INTRO_TIME | Anzeigedauer des Startbildes. |
EDITOR | Text Editor der für den Menü Eintrag -->Datei -->bearbeiten... genutzt werden soll. |
CYCLE_TIME | Update Intervall der Benutzeroberfläche |
MIN_SPINDLE_OVERRIDE | Minimum des Schiebereglers für die Spindelübersteuerung. Ein Wert von 0.2 entspricht 20%. |
MAX_SPINDLE_OVERRIDE | Maximum des Schiebereglers für die Spindelübersteuerung. Ein Wert von 2.5 entspricht 250%. |
DEFAULT_SPINDLE_SPEED | Startwert des Schiebereglers für die Spindelübersteuerung. |
HAL ist ein zentrales Werkzeug wenn es darum geht alle Arten von Hardware an LinuxCNC anzubinden.
HALUI = halui lädt mit dem Start von LinuxCNC einen Baustein der diverse Anschlüsse bietet um die Benutzeroberfläche über angeschlossene Hardware zu steuern. Konkret lässt sich das z.B. einsetzen um ein externes Bedienpults ,Fernbedieungen oder Statusanzeigen anzuschließen.
Die POSTGUI_HALFILE wird im Gegensatz zur HALFILE später geladen. Das ist wichtig beim Einsatz von eigenen grafischen Erweiterungen (Panels).
Erst wenn ein Panel vollständig geladen wurde existieren auch die HAL Anschlüsse des Panels und können auch erst dann verbunden werden. DIe POSTGUI_HALFILE wird daher explizit erst am Ende des Startvorgangs ausgeführt.
Beide HALFILE Parameter dürfen mehrfach in der [HAL] Sektion aufgerufen werden.
Parameter | Beschreibung |
HALUI | Läd das halui Modul für Interaktionen zwischen der Benutzeroberfläche und externer Hardware. |
HALFILE | Läd die genannte HAL Datei um die LinuxCNC Softwarefunktion mit externer Hardware zu verbinden. |
POSTGUI_HALFILE | Läd die genannte HAL Datei am Ende des LinuxCNC Startprozesses. |
SHUTDOWN | Läd die genannte HAL Datei beim beenden von LinuxCNC. Die Ausführung der Datei kann nicht garantiert werden da verwendete Treiber und das Betriebssystem die Ausführung anhalten oder abbrechen können. |
In diesem Bereich sind Parameter zusammengefasst die alle Achsen gleichermaßen betreffen. Auch einige grundlegende Angaben wie die Anzahl der Achsen sind hier zu finden.
Der Parameter POSITION_FILE gibt einen beliebigen Dateinamen an, der sich im Konfigurationordner befinden muss. In der Datei wird beim beenden die Positon der Achsen gespeichert und beim Start von LinuxCNC wieder eingelesen.
Das einsparen der Referenzfahrt kann aufgrund der elektromechanischen Vorraussetzungen von Maschinen nicht empfohlen werden. Darüber hinaus wird nur gespeichert wenn LinuxCNC ordnungsgemäß beendet wird.
Sinnvoll einsetzbar ist die Option dagegen um angetastete Positonen nicht zu verlieren.
Der Parameter NO_FORCE_HOMING = 1 sorgt dafür das auch ohne vorherige Referenzfahrt ein GCode Programm ausgeführt werden kann, was je nach Maschienenkonstruktion ein relativ hohes Risiko mit sich bringen kann.
Parameter | Beschreibung |
AXES | Anzahl der Achsen die im System genutzt werden sollen |
COORDINATES | Hier werden die verfügbaren Achsen Namen definiert. Mögliche Werte sind X, Y, Z, A, B, C, U, V, W. |
LINEAR_UNITS | Einheit für gerade Bewegungen (z.B. mm oder inch) |
ANGULAR_UNITS | Einheit für rotierende Bewegungen (z.B. degree oder rad) |
MAX_VELOCITY | Maximale Geschwindigkeit der Achsen. Das gilt insbesondere auch wenn mehrer Achsen gleichzeitig verfahren werden, so das sich die Geschwindigkeiten aufsummieren. |
POSITION_FILE | Datei im Konfigurationsordner zum zwischenspeichern der Positon beim Beender von LinuxCNC. |
NO_FORCE_HOMMING | Ermöglicht das ausführen von GCode Dateien und MDI Befehlen ohne vorherige Referenzfahrt. |
Diese Sektion beinhaltet alle Parameter der Achsen und muss für jede Achse separat aufgeführt sein.
Viele der Parameter benötigen etwas Hintergrundwissen.
Einige der Parameter erklären sich daher erst bei der Einrichtung der Antriebe. Empfehlenswerte Artikel sind je nach Maschinentyp folgende:
Der Inhalt der Sektion kann sich je nach Maschinen Typ deutlich unterscheiden. Im linken Bild ist eine Schrittmotor Konfiguration zu sehen, im rechten eine Servomotor Konfiguration.
Allgemeine Parameter
Parameter | Beschreibung |
TYPE | Auswahl des linearen oder rotierenden Achsentyps (LINEAR oder ANGULAR) |
HOME | Die Position die nach einer Referenzfahrt angefahren wird. Gemeint sind absolute Koordinaten, Antastpositionen oder Verschiebungen haben hier keinen Einfluss. |
MAX_VELOCITY | Die maximal erlaubte Geschwindigkeit der Achse in mm/s |
MAX_ACCELERATION | Die maximal erlaubte Beschleunigung der Achse in mm/s² |
MIN_LIMIT | Der untere Grenzwert vom Arbeitsbereich der Maschine |
MAX_LIMIT | Der obere Grenzwert vom Arbeitsbereich der Maschine |
HOME_OFFSET | Die Position des Referenzschalters |
HOME_SEARCH_VEL | Die Geschwindigkeit UND DIE RICHTUNG (Vorzeichen) mit der ein Referenzschalter (schnell) angefahren wird. |
HOME_LATCH_VEL | Die Geschwindigkeit UND DIE RICHTUNG (Vorzeichen) mit der ein Referenzschalter (langsam) verlassen wird. |
HOME_FINAL_VEL | Die Geschwindigkeit mit der die HOME Position nach der Referenzfahrt angefahren wird. |
HOME_SEQUENCE | Gibt die Reihenfolge der Achsen bei der Referenzfahrt an. Um z.B. X und Y gleichzeitig zu referenzieren kann die gleiche Reihenfolgen-Nummer mehrmals vergeben werden. |
Schrittmotor Parameter
Parameter | Beschreibung |
STEPGEN_MAXACCEL | Gibt die maximale Beschleunigung des internen Impuls-Generators an. Um Konflikte zu vermeiden sollte der Wert ca. 10% höher als MAX_ACCELERATION sein. Der Wert wird aber letztlich nur intern benutzt und hat keine sichtbare Wirkung zur Folge. |
SCALE oder STEP_SCALE | Anzahl der Impulse die benötigt werden um einen mm zurück zu legen. |
Servoantriebs Parameter
Parameter | Beschreibung |
BACKLASH | Gibt ein ggf. vorhandenes Zahnradspiel bzw. Ungenauigkeiten einer Achse in mm an. Diese Option sollte als letzte Möglichkeit gesehen werden, wenn Ungenauigkeiten seitens der Mechanik vorhanden sind, sollten diese auch seitens der Mechanik behoben werden. |
ENCODER_SCALE oder INPUT_SCALE | Die Anzahl der Impulse die ein Encoder bei einer zurückgelegten Strecke von 1 mm ausgibt. Bei Quadraturencodern muss der Aufgedruckte Impulswert/Umdrehung je nach Hersteller ggf. mit dem Wert 4 multipliziert werden. |
OUTPUT_SCALE | Der interne PID-Regler arbeitet dimensionslos mit Werten von -1.0 bis +1.0. Um diese Werte für Servoendstufen nutzbar zu machen kann ein OUTPUT_SCALE = 10 den Wertebereich auf -10.0V bis +10.0V heraufskalieren. Siehe auch "Setzen von PID Werten" |
OUTPUT_MIN_LIMIT | Ein Mesakarten Parameter für die Begrenzung des minimalen Ausgangswertes. Siehe auch "PID Schutzfunktionen" |
OUTPUT_MAX_LIMIT | Ein Mesakarten Parameter für die Begrenzung des maximalen Ausgangswertes. Siehe auch "PID Schutzfunktionen" |
MAX_OUTPUT | Begrenzung des PID Regler Ausgangs. Der Wert ist abhängig vom OUTPUT_SCALE Wert. Ist OUTPUT_SCALE = 10 und MAX_OUTPUT = 5.0 wäre die Begrenzung z.B. bei 50%. Siehe auch "Setzen von PID Werten" |
FERROR | Weichen die Soll- und Ist-Position einer Achse weiter als der angegebe Wert (in mm) voneinander ab, schaltet LinuxCNC die Maschine aus. Siehe auch "PID Schutzfunktionen" |
MIN_FERROR | MIN_FERROR und FERROR bilden eine Rampe über den gesamten Geschwindigkeitsbereich der Achse. Wird die Soll-Ist-Differenz überschritten schaltet LinuxCNC die Antriebe ab. Siehe auch "PID Schutzfunktionen" |
DEADBAND | Positionsabweichungen (in mm) kleiner als der angegebener Wert werden vom PID Regler nicht mehr ausgeregelt. Hat eine Achse Ihr Ziel (nahezu) erreicht, kann so ggf. z.B. der Stromverbrauch leicht gesenkt werden. Siehe auch "Setzen von PID Werten" |
P | P Wert des PID Reglers für die Positionsregelung. Siehe auch "Setzen von PID Werten" |
I | I Wert des PID Reglers für die Positionsregelung. Siehe auch "Setzen von PID Werten" |
D | D Wert des PID Reglers für die Positionsregelung. Siehe auch "Setzen von PID Werten" |
FF0 | Verstärkt die Reaktion des PID Reglers in Abhängigkeit vom Wert der Zielposition. Siehe auch "Setzen von PID Werten" |
FF1 | Verstärkt die Reaktion des PID Reglers in Abhängigkeit von der Entfernung zur Zielposition. Siehe auch "Setzen von PID Werten" |
FF2 | Verstärkt die Reaktion des PID Reglers in Abhängigkeit von der Beschleunigung zur Zielposition. Siehe auch "Setzen von PID Werten" |
BIAS | Ausgleichswert für eine leichte Drift von Servo betriebenen Achsen. Siehe auch "Setzen von PID Werten" |