Postprozessor für Laser anpassen
Einführung
Das Lasermodul ermöglicht sowohl neue Werkzeugtypen zur Darstellung von Lasern in der Werkzeugdatenbank als auch neue laserspezifische Strategien.
Das Lasermodul stellt jetzt unabhängige Datensätze und Variablen für Laserwerkzeuge und Werkzeugwege bereit. Da diese Ausgänge von der herkömmlichen Router-Steuerung getrennt wurden, ist es für die meisten Maschinen und Steuerungen häufig möglich, einen einzigen Postprozessor zu erstellen, der nahtlos mit Router- oder Laser-Werkzeugwegen zusammenarbeitet. Beachten Sie jedoch, dass Sie möglicherweise dennoch sicherstellen müssen, dass die physische Konfiguration von Ihre Maschine wird abhängig vom Werkzeugwegtyp geändert.
Frühere Postprozessoren funktionieren nicht ordnungsgemäß mit dem Lasermodul
Bitte beachten Sie, dass viele Hersteller von Umrüstsätzen vor der Veröffentlichung des Lasermoduls Vectric-Postprozessoren bereitgestellt haben. Diese verwendeten Workarounds, um die Verwendung einiger Fräser-Werkzeugwegstrategien, wie z. B. Profilieren, mit einem Laserkopf zu ermöglichen. Postprozessoren, die ohne explizite Unterstützung der hier dokumentierten zusätzlichen Funktionen erstellt wurden, funktionieren nicht ordnungsgemäß.
Es gibt im Allgemeinen vier Bereiche, die in einem herkömmlichen Postprozessor geändert werden müssen, um ihn für die Unterstützung von Laser-Werkzeugwegen zu erweitern.
- Unterstützung für eine neue Variable
Power
hinzufügen, die von den neuen Laserstrategien verwendet wird. - Fügen Sie neue laserspezifische Postprozessorblöcke hinzu, um Laser-Werkzeugwege für Ihre Maschine und Steuerung korrekt zu formatieren.
- Ändern Sie alle vorhandenen Postprozessorblöcke, um eine unabhängige Stromversorgung und ein laserspezifisches Verhalten sicherzustellen.
- Fügen Sie eine Markierung hinzu, um der Software von Vectric mitzuteilen, dass dieser Beitrag jetzt Laser-Werkzeugwegstrategien unterstützt.
In den folgenden Abschnitten wird nacheinander auf jeden Bereich eingegangen und es wird ein Beispiel für die Verwendung des GRBL-Gcode-Controllers bereitgestellt. Diese Beispiele stammen vom grbl-Postprozessor (mm und Zoll), der standardmäßig mit der Vectric-Software bereitgestellt wird.
Leistungsvariable
Die Software von Vectric gibt die Leistungseinstellung für einen Laser-Werkzeugweg im Bereich von 1–100 % aus. Wir müssen eine neue Variable hinzufügen, um zu zeigen, wie diese Einstellung für Ihren speziellen Controller formatiert wird. Dies ist auch die Möglichkeit, den rohen Prozentwert auf den Zahlenbereich zu skalieren, den Ihr Controller benötigt.
Beispiel
Bei GRBL-basierten Controllern ist die Leistungseinstellung für einen Laser normalerweise dem Gcode-Spindelgeschwindigkeitssteuerungsbefehl „S“ zugeordnet. Im Lasermodus reagiert der Controller auf eine Änderung der Spindelgeschwindigkeitssteuerung, indem er stattdessen die Leistung des Lasers anpasst. Obwohl er innerhalb des Controllers eingestellt werden kann, beträgt die Standardeinstellung für den maximal erwarteten „S“-Wert – oder die Laserleistung – 1000.
Für GRBL müssen wir daher die POWER-Variable als Gcode-„S“-Befehl formatieren und ihren Ausgabewert um den Faktor zehn skalieren, sodass er im Bereich von 1 bis 1000 liegt (anstelle des Standardwerts von 1 bis 100). .
Der Variableneintrag im Postprozessor lautet:
VAR POWER = [P|C|S|1.0|10.0]
Um diesen Eintrag im Klartext aufzuschlüsseln, sagen wir, dass die POWER-Ausgabe unseres Werkzeugwegs überall in unserer nachfolgenden Post-Definitionsdatei verwendet werden sollte, wo wir die Variable [P] haben. Wir sollten jedoch nur dann einen Befehl ausgeben, wenn sich der POWER-Wert ändert (C). Wir werden die [P]-Variablenpositionen in unserer Werkzeugwegausgabe durch den Befehl „S“ (S) ersetzen. Der Leistungswert sollte als ganze Zahl ohne Dezimalstellen (1,0) formatiert werden und vom Standardwert mit dem Faktor 10 multipliziert werden.
Neue Laser-Postprozessorblöcke
Um die Lasersteuerung zu ermöglichen, stehen im Postprozessor neue Postprozessorblöcke zur Verfügung. Diese sind:
JET_TOOL_ON
– Ausgabe immer dann, wenn für den Werkzeugweg der Laser eingeschaltet sein mussJET_TOOL_POWER
– Ausgabe immer dann, wenn der Werkzeugweg eine Änderung der Laserleistung erfordertJET_TOOL_OFF
– Ausgabe immer dann, wenn der Werkzeugweg den Laser ausschalten muss
Beispiel
In unserem GRBL-Beispiel haben wir die 3 neuen Blocktypen hinzugefügt. Zum Einschalten des Lasers verwendet GRBL den Befehl gcode M4 (normalerweise für die Spindelrichtung gedacht, wird aber von GRBL für die Laserunterstützung „wiederverwendet“). Wir können nun unsere POWER-Variable, oben als [P] definiert, nutzen, um den erforderlichen Leistungswert bereitzustellen. Der Block JET_TOOL_ON
lautet also:
+---------------------------------------------------
+ Commands output when the jet is turned on
+---------------------------------------------------
begin JET_TOOL_ON
"M4[P]"
Zum Ausschalten des Lasers verwendet GRBL den Befehl gcode M5:
+---------------------------------------------------
+ Commands output when the jet is turned off
+---------------------------------------------------
begin JET_TOOL_OFF
"M5"
Um schließlich die Leistung selbst einzustellen, geben wir für GRBL einfach die Leistung aus:
+---------------------------------------------------
+ Commands output when the jet power is changed
+---------------------------------------------------
begin JET_TOOL_POWER
"[P]"
Vorhandene Blöcke ändern
Wir möchten auch, dass wir bei einer Vorschubbewegung auch die Leistung ausgeben. Dazu aktualisieren wir die FEED_MOVE
-Blöcke um [P].
Wir müssen das für alle der verschiedenen Feed-Move-Typen tun.
Darüber hinaus müssen wir Tauchbewegungen vermeiden, die bei eingeschaltetem Laser auftreten. Beim konventionellen Fräsen oder Fräsen muss die Spindel vor einer Eintauchbewegung eingeschaltet sein, aber für einen Laser ist es entscheidend, dass wir sie nur einschalten nach wir haben uns auf die richtige Z-Ebene bewegt (dieses Problem manifestiert sich als „ „Überbrennen“ am Anfang jedes Werkzeugwegsegments). Um sicherzustellen, dass wir diese Anforderungen richtig trennen können, müssen wir möglicherweise alle Spindelbefehle aus Eintauchbewegungen oder anderen Blocktypen entfernen (manche haben sie beispielsweise in der Kopfzeile) und diese in explizite SPINDLE_ON
& aufteilen. PLUNGE_MOVE
Blöcke. Dadurch wird sichergestellt, dass diese Bewegungen nur für Nicht-Laser-Werkzeugwegstrategien und in der richtigen Reihenfolge ausgeführt werden.
Beispiel
Für GRBL ist dies eine einfache Ergänzung am Ende der Feed-Move-Anweisung:
+---------------------------------------------------
+ Commands output for feed rate moves
+---------------------------------------------------
begin FEED_MOVE
"G1[X][Y][Z][P]"
Denken Sie daran, dass wir unsere POWER-Variable so eingestellt haben, dass sie nur bei Änderung ausgegeben wird (C). Beachten Sie daher, dass in der Ausgabe für Vorschubbewegungen mit konstanter Leistung nur ein anfänglicher, sich ändernder Leistungsbefehl enthalten ist. Bei einigen Steuerungen ist die Anzahl der Befehle, die verarbeitet werden können, ein begrenzender Faktor für die Geschwindigkeit des Werkzeugwegs, und insbesondere bei Laserbildern kann dies etwas abgemildert werden, indem nicht wann immer möglich unnötige Befehle gesendet werden.
Für die separate GRBL-Spindel- und Tauchsteuerung sind die Blöcke:
+---------------------------------------------------
+ Command output after the header to switch spindle on
+---------------------------------------------------
begin SPINDLE_ON
"[S]M3"
+---------------------------------------------------
+ Commands output for the plunge move
+---------------------------------------------------
begin PLUNGE_MOVE
"G1[X][Y][Z][F]"
Sie werden feststellen, dass GRBL den M3 zur Steuerung der Oberfräse oder Fräse verwendet. Beachten Sie außerdem, dass die Eintauchbewegung die Fähigkeit erfordert, die Maschine in X und Y zu bewegen, um Rampen zu unterstützen.
Markieren Sie den Postprozessor ausdrücklich als laserfähig
Schließlich muss für einen Postprozessor die neue globale Dateianweisung LASER_SUPPORT="YES" hinzugefügt werden, damit er in der Software als Laser-Postprozessor ausgewählt werden kann.
Dies wird den Postprozessoren erst dann zur allgemeinen Verwendung hinzugefügt, wenn der Postprozessor vom Ersteller vollständig getestet wurde.
Beispiel
LASER_SUPPORT = "YES"