1. Dateispeicherorte

LinuxCNC sucht nach den Konfigurations- und G-Code-Dateien an einem bestimmten Ort. Der Ort hängt davon ab, wie Sie LinuxCNC ausführen.

1.1. Installiert

Wenn Ihr LinuxCNC von der Live-CD oder Sie über eine .deb installiert haben, und verwenden Sie die Konfiguration Picker LinuxCNC aus dem Menü LinuxCNC, so schaut LinuxCNC in die folgenden Verzeichnisse:

  • Das LinuxCNC-Verzeichnis befindet sich unter ‚/home/benutzername/linuxcnc‘.

  • Die Konfigurationsverzeichnisse befinden sich unter /home/benutzername/linuxcnc/configs.

    • Die Konfigurationsdateien befinden sich unter /home/benutzername/linuxcnc/configs/name-of-config.

  • Die G-Code-Dateien befinden sich unter /home/benutzername/linuxcnc/nc_files'.

Bei einer Konfiguration mit dem Namen Mill und dem Benutzernamen Fred würde die Verzeichnis- und Dateistruktur zum Beispiel wie folgt aussehen.

  • /home/fred/linuxcnc

  • /home/fred/linuxcnc/nc_files

  • /home/fred/linuxcnc/configs/mill

    • /home/fred/linuxcnc/configs/mill/mill.ini

    • /home/fred/linuxcnc/configs/mill/mill.hal

    • /home/fred/linuxcnc/configs/mill/mill.var

    • /home/fred/linuxcnc/configs/mill/tool.tbl

1.2. Befehlszeile

Wenn Sie LinuxCNC von der Kommandozeile aus und geben Sie den Namen und den Speicherort der INI-Datei können die Dateispeicherorte in einem anderen Ort sein. Um die Optionen für die Ausführung von LinuxCNC von der Kommandozeile laufen linuxcnc -h.

Anmerkung
Optionale Speicherorte für einige Dateien können in der INI-Datei konfiguriert werden. Siehe den Abschnitt <<sub:ini:sec:display,[DISPLAY]>> und den Abschnitt <<sub:ini:sec:rs274ngc,[RS274NGC]>>.

2. Dateien

Jedes Konfigurationsverzeichnis benötigt mindestens die folgenden Dateien:

  • Eine INI-Datei .ini

  • Eine HAL-Datei .hal oder HALTCL-Datei .tcl, die im Abschnitt HAL der INI-Datei angegeben ist.

Anmerkung
Für einige GUIs können andere Dateien erforderlich sein.

Optional können Sie auch haben:

  • Eine Variablendatei .var

    • Wenn Sie eine .var-Datei in einem Verzeichnis weglassen, aber <<sub:ini:sec:rs274ngc,[RS274NGC]>> PARAMETER_FILE=somefilename.var, wird die Datei für Sie erstellt werden, wenn LinuxCNC startet.

    • Wenn Sie eine .var-Datei weglassen und den Punkt [RS274NGC] PARAMETER_FILE weglassen, wird eine var-Datei mit dem Namen rs274ngc.var erstellt, wenn LinuxCNC startet. Es kann einige verwirrende Meldungen geben, wenn [RS274NGC]PARAMETER_FILE weggelassen wird.

  • Eine Werkzeugtabellendatei .tbl, wenn <<sub:ini:sec:emcmot,[EMCMOT]>> TOOL_TABLE in der INI-Datei angegeben wurde. Einige Konfigurationen benötigen keine Werkzeugtabelle.

3. Schrittmotor-Systeme (engl. stepper systems)

3.1. Basiszeitraum (engl. base period)

BASE_PERIOD ist der Herzschlag von Ihrem LinuxCNC Computer.
[Dieser Abschnitt bezieht sich auf die Verwendung stepgen, LinuxCNCs eingebauten Schritt-Generator. Einige Hardware-Geräte haben ihre eigenen Schritt-Generator und nicht mit LinuxCNC ' s built-in ein. In diesem Fall, verweisen wir auf Ihr Hardware-Handbuch]
. In jeder Periode entscheidet der Software-Schrittgenerator, ob es Zeit für einen weiteren Schrittimpuls ist. Eine kürzere Periode ermöglicht es Ihnen, mehr Impulse pro Sekunde zu erzeugen, innerhalb von Grenzen. Wenn Sie jedoch eine zu kurze Periode wählen, verbringt Ihr Computer so viel Zeit mit der Erzeugung von Schrittimpulsen, dass alles andere langsamer wird oder vielleicht sogar zum Stillstand kommt. Die Latenzzeit und die Anforderungen an die Schrittmotorsteuerung beeinflussen die kürzeste Zeitspanne, die Sie verwenden können.

Im schlimmsten Fall treten Latenzzeiten nur ein paar Mal pro Minute auf und die Wahrscheinlichkeit, dass eine schlechte Latenz genau dann auftritt, wenn der Motor die Richtung ändert, ist gering. Es kann also zu sehr seltenen Fehlern kommen, die hin und wieder ein Teil ruinieren und bei denen eine Fehlerbehebung unmöglich ist.

Am einfachsten lässt sich dieses Problem vermeiden, indem Sie eine BASE_PERIOD wählen, die der Summe aus der längsten Zeitanforderung Ihres Laufwerks und der schlimmsten Latenz Ihres Computers entspricht. Dies ist nicht immer die beste Wahl. Wenn Sie z. B. ein Laufwerk mit einer Haltezeit von 20 µs für das Richtungssignal betreiben und Ihr Latenztest eine maximale Latenz von 11 µs angibt, erhalten Sie, wenn Sie die BASE_PERIOD auf 20+11 = 31 µs einstellen, in einem Modus 32.258 Schritte pro Sekunde und in einem anderen Modus 16.129 Schritte pro Sekunde, was nicht gerade angenehm ist.

Das Problem liegt in der erforderlichen Haltezeit von 20 µs. Das plus die 11 µs Latenz ist, was uns zwingt, eine langsame 31 µs Zeitraum zu verwenden. Aber die LinuxCNC Software Schritt-Generator hat einige Parameter, mit denen Sie die verschiedenen Zeiten von einer Periode auf mehrere zu erhöhen. Zum Beispiel, wenn steplen Fußnote:[steplen bezieht sich auf einen Parameter, der die Leistung von LinuxCNC eingebauten Schritt-Generator, stepgen, die eine HAL-Komponente ist einstellt. Dieser Parameter passt die Länge des Schrittimpulses selbst. Lesen Sie weiter, alles wird schließlich erklärt werden.] von 1 auf 2 geändert wird, dann wird es zwei Perioden zwischen dem Beginn und dem Ende des Schrittimpulses sein. Wird dirhold
[dirhold bezieht sich auf einen Parameter, der die Länge der Richtungshaltezeit einstellt.]
von 1 auf 3 geändert, dann liegen mindestens drei Perioden zwischen dem Schrittimpuls und einem Wechsel des Richtungspins.

Wenn wir "dirhold" verwenden können, um die 20-µs-Haltezeitanforderung zu erfüllen, dann ist die nächstlängere Zeit die 4,5-µs-High-Time. Addiert man die Latenzzeit von 11 µs zu der hohen Zeit von 4,5 µs, so erhält man eine Mindestzeit von 15,5 µs. Wenn Sie 15,5 µs ausprobieren, stellen Sie fest, dass der Computer zu träge ist, also entscheiden Sie sich für 16 µs. Wenn wir "dirhold" auf 1 lassen (Standardeinstellung), dann ist die Mindestzeit zwischen Schritt und Richtung die 16 µs Periode minus die 11 µs Latenz = 5 µs , was nicht genug ist. Wir brauchen weitere 15 µs . Da die Periode 16 µs beträgt, brauchen wir eine weitere Periode. Also ändern wir dirhold von 1 auf 2. Jetzt beträgt die Mindestzeit zwischen dem Ende des Schrittimpulses und dem Richtungswechsel 5+16=21 µs, und wir müssen uns keine Sorgen mehr machen, dass der Antrieb aufgrund der Latenz die falsche Richtung einschlägt.

Weitere Informationen zu stepgen finden Sie im Abschnitt stepgen.

3.2. Schritt-Timing

Schrit-Timing und Schrittweite sind bei einigen Antrieben unterschiedlich. In diesem Fall wird der Schrittpunkt wichtig. Wenn der Antrieb bei der fallenden Flanke schaltet, sollte der Ausgangspin invertiert werden.

4. Servosysteme

4.1. Grundbetrieb

Servosysteme sind in der Lage, eine höhere Geschwindigkeit und Genauigkeit zu erreichen als entsprechende Schrittmachersysteme, sind aber teurer und komplexer. Im Gegensatz zu Schrittmotorensystemen benötigen Servosysteme eine Art von Positionsrückmeldung und müssen eingestellt oder getunt werden, da sie nicht wie Schrittmotorensysteme direkt nach dem Auspacken funktionieren. Diese Unterschiede bestehen, weil Servos ein geschlossener Regelkreis sind, im Gegensatz zu Schrittmotoren, die im Allgemeinen offener Regelkreis betrieben werden. Was bedeutet geschlossener Regelkreis? Schauen wir uns ein vereinfachtes Diagramm an, wie ein Servomotorensystem angeschlossen ist.

Vereinfachtes Schema für den Anschluss eines Servomotorsystems
Abbildung 1. Servo Loop

Dieses Diagramm zeigt, dass das Eingangssignal (und das Rückkopplungssignal) den Summierverstärker antreibt, der Summierverstärker den Leistungsverstärker antreibt, der Leistungsverstärker den Motor antreibt, der Motor die Last (und das Rückkopplungsgerät) antreibt und das Rückkopplungsgerät (und das Eingangssignal) den Motor antreibt. Dies sieht aus wie ein Kreis (eine geschlossene Schleife), in dem A B, B C, C D und D A steuert.

Wenn Sie bisher noch nicht mit Servosystemen gearbeitet haben, wird Ihnen das zweifellos zunächst sehr seltsam vorkommen, vor allem im Vergleich zu normalen elektronischen Schaltungen, bei denen die Eingänge nahtlos zu den Ausgängen führen und nicht zurück.Fußnote:[Falls es hilft, das nächstliegende Äquivalent in der digitalen Welt sind Zustandsmaschinen, sequentielle Maschinen und so weiter, wo das, was die Ausgänge jetzt tun, davon abhängt, was die Eingänge (und die Ausgänge) vorher getan haben. Wenn das nicht hilft, dann ist es eben so]. Wenn alles steuert alles andere, wie kann das jemals funktionieren, wer ist verantwortlich? Die Antwort ist, dass LinuxCNC 'kann dieses System steuern, aber es muss es durch die Wahl einer von mehreren Kontrollmethoden zu tun. Die Steuerungsmethode, die LinuxCNC verwendet, eine der einfachsten und besten, wird PID genannt.

PID steht für Proportional, Integral und Derivativ. Der Proportionalwert bestimmt die Reaktion auf den aktuellen Fehler, der Integralwert bestimmt die Reaktion auf der Grundlage der Summe der letzten Fehler und der Derivativwert bestimmt die Reaktion auf der Grundlage der Rate, mit der sich der Fehler geändert hat. Sie sind drei gemeinsame mathematische Techniken, die auf die Aufgabe, einen Arbeitsprozess, um einen Sollwert zu folgen angewendet werden. Im Fall von LinuxCNC ist der Prozess, den wir steuern wollen, die tatsächliche Achsenposition und der Sollwert ist die befohlene Achsenposition.

PID-Schleife, PID steht für Proportional, Integral und Derivativ
Abbildung 2. PID-Schleife

Durch Abstimmung der drei Konstanten im PID-Regler-Algorithmus kann der Regler eine auf die spezifischen Prozessanforderungen abgestimmte Regelwirkung erzielen. Die Reaktion des Reglers lässt sich beschreiben anhand des Ansprechens des Reglers auf eine Regelabweichung, des Ausmaßes, in dem der Regler über den Sollwert hinausschießt, und des Grades der Systemschwingung.

4.2. Proportionaler Ausdruck

Der proportionale Ausdruck(manchmal als Verstärkung bezeichnet) nimmt eine Änderung am Ausgang vor, die proportional zum aktuellen Fehlerwert ist. Eine hohe proportionale Verstärkung führt zu einer großen Änderung des Ausgangs bei einer gegebenen Änderung des Fehlers. Wenn die Proportionalverstärkung zu hoch ist, kann das System instabil werden. Im Gegensatz dazu führt eine kleine Verstärkung zu einer kleinen Ausgangsantwort auf einen großen Eingangsfehler. Wenn die Proportionalverstärkung zu niedrig ist, kann der Regeleingriff bei der Reaktion auf Netzstörungen zu gering sein.

Bei Abwesenheit von Störungen pendelt sich eine reine Proportionalregelung nicht auf ihren Zielwert ein, sondern behält einen stationären Fehler bei, der eine Funktion der Proportionalverstärkung und der Prozessverstärkung ist. Trotz des stationären Offsets zeigen sowohl die Abstimmungstheorie als auch die industrielle Praxis, dass der Proportionalanteil den größten Teil der Ausgangsänderung ausmachen sollte.

4.3. Integraler Begriff

Der Beitrag des Integral-Anteils (manchmal im Englischen auch Reset genannt, oder kurz I-Anteil) ist proportional zur Größe des Fehlers und zur Dauer des Fehlers. Die Summierung des momentanen Fehlers über die Zeit (Integration des Fehlers) ergibt die akkumulierte Abweichung, die zuvor hätte korrigiert werden müssen. Der kumulierte Fehler wird dann mit der Integralverstärkung multipliziert und zum Reglerausgang addiert.

Der Integral-Anteil (wenn er zum Proportional-Anteil (kurz P-Anteil) hinzugefügt wird) beschleunigt die Bewegung des Prozesses in Richtung Sollwert und beseitigt den verbleibenden stationären Fehler, der bei einem reinen Proportionalregler auftritt. Da der Integral-Anteil jedoch auf akkumulierte Fehler aus der Vergangenheit reagiert, kann er dazu führen, dass der aktuelle Wert über den Sollwert hinausschießt (den Sollwert überschreitet und dann eine Abweichung in die andere Richtung erzeugt).

4.4. Differenzierender-Anteil (D-Anteil)

Die Änderungsrate des Prozessfehlers wird berechnet, indem die Steigung des Fehlers nach der Zeit (d. h. seine erste Ableitung nach der Zeit) bestimmt und diese Änderungsrate mit der Ableitungsverstärkung multipliziert wird.

Der Derivationsanteil verlangsamt die Änderungsrate des Reglerausgangs, und dieser Effekt ist in der Nähe des Reglersollwerts am deutlichsten. Daher wird die Ableitungsregelung eingesetzt, um das Ausmaß des durch den Integralanteil verursachten Überschwingens zu verringern und die kombinierte Regler-Prozess-Stabilität zu verbessern.

4.5. Schleifenabstimmung

Wenn die Parameter des PID-Reglers (die Verstärkungen des Proportional-, Integral- und Differentialanteils) falsch gewählt werden, kann der geregelte Prozesseingang instabil sein, d. h. sein Ausgang divergiert, mit oder ohne Schwingung, und wird nur durch Sättigung oder mechanischen Bruch begrenzt. Die Abstimmung eines Regelkreises ist die Anpassung seiner Regelparameter (Verstärkung/Proportionalbereich, Integralverstärkung/Rückstellung, Ableitungsverstärkung/Rate) an die optimalen Werte für das gewünschte Regelverhalten.

4.6. Manuelle Abstimmung

Eine einfache Abstimmungsmethode besteht darin, zunächst die Werte I und D auf Null zu setzen. Erhöhen Sie den P-Wert, bis das Ausgangssignal der Schleife oszilliert, dann sollte der P-Wert auf etwa die Hälfte dieses Wertes eingestellt werden, um eine Reaktion vom Typ Viertelamplitudenabfall zu erzielen. Erhöhen Sie dann I, bis der Offset in ausreichender Zeit für den Prozess korrigiert ist. Ein zu großer I-Wert führt jedoch zu Instabilität. Erhöhen Sie schließlich D, falls erforderlich, bis die Schleife nach einer Laststörung akzeptabel schnell ihren Sollwert erreicht. Ein zu großes D führt jedoch zu übermäßigem Ansprechen und Überschwingen. Eine schnelle PID-Schleifenabstimmung schwingt in der Regel leicht über, um den Sollwert schneller zu erreichen; einige Systeme können jedoch kein Überschwingen akzeptieren, in diesem Fall ist ein überdämpftes Regelsystem erforderlich, das eine P-Einstellung erfordert, die deutlich unter der Hälfte der P-Einstellung liegt, die eine Schwingung verursacht.

5. RTAI

Die Echtzeit-Anwendungsschnittstelle (Real Time Application Interface, RTAI) wird verwendet, um die beste Echtzeitleistung (RT) zu erzielen. Mit dem gepatchten RTAI-Kernel können Sie Anwendungen mit strengen Zeitvorgaben schreiben. RTAI gibt Ihnen die Möglichkeit, Dinge wie die Software-Schritterzeugung durchzuführen, die ein präzises Timing erfordern.

5.1. ACPI

Das Advanced Configuration and Power Interface (ACPI) hat viele verschiedene Funktionen, von denen die meisten die RT-Leistung beeinträchtigen (z. B.: Energieverwaltung, CPU-Abschaltung, CPU-Frequenzskalierung usw.). Der LinuxCNC-Kernel (und wahrscheinlich alle RTAI-gepatchten Kernel) hat ACPI deaktiviert. ACPI kümmert sich auch um das Herunterfahren des Systems, nachdem ein Shutdown gestartet wurde, und deshalb müssen Sie möglicherweise den Netzschalter drücken, um Ihren Computer vollständig auszuschalten. Die RTAI-Gruppe hat dies in den letzten Versionen verbessert, so dass sich Ihr LinuxCNC-System vielleicht doch von selbst ausschaltet.

6. Hardwareoptionen für Computer-/Maschinenschnittstellen

6.1. litehm2/rv901t

Litehm2 ist ein Board-agnostischer Port der HostMot2-FPGA-Firmware. Das erste unterstützte Board ist das linsn rv901t, das ursprünglich als LED-Controller-Board gebaut wurde, aber aufgrund der verfügbaren I/Os auch gut als Maschinencontroller geeignet ist. Es bietet etwa 80 5V-gepufferte I/O-Ports und kann zwischen allen Eingängen und allen Ausgängen umschalten. Es kann auch leicht modifiziert werden, um die Ports halb/halb zwischen Eingang und Ausgang aufzuteilen. Der rv901t wird über Gigabit- oder 100-Mbit-Ethernet mit dem Computer verbunden.

Litehm2 basiert auf dem LiteX-Framework, das eine breite Palette von FPGA-Boards unterstützt. Derzeit wird nur das rv901t unterstützt, aber die Unterstützung für weitere Boards ist in der Entwicklung.

Weitere Informationen finden Sie unter https://github.com/sensille/litehm2.