Wenn das, was Sie bekommen, nicht das ist, was Sie erwarten, haben Sie oft nur eine Erfahrung gemacht. Wenn man aus den Erfahrungen lernt, versteht man das Ganze besser. Die Diagnose von Problemen erfolgt am besten durch "Teilen und Herrschen". Damit ist gemeint, dass sich das Problem am schnellsten finden lässt, wenn man jedes Mal 1/2 der Variablen aus der Gleichung entfernen kann. In der realen Welt ist dies nicht immer der Fall, aber es ist normalerweise ein guter Ausgangspunkt.

1. Häufige Probleme

1.1. Stepper bewegt sich einen Schritt

Der häufigste Grund, warum sich ein Schrittmotor bei einer Neuinstallation nicht bewegt, ist, dass die Schritt- und Richtungssignale vertauscht sind. Wenn Sie die Tasten "Tippen vorwärts" und "Tippen rückwärts" abwechselnd drücken und der Schrittmotor sich jedes Mal um einen Schritt und in dieselbe Richtung bewegt, haben Sie einen Anhaltspunkt.

1.2. Keine Stepper bewegen sich

Viele Laufwerke haben einen Freigabe-Pin oder benötigen eine Ladungspumpe, um den Ausgang zu aktivieren.

1.3. Abstand nicht korrekt

Wenn Sie der Achse befehlen, sich um eine bestimmte Strecke zu bewegen, und sie sich nicht um diese Strecke bewegt, dann ist Ihre Maßstabseinstellung falsch.

2. Fehlermeldungen

2.1. Folgender Fehler

Das Konzept des Schleppfehlers ist seltsam, wenn es um Schrittmotoren geht. Da sie ein Open-Loop-System sind, gibt es keine Positionsrückmeldung, um Sie wissen zu lassen, wenn Sie tatsächlich außerhalb des Bereichs sind. LinuxCNC berechnet, ob es mit der Bewegung mithalten kann, und wenn nicht, dann gibt es einen der folgenden Fehler. Folgende Fehler sind in der Regel das Ergebnis einer der folgenden auf Stepper-Systeme.

  • FERROR zu klein (engl. FERROR too small)

  • MIN_FERROR zu klein (engl. MIN_FERROR too small)

  • MAX_VELOCITY zu schnell (engl. MAX_VELOCITY too fast)

  • MAX_ACCELERATION zu schnell (engl. MAX_ACCELERATION too fast)

  • BASE_PERIOD zu lang eingestellt (engl. BASE_PERIOD set too long)

  • Zu einer Achse hinzugefügtes Umkehrspiel (engl. Backlash added to an axis)

Any of the above can cause the real-time pulsing to not be able to keep up the requested step rate. This can happen if you didn’t run the latency test long enough to get a good number to plug into the StepConf Wizard, or if you set the Maximum Velocity or Maximum Acceleration too high.

Wenn Sie Umkehrspiel hinzufügten, müssen Sie die STEPGEN_MAXACCEL bis zu doppelt so hoch wie die MAX_ACCELERATION in dem AXIS Abschnitt der INI-Datei setzen für jede Achse, für die Sie ein Umkehrspiel erhöhten. LinuxCNC verwendet "zusätzliche Beschleunigung" bei Richtungswechsel, um das Umkehrspiel zu kompensieren. Ohne die Spiel-Korrektur kann die Beschleunigung des Schritt-Generators nur ein paar Prozent über der des Bewegungsplaners liegen.

2.2. RTAPI-Fehler

Wenn Sie diese Fehlermeldung erhalten:

RTAPI: ERROR: Unerwartete Echtzeitverzögerung bei Aufgabe n (engl. Unexpected realtime delay on task n)

This error is generated by rtapi based on an indication from RTAI that a deadline was missed. It is usually an indication that the BASE_PERIOD in the [EMCMOT] section of the ini file is set too low. You should run the Latency Test for an extended period of time to see if you have any delays that would cause this problem. If you used the StepConf Wizard, run it again, and test the Base Period Jitter again, and adjust the Base Period Maximum Jitter on the Basic Machine Information page. You might have to leave the test running for an extended period of time to find out if some hardware causes intermittent problems.

LinuxCNC verfolgt die Anzahl der CPU-Zyklen zwischen den Aufrufen des Echtzeit-Threads. Wenn ein Element Ihrer Hardware verursacht Verzögerungen oder Ihre Echtzeit-Threads zu schnell eingestellt sind, werden Sie diesen Fehler erhalten.

Anmerkung
Dieser Fehler wird nur einmal pro Sitzung angezeigt. Wenn Sie Ihre BASE_PERIOD zu niedrig angesetzt haben, könnten Sie Hunderttausende von Fehlermeldungen pro Sekunde erhalten, wenn mehr als eine angezeigt würde.

3. Testen

3.1. Schritt-Timing

Wenn Sie feststellen, dass eine Achse über mehrere Bewegungen hinweg an der falschen Stelle landet, ist es wahrscheinlich, dass Sie die Richtungshaltezeiten oder das Schritt-Timing für Ihre Stepper-Treiber nicht korrekt eingestellt haben. Bei jedem Richtungswechsel kann ein Schritt oder mehr verloren gehen. Wenn die Motoren blockieren, ist es auch möglich, dass Sie entweder die MAX_ACCELERATION oder MAX_VELOCITY für diese Achse zu hoch eingestellt haben.

Mit dem folgenden Programm wird die Konfiguration der Z-Achse auf ihre korrekte Einstellung geprüft. Kopieren Sie das Programm in Ihr Verzeichnis \~/emc2/nc_files und nennen Sie es TestZ.ngc oder ähnlich. Nullen Sie Ihre Maschine mit Z = 0,000 auf der Tischplatte. Laden Sie das Programm und führen Sie es aus. Es wird 200 Bewegungen von 0,5 bis 1" machen. Wenn Sie ein Konfigurationsproblem haben, werden Sie feststellen, dass die Endposition nicht bei 0,500" endet, wie es das Achsenfenster anzeigt. Um eine andere Achse zu testen, ersetzen Sie einfach die Z-Achse durch die gewünschte Achse in den G0-Zeilen.

( Testprogramm, um zu sehen, ob die Z-Achse ihre Position verliert )
( msg, Test 1 der Z-Achsenkonfiguration )
G20 #1000=100 ( iteriere 100 mal )
( diese Schleife hat Verzögerungen nach den Bewegungen )
( testet Beschleunigungs- und Geschwindigkeitseinstellungen )
o100 while [#1000]
   G0 Z1.000
   G4 P0.250
   G0 Z0.500
   G4 P0.250
   #1000 = [#1000 - 1]
o100 endwhile
( msg, Test 2 der Z-Achsenkonfiguration S zum Fortfahren)
M1 (hier anhalten)
#1000=100 ( Schleife 100 mal )
( die nächste Schleife hat keine Verzögerungen nach den Bewegungen )
( testet die Richtungshaltezeiten in der Treiberkonfiguration und auch die maximale Beschleunigungseinstellung )
o101 while [#1000]
   G0 Z1.000
   G0 Z0.500
   #1000 = [#1000 - 1]
o101 endwhile
( msg, Done...Z sollte genau .5" über dem Tisch liegen )
M2