Mach3 CNC
Un po’ di storia riguardo Mach3 CNC
Mach3 CNC della Newflangled Artsoft Solution è un software sviluppato per trasformare qualsiasi Personal Computer in un controllo CNC fino a 6 assi.
A tutt’oggi è largamente utilizzato da milioni di utenti per movimentare dalle macchine elementari fino a quelle più complesse caratterizzate da automatismi come ATC, ma con alcuni limiti imposti delle potenzialità di interfacciamento all’hardware di supporto.
Le prime interfacce LPT
Inizialmente era possibile collegare il PC ad una interfaccia su porta parallela, era presente in tutti i PC di circa 20 anni fa, e le elettroniche di controllo erano semplici breackout board che replicavano il limitato numero di PIN della porta parallela tipicamente 25, di essi soltanto 17 erano effettivamente utilizzabili, riducendone l’impiego su semplici macchine a tre assi e con qualche stratagemma anche a 4 assi non simultanei.
Mach3 è un Software molto completo ma…
Il software di Mach3 è molto completo ed in questo programma sono racchiuse tutte le funzionalità di un controllo CN, estremamente flessibile grazie alla possibilità di creare “macro” in VB, la presenza di un “Brain” per la gestione ottimizzata delle funzioni e degli I/O, un motore CN all’altezza dei migliori anche se non real time ma purtroppo non certificato ne certificabile.
Queste caratteristiche non sarebbero bastate a Mach3 se legate alla sola porta parallela e non avrebbe avuto prospettive future.
La sua salvezza
La consapevolezza comune che Mach3 CNC avesse delle grandi potenzialità ha spinto le case produttrici di Hardware ad immettere sul mercato schede di interfaccia capaci incrementare la possibilità di interfacciamento degli I/O e contestualmente alleggerire i PC dal grosso del “lavoro”.
In questo modo Mach3 CNC è stato svincolato da quel legame imprescindibile con le LPT e ciò ha determinato l’ampia diffusione che tutti oggi conosciamo.
Mach3 Download e Manuali
La manualistica su Mach3 CNC è reperibile su forum, blog, documentazione in varie lingue, ma alcune peculiarità sono di difficile reperibilità e proprio su queste vorrei approfondire e mettere a disposizione il mio contributo per la comprensione e l’applicazione pratica di alcune funzioni.
Inserisco una di risorse in rete utili per approfondimenti sul funzionamento e sulla configurazione di Mach3:
- sito ufficiale di Mach3
- manuale in lingua inglese prodotto dalla ArtSoft sull’installazione e configurazione
- manuale in lingua inglese sulla programmazione macro in VB
- manuale di installazione e configurazione tradotto in lingua italiana da alcuni utenti del forum di cncitalia
- link alla pagina di download dell’applicativo Mach3
Per chi fosse interessato alla funzionalità tornio, inserisco anche il link al download del manuale per l’utilizzo di Mach3 Turn.
Ricordo che Mach3 è liberamente scaricabile dal sito, ma per essere abilitato a tutte le funzioni necessita di registrazione e acquisto di licenza al costo di circa 175 Dollari.
La versione non registrata:
- è limitata nell’esecuzione di sole 500 righe di programma;
- non può eseguire la ripartenza da riga;
- ha il kernel bloccato a 25 Kz,
ed altre limitazioni che ne precludono l’utilizzo per lavori appena più complessi di una semplice profilatura.
Vantaggi del software originale
In rete è facile trovare software contraffatto, lo stesso software che “sembra” sia fornito in bundle alle “ottime” Cinesi 30xx 60xx insieme ad altri, è certo e provato che quel software ha dei problemi che ne impediscono l’utilizzo regolare, sintomi che magicamente scompaiono utilizzando la versione ufficiale con regolare licenza d’uso.
Installazione
L’installazione dell’applicativo è semplice e guidata, non mi ci soffermo e andiamo subito a vedere le configurazioni di base.
La prima operazione consiste nell’impostare il sistema per sistema metrico o imperiale, (menu → config → select native units) stesso risultato si ottiene con i comandi g-code G20/G21 oppure G70/G71.
Sembra una banalità ma molti riscontrano lavorazioni in scala sia in meno che in più.
Questa è la prima causa, può dipendere anche dall’impostazione del sistema di misura del CAD/CAM che, per mezzo del g-code, impone al controllo di passare da una unità di misura all’altra.
Configurazione Porte
La configurazione delle porte LPT e dei PIN del nostro sistema, (menu → config → Ports & Pins). La prima scheda consente di scegliere l’indirizo in Hex della porta da utilizzare, di default viene sempre impostata la prima porta Port#1 con il relativo indirizzo, è possibile aggiungere una porta LPT al PC ed impostare anche la seconda ed anche cambiarne gli indirizzi in base al proprio hardware.
Questa impostazione non è utilizzata quando si impiegano hardware di interfaccia connessi tramite USB o Ethernet.
Frequenza del Kernel
La frequenza di Kernel, impostabile da 25 a 100KHz, è un parametro è legato alle prestazioni del PC e rappresenta la frequenza di clok del motore di Mach3 CNC riservata dal PC per l’applicativo.
Consiglio di provare con frequenza a 25KHz e verificare con il tool di diagnostica messo a disposizione da Mach3 CNC, nella cartella C:/mach3 troverete un eseguibile DriverTest.exe che permette di verificare la stabilità del PC in relazione alla frequenza del kernel.
Il test di stabilità mette al sicuro da eventuali anomalie riscontrate durante le lavorazioni causate da un sistema di controllo instabile, tipicamente perdite di passi, micro interruzioni o blocchi della lavorazione.
Configurazione PIN di Mach3 CNC
La prossima scheda riguarda la configurazione dei PIN STEP e DIR per il movimento degli assi.
Per ciascun asse è necessario specificare il PIN di STEP, quello di DIR e le relativa porta di appartenenza.
La numerazione corrisponde alla Port#1 e Port#2 vale solo nel caso di utilizzo di LPT, invece se si impiegano hardware aggiuntivi su USB o Ethernet si deve fare riferimento alle indicazioni del costruttore.
La spunta su Enable è necessaria ad abilitare l’asse mentre DirLowActive e SteepLowActive invertono il senso di rotazione del motore, a riguardo sconsiglierei di agire su questi parametri per propendere invece all’inversione fisica dei cavi si potenza di una delle coppie del motore.

Configurazione Home e Limit
La terza scheda ci permette di assegnare i PIN degli Input, X++ limite X in positivo, X– limite X in negativo, X Home il PIN che determina la posizione di riferimento in coordinate macchina dell’asse in questione.
La procedura è semplice, abilitare la spunta verde sul segnale che si vuole utilizzare, specificare la porta e PIN in maniera equivalente a quanto già descritto per step e dir.
Utilizzare la spunta Active Low in base alle caratteristiche dello switch di home se normalmente aperto NO o normalmente chiuso NC.
Meglio utilizzare i contatti NC perchè in caso di guasto del cablaggio si vede subito il contatto NO ed in fase di Home il sistema riporta il messaggio che lo switch è già attivo ed interrompe la procedura.
Emulated e hotkey
Emulated serve per simulare lo stato dell’ingresso, utilizzata per simulare in fase di debug delle macro, mentre il tasto Hotkey serve per attivare in maniera forzata un ingresso tramite la pressione di un tasto della tastiera, questa funzione può essere utile in fase di debug ma non nel funzionamento automatico.
Specifica del numero di ingressi
In basso viene specificato che il pin dal 10 al 13 ed il 15 sono ingressi e soltanto quei 5 possono essere utilizzati, quanto riportato li sotto vale soltanto nel caso si utilizzi la sola LPT, il numero di ingressi totali è 53, e se si vogliono utilizzare tutti è indispensabile utilizzare un sistema con schede USB o Ethernet.

Configurazione degli Output di mach3 CNC
La scheda successiva riguarda gli Output, permette di assegnare ad ogni PIN di uscita una funzione che può essere tra quelle già presenti o personalizzata.
L’assegnazione segue lo stesso criterio dei PIN di ingresso, pertanto è necessario specificare per ogni funzione sia la porta che il numero del PIN a bordo scheda.
Il comando ActiveLow ne inverte lo stato.
Nella parte bassa della scheda è specificato che i PIN da 2 a 9, 1, 14, 16 e 17 sono uscite.
L’elenco dei segnali ne prevede 30, quella dicitura in basso è valida soltanto nel caso si utilizzi una sola porta LPT, per sfruttare tutte le uscite, come per il numero di ingressi, è indispensabile utilizzare schede USB o Ethernet con adeguato numero di I/O, il costo è più elevato ma giustificato dalle aumentate possibilità di espansione.

Encoder / MPG
Per la scheda Encoder/MPG’s sarà disponibile un articolo dedicato.
Spindle Setup
La scheda riguarda lo Spindle Setup e include anche la programmazione delle funzioni Mist (nebulizzazione) e Flood (regrigerante).
Lo START e STOP del mandrino solitamente agisce su un relè di potenza per mandrini a spazzole oppure pilota un Inverter nel caso di motori HF.
Di default la scheda riporta Output#1 per CW (rotazione oraria), possiamo utilizzare questo PIN o assegnarne uno diverso a nostro piacimento.
Personalmente lascio sempre quelli di default per mantenere un ordine per assegnare gli altri Output.
Rotazione antioraria
L’uscita Output#2 serve per impostare la rotazione CCW (antioraria), essa viene utilizzata quasi esclusivamente le filettature rigide e con mandrini HF in grado di eseguirle, non è applicabile con mandrini HF di piccola potenza e coppia ad alti giri.
Comandi M7 e M8
Per i comandi Mist su Output#3 e Flood su Output#4 poco da aggiungere, se non il ritardo di attivazione impostabile in secondi nelle caselle a fianco di essi.
La sezione ModBus Spindle viene programmata soltanto in caso di collegamento al mandrino con interfacce ModBus e può essere tralasciata nella stragrande maggioranza dei casi.
Motor Control
Motor Control si utilizza per generare un segnale PWM per variare da software la velocità in giri del mandrino, questa funzionalità, unitamente alla sezione Special Functions sarà trattata a parte in altro articolo.
General Parameter
La sezione General Parameter consente di inserire un ritardo, espresso in secondi, per la partenza del programma G-Code.
Qualsiasi mandrino impiega un tempo variabile dallo Start al raggiungimento dei giri impostati.
Far partire il programma di fresatura prima che il mandrino ha raggiunto la velocità di rotazione impostata comporta che la fresa approccia sul materiale in condizioni non ottimali.
Pochi giri comportano di vanificare subito la lavorazione e di rompere l’utensile.
Il tempo di ritardo impone al controllo di attendere che il mandrino sia a regime prima di eseguire il programma della lavorazione.
Solitamente scelgo un valore compreso tra i 3 ed i 5 secondi in funzione del tipo di elettro utensile installato.
Tempo di ritardo del mandrino
Importante è anche il tempo che il mandrino impiega per arrestare la rotazione, CW Delay Spindle, anche in questo caso il controllo non esegue operazioni fino all’arresto totale del mandrino, un esempio su sistemi ATC non posso rilasciare un utensile con il mandrino ancora in rotazione.
Nei mandrini ATC c’è sempre una tachimetrica che viene utilizzata anche per verificare la condizione di albero fermo, ma in quelli basici è assente.
Compensazione avanzata G41 e G42
Nell’ultima scheda, Mill Option è opportuno spuntare l’opzione dell’analisi avanzata della compensazione quando sono attivi i codici G41 e G42 che riguardano la compensazione del raggio utensile.

Motor Tuning in Mach3 CNC
Menu → Config → Motor Tuning, questo menù riguarda esclusivamente il settaggio dei parametri relativi ai motori, nella colonna Axis Selection sono evidenziati soltanto gli assi abilitati.
La finestra grafica rappresentata la curva di accelerazione e decelerazione, la forma dipende dai parametri Velocity e Acceleration che sono espressi in mm/min e unità/sec2 (l’unità dipende dal sistema di misura impiegato, se metrico o imperiale).
Selezione step per unità di misura (mm o inc)
Nella casella Step va indicato il numero di impulsi necessari al motore per far si che l’asse in esame percorra una unità (espressa in mm o inc).
Esempio, vite passo 5 mm accoppiata direttamente al motore, pilotaggio dell’azionamento a 2000 impulsi giro, il numero da mettere nella casella Step per sarà 400 ricavato da 2000 impulsi/5 mm che è il passo della vite.
Perché generare tanti impulsi?
Generare 400 impulsi per percorrere un millimetro equivale ad una risoluzione elettrica di 0,0025 mm, è eccessivo per la maggioranza delle schede di interfaccia in commercio.
Se tra motore e vite sono interposti sistemi di riduzione, pulegge e cinghia o riduttori, bisogna considerare anche il rapporto di riduzione di quest’ultimi.
Con i motori passo-passo è inutile spingere molto poiché la precisione elettrica supera abbondantemente la precisione meccanica ed esasperare il numero degli impulsi mette a dura prova il Kernel di Mach3.
Casella Velocity
Nel campo Velocity inserire il valore massimo della velocità dell’asse in G0 in rapido, il valore dipende sia dalle caratteristiche meccaniche della CNC, dal controllo e dalla sua capacità di generare impulsi.
Come esempio ho inserito 7000mm/min che, su sistemi ben dimensionati va bene per la maggior parte dei sistemi con motori passo, per il valore di accelerazione circa 700 mm/sec2 che genera una rampa di accelerazione non troppo aggressiva.
Durata impulsi di Step e Dir
Nelle caselle Step Pulse e Dir Pulse va inserita la durata dell’impulso di Step e di quello di Dir, tempo espresso in millisecondi.
Ogni driver ha bisogno di tempo per leggere lo stato dell’impulso inviato dal controllo, se il tempo richiesto è basso, come in azionamenti di buona qualità, allora anche questo numero sarà basso.
Su azionamenti di qualità inferiore il numero va aumentato anche oltre il valore di 5 (non è un limite il 5 ma un range consigliato).
Gli azionamenti “sordi” non sentono bene gli impulsi nella sequenza dettata dal controllo e si perdono passi soprattutto a velocità sostenute e durante i cambi di direzione comportamento tipico delle schede All In One via parallela. I tempi tipici di ogni azionamento possono essere consultati sui rispettivi data sheet.

continua a leggere Come configurare Mach3 – seconda parte
Grazie mille fino a qui è tutto chiaro grazie alla tua esposizione semplice e alla portata di tutti, resto in attesa di un nuovo argomento, buon lavoro e complimenti!
Un grazie anche da parte mia per l’ottima spiegazione.