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

If your running LinuxCNC from the Live CD or you installed via a .deb and use the configuration picker LinuxCNC from the menu LinuxCNC looks in the following directories:

  • 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.

The simplest way to avoid this problem is to choose a BASE_PERIOD that is the sum of the longest timing requirement of your drive, and the worst case latency of your computer. This is not always the best choice. For example, if you are running a drive with a 20 µs direction signal hold time requirement, and your latency test said you have a maximum latency of 11 µs , then if you set the BASE_PERIOD to 20+11 = 31 µs you get a not-so-nice 32,258 steps per second in one mode and 16,129 steps per second in another mode.

The problem is with the 20 µs hold time requirement. That plus the 11 µs latency is what forces us to use a slow 31 µs period. But the LinuxCNC software step generator has some parameters that let you increase the various times from one period to several. For example, if steplen
[steplen refers to a parameter that adjusts the performance of LinuxCNC’s built-in step generator, stepgen, which is a HAL component. This parameter adjusts the length of the step pulse itself. Keep reading, all will be explained eventually.]
is changed from 1 to 2, then there will be two periods between the beginning and end of the step pulse. Likewise, if dirhold
[dirhold refers to a parameter that adjusts the length of the direction hold time.]
is changed from 1 to 3, there will be at least three periods between the step pulse and a change of the direction pin.

If we can use dirhold to meet the 20 µs hold time requirement, then the next longest time is the 4.5 µs high time. Add the 11 µs latency to the 4.5 µs high time, and you get a minimum period of 15.5 µs . When you try 15.5 µs , you find that the computer is sluggish, so you settle on 16 µs . If we leave dirhold at 1 (the default), then the minimum time between step and direction is the 16 µs period minus the 11 µs latency = 5 µs , which is not enough. We need another 15 µs . Since the period is 16 µs , we need one more period. So we change dirhold from 1 to 2. Now the minimum time from the end of the step pulse to the changing direction pin is 5+16=21 µs , and we don’t have to worry about the drive stepping the wrong direction because of latency.

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. Computer/Machine Interface Hardware Options

6.1. litehm2/rv901t

Litehm2 is a board-agnostic port of the HostMot2 FPGA firmware. The first board it supports is the linsn rv901t, which was originally built as a LED controller board, but due to the available I/O it is well suited to act as a machine controller. It offers around 80 5V-buffered I/O ports and can switch between all input and all output. it is also easily modified to split the ports half/half between input and output. The rv901t interfaces to the computer via Gigabit or 100Mbit Ethernet.

Litehm2 is based on the LiteX framework which supports a wide range of FPGA boards. Currently only the rv901t is supported, but support for more boards is under development.

More information can be found at https://github.com/sensille/litehm2.