Adattamento di un post processor per i laser
introduzione
Il modulo laser consente sia ai nuovi tipi di utensili di rappresentare i laser nel database degli utensili, sia a nuove strategie specifiche per i laser.
Il modulo laser ora fornisce record e variabili indipendenti per strumenti laser e percorsi utensile. Poiché questi output sono stati separati dal controllo del router convenzionale, per la maggior parte delle macchine e dei controller è spesso possibile creare un singolo Post Processor per funzionare perfettamente con i percorsi utensile del router o del laser, ma tieni presente che potrebbe essere comunque necessario garantire che la configurazione fisica del la macchina viene modificata in base al tipo di percorso utensile.
Post precedente I processori non funzioneranno correttamente con il modulo laser
Tieni presente che molti produttori di kit di conversione hanno fornito post processori Vectric prima del rilascio del modulo laser. Queste soluzioni alternative utilizzavano per consentire l'utilizzo di alcune strategie del percorso utensile del router, come la profilazione, con una testa laser. I post processori creati senza supporto esplicito per le funzionalità aggiuntive qui documentate non funzioneranno correttamente.
Ci sono generalmente 4 aree che devono essere modificate in un Post Processor convenzionale per estenderlo al supporto del percorso utensile laser.
- Aggiunto il supporto per una nuova variabile
Power
, che verrà utilizzata dalle nuove strategie laser. - Aggiungi nuovi blocchi post processore specifici per il laser per formattare correttamente i percorsi utensile laser per la tua macchina e il tuo controller.
- Modifica eventuali blocchi post processore esistenti per garantire potenza indipendente e comportamento specifico del laser.
- Aggiungi un flag per indicare al software Vectric che questo post ora supporta le strategie di percorso utensile laser.
Le sezioni seguenti trattano ciascuna area a turno e viene fornito un esempio di utilizzo del controller gcode GRBL. Questi esempi provengono dal post processore grbl (mm e pollici) fornito per impostazione predefinita con il software Vectric.
Potenza variabile
Il software Vectric visualizzerà l'impostazione di potenza per un percorso utensile laser nell'intervallo 1-100%. Dobbiamo aggiungere una nuova variabile per mostrare come formattare questa impostazione per il tuo particolare controller. Questa è anche l'opportunità di adattare il valore percentuale grezzo all'intervallo numerico richiesto dal controller.
Esempio
Per i controller basati su GRBL, l'impostazione della potenza per un laser è generalmente associata al comando di controllo della velocità del mandrino gcode "S". In modalità laser, il controller risponderà a una modifica del controllo della velocità del mandrino regolando invece la potenza del laser. Sebbene possa essere impostata nel controller, l'impostazione predefinita per il valore "S" massimo previsto, o potenza del laser, è 1000.
Per GRBL, quindi, dobbiamo formattare la variabile POWER in modo che sia un comando gcode 'S' e scalare il suo valore di output di un fattore dieci in modo che sia compreso tra 1 e 1000 (invece del valore predefinito 1-100) .
La voce variabile nel Post Processor recita:
VAR POWER = [P|C|S|1.0|10.0]
Per riassumere questa voce in parole povere, stiamo dicendo che l'output POWER dal nostro percorso utensile dovrebbe essere utilizzato ovunque nel nostro successivo file di definizione post in cui abbiamo la variabile [P]. Ma dovremmo emettere un comando solo quando il valore POWER cambia (C). Sostituiremo le posizioni delle variabili [P] nell'output del nostro percorso utensile con il comando 'S' (S). Il valore della potenza deve essere formattato come un numero intero senza punti decimali (1,0) e deve essere moltiplicato rispetto al valore predefinito per un fattore 10.
Nuovi blocchi post processore laser
Per consentire il controllo laser, sono disponibili nuovi blocchi Post Processor nel Post Processor. Questi sono:
JET_TOOL_ON
- Output ogni volta che il percorso utensile richiede il laser accesoJET_TOOL_POWER
- Output ogni volta che il percorso utensile necessita della potenza del laser per cambiareJET_TOOL_OFF
- Emette l'output ogni volta che il percorso utensile richiede che il laser sia spento
Esempio
Nel nostro esempio GRBL abbiamo aggiunto i 3 nuovi tipi di blocco. Per accendere il laser, GRBL utilizza il comando gcode M4 (normalmente destinato alla direzione del mandrino, ma "riutilizzato" da GRBL per il supporto laser). Ora possiamo utilizzare la nostra variabile POWER, definita sopra come [P], per fornire il valore di potenza richiesto. Il blocco JET_TOOL_ON
è quindi:
+---------------------------------------------------
+ Commands output when the jet is turned on
+---------------------------------------------------
begin JET_TOOL_ON
"M4[P]"
Per spegnere il Laser GRBL utilizza il comando gcode M5:
+---------------------------------------------------
+ Commands output when the jet is turned off
+---------------------------------------------------
begin JET_TOOL_OFF
"M5"
Infine per impostare la potenza stessa, quindi per GRBL abbiamo semplicemente emesso la potenza:
+---------------------------------------------------
+ Commands output when the jet power is changed
+---------------------------------------------------
begin JET_TOOL_POWER
"[P]"
Modifica i blocchi esistenti
Vogliamo anche che quando eseguiamo una mossa di alimentazione emettiamo anche potenza, quindi per fare ciò aggiorniamo i blocchi FEED_MOVE
per includere [P].
Dobbiamo farlo per Tutto dei diversi tipi di mosse di alimentazione.
Inoltre, dobbiamo evitare che si verifichino movimenti di immersione quando il laser è acceso. Per la fresatura o la fresatura convenzionale, è necessario che il mandrino sia acceso prima di un movimento di immersione, ma per un laser è fondamentale accenderlo solo Dopo quando ci siamo spostati al livello Z corretto (questo problema si manifesta come ' overburn' all'inizio di ogni segmento del percorso utensile). Per garantire di poter separare correttamente questi requisiti, potremmo dover rimuovere eventuali comandi del mandrino dai movimenti di immersione o altri tipi di blocchi (alcuni potrebbero averli nell'intestazione, ad esempio) e suddividerli in SPINDLE_ON
& espliciti PLUNGE_MOVE
blocchi. Ciò garantirà che questi movimenti vengano eseguiti solo per strategie di percorso utensile non laser e nella sequenza corretta.
Esempio
Per GRBL questa è una semplice aggiunta alla fine dell'istruzione feed move:
+---------------------------------------------------
+ Commands output for feed rate moves
+---------------------------------------------------
begin FEED_MOVE
"G1[X][Y][Z][P]"
Ricorda che abbiamo impostato la nostra variabile POWER solo sull'output in caso di modifica (C), quindi nota che nell'output per i movimenti di avanzamento a potenza costante, sarà incluso solo un comando di potenza iniziale, modificabile. Per alcuni controller, il numero di comandi che possono essere elaborati è un fattore limitante sulla velocità del percorso utensile e, per le immagini laser, in particolare, questo può essere in qualche modo mitigato non inviando comandi non necessari quando possibile.
Per il comando separato del mandrino GRBL e del tuffo i blocchi sono:
+---------------------------------------------------
+ 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]"
Noterai che GRBL utilizza M3 per controllare il router o il mulino. Si noti inoltre che il movimento a tuffo richiede la capacità di spostare la macchina in X e Y per supportare la rampa.
Contrassegnare esplicitamente il post processore come compatibile con il laser
Infine, un Post Processor richiederà l'aggiunta della nuova Global File Statement LASER_SUPPORT="YES" per essere disponibile per la selezione come Post Processor Laser all'interno del software.
Questo viene aggiunto ai Post Processor per uso generale solo una volta che il Post Processor ha ricevuto il test completo dal creatore.
Esempio
LASER_SUPPORT = "YES"