Software di controllo

Un po’ di storia riguardo Mach3

Mach3 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 intrinsechi nelle lavorazioni, come ATC, e comunque nei limiti imposti delle potenzialità di interfacciamento con altri hardware a supporto. Inizialmente era possibile collegare il PC all’elettronica di controllo esclusivamente tramite la porta parallela che era presente in tutti i PC, parliamo di circa 10 anni fa, e le elettroniche di controllo erano semplici breackout board che replicavano il limitato numero di PIN della porta parallela, connettorizzata a 25 PIN ma di essi soltanto 17 erano effettivamente utilizzabili, riducendo l’impiego su semplici macchine a tre assi e con qualche stratagemma anche a 4 assi non simultanei. Una configurazione tipica è rappresentata nella tabella, i PIN da 18 a 25 sono GND.

La parte software di Mach3 è invece realizzata benissimo ed in questo software sono racchiuse tutte le funzionalità proprie di un controllo CN, estremamente flessibile grazie alla possibilità di creare “macro” in VB, la presenza di un “Brain” per la gestione ottimizzatata sia delle funzioni che degli I/O, un motore CN all’altezza dei migliori anche se non real time. Tali caratteristiche unite ad un hardware semplice come la porta parallela avrebbe portato all’estinzione del software in questione.

Proprio per la consapevolezza che Mach3 aveva delle potenzialità incredibili e che lo sviluppo del SW era già da tempo concluso, le case produttrici di Hardware hanno iniziato a immettere sul mercato schede di interfaccia e di controllo capaci di sfruttare le potenzialità di Mach3 incrementandone la possibilità di interfacciamento degli I/O e contestualmente alleggerire i PC dal grosso del “lavoro” per l’implementazione di motori CN a bordo scheda. In questo modo Mach3 è stato svincolato da quel legame imprescindibile con le LPT e ciò ha determinato l’ampia diffusione che tutti conosciamo.

A mia memoria le prime schede dotate di un buon hardware erano le Smooth Stepper, prima in versione USB e successivamente Ethernet, schede che consentivano, previa installazione di un Plug-In, di ottenere fino a 3 porte LPT su unico dispositivo, triplicando di fatto il numero di PIN disponibili e quindi essere utili nella realizzazione di controlli sempre più automatizzati e complessi anche se ancora limitati per l’impiego della tecnologia TTL. Oggi il mercato offre un’infinità di prodotti dedicati allo scopo, non posso esprimermi per dire quale sia il migliore, ma alcuni sono veramente ben fatti ed affidabili e ottimizzati per durare nel tempo. Altri sono specchietti per le allodole e mi dispiace dirlo ma vengono spacciati, soprattutto da alcuni costruttori di macchine, come elettroniche professionali dal costo di 4€ e rivendute in pacchetto completo a 800€. In questo caso qualcosa evidentemente non torna  ma ognuno fa le sue scelte.

Manualistica su Mach3 è facilmente reperibile, 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. Per iniziare inserisco una di risorse in rete utili per approfondimenti sul funzionamento e sulla configurazione di 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 necessita di registrazione pervio acquisto di licenza al costo di circa 170 Dollari. La versione non registrata ha limitazioni nel numero di righe G-Code eseguibili, nella ripartenza da linea, kernel bloccato a 25 Kz ed altre limitazioni che ne precludono l’utilizzo per lavori appena più complessi di una semplice profilatura. In rete è facile trovare software contraffatto, lo stesso software che “sembra” sia fornito in bundle alle “ottime” 30xx 60xx insieme ad altri, è certo e provato che quel software ha dei problemi randomici che ne impediscono l’utilizzo regolare, sintomi che scompaiono utilizzando la versione ufficiale con regolare licenza d’uso.

L’installazione dell’applicativo è semplice e guidata, non mi ci soffermo e andiamo subito a vedere le configurazioni di base. La prima è 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, può sembrare banalità ma in molti si chiedono il perché la lavorazione non rispetta le misure e appare 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, ordina al controllo di passare da una unità di misura all’altra.

L’operazione successiva è la configurazione del settaggio delle PORTE e dei PIN del nostro sistema, (menu → config → Ports & Pins). La prima scheda riguarda la scelta della porta parallela, la schermata da la possibilità di scegliere l’indirizo in Hex della porta da utilizzare, di default viene sempre impostata la prima porta Port#1 con il relativo indirizzo, è tuttavia possibile tramite LPT aggiuntive, impostare anche la seconda oppure cambiarne gli indirizzi in base al proprio hardware. Questa impostazione non è utilizzata quando si usano tipologie di hardware aggiuntivi connessi al PC tramite USB o Ethernet. Altro valore è la frequenza di Kernel, impostabile da 25 a 100KHz, questo parametro è strettamente legato alle prestazioni del PC e rappresenta la velocità di esecuzione dei comandi compresi ovviamente la generazione degli impulsi step/dir e della lettura degli I/O. E’ consigliato iniziare le prove con frequenza a 25KHz e verificare con il tool di diagnostica messo a disposizione di mach3, nella cartella C:/mach3 troverete un eseguibile DriverTest.exe che permette di verificare la stabilità del PC in relazione alle diverse frequenze di 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.

La seconda 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 relative porte. Riguardo le porte la numerazione corrisponde alla Port#1 la 2 alla Port#2 solo nel caso di LPT, in caso di hardware aggiuntivi 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 rortazione del motore, sconsiglierei di agire su questi parametri e preferibilmente preferisco l’inversione fisica dei cavi si potenza di una delle coppie del motore per invertirne la rotazione.

La terza scheda ci permette di assegnare i PIN degli Input, X++ limite X i 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.

Preferisco utilizzare i contatti NC poiché in caso di guasto del cablaggio riscontrerei subito il contatto NO ed in fase di Home il sistema mi riporta un messaggio di switch già attivo interrompendo la procedura. Emulated serve per simulare lo stato dell’ingresso, utilizzato soprattutto 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, anche questa funzione è utile in fase di debug delle procedure ma non nel funzionamento automatico. 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 dei segnali totali è 53, e se si voglio utilizzare tutti è indispensabile controllare il sistema CNC con schede USB o Ethernet adeguate allo scopo.

La scheda successiva riguarda gli Output, permette di assegnare ad ogni PIN di uscita una funzione, funzione che può essere tra quelle già presenti o che, come vedremo successivamente potranno essere personalizzate. La procedura di assegnazione segue lo stesso criterio dei PIN in ingresso, ovvero è 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 il PIN da 2 a 9, 1, 14, 16 e 17 sono uscite, ma 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, questo vale anche per il numero di ingressi, è indispensabile utilizzare schede USB o Ethernet con adeguato numero di I/O, il costo è più elevato delle semplici BreakOut Board ma giustificato dalle aumentate possibilità di impiego e dalle prestazioni elevate.

Per la scheda Encoder/MPG’s sarà disponibile un articolo dedicato. La scheda seguente è quella che riguarda lo Spindle Setup che include anche la programmazione di altre funzioni come i comandi Mist (nebulizzazione) e Flood (regrigerante). Per start stop mandrino solitamente si utilizza un relè o direttamente un Inverter nel caso di HF che va collegato ad un Output# da assegnare, 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. 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. 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 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. La sezione General Parameter offre la possibilità di inserire un ritardo sulla partenza del programma G-Code espresso in secondi. Spiego meglio, il mandrino dallo Start al raggiungimento dei giri impiega un tempo variabile, sicuramente diverso da zero, far partire il programma di fresatura senza attendere che il mandrino abbia raggiunto il regime di giri comporta inevitabilmente che la fresa approcci sul materiale con ancora pochi giri rischiando di vanificare subito la lavorazione e di rompere l’utensile. Il tempo di ritardo da inserire nelle caselle a fianco impone al controllo di accendere il mandrino e di attendere un “tempo” prima di eseguire le righe di programma della lavorazione. Solitamente scelgo un valore compreso tra i 3 ed i 5 secondi in funzione del tipo di elettro utensile installato. 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. 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.

Menu → Config → Motor Tuning, questo menù riguarda esclusivamente il settaggio dei parametri relativi ai motori, nella colonna Axis Selection saranno evidenziati soltanto gli assi abilitati. Nella parte grafica è rappresentata la curva di accelerazione e decelerazione, la forma di questa curva dipende dai parametri Velocity e Acceleration che sono espressi rispettivamente in unità per mm/min e unità/sec2 (l’unità dipende dal sistema di misura impiegato, se metrico o imperiale).  Nella prima casella Step per andrà indicato il numero di impulsi necessari al motore per far si che l’asse in questione percorra una unità (mm o inc) visto utilizziamo il sistema metrico non mi ripeterò su questo aspetto e considererò soltanto i mm come misura di riferimento. 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 ovvero 2000 impulsi/5 mm passo vite.

Generare 400 impulsi per percorrere un millimetro equivale ad una risoluzione elettrica di 0,0025 mm. Se tra motore e vite sono interposti sistemi di riduzione, pulegge e cinghia o riduttori, va considerato nel calcolo anche il rapporto di riduzione di quest’ultimi. Spingere oltre con i motori passo-passo appare inutile poiché la precisione elettrica probabilmente supera abbondantemente la precisione meccanica. Inoltre esasperare il numero degli impulsi mette a dura prova il Kernel di Mach3 (max 100 Khz per 3/4 assi e per tutte le funzioni di controllo degli I/O potete immaginare come il sistema sia sovraccaricato), cosa che non avviene utilizzando controlli che abbiano frequenza di step per ogni asse dai 256 KHz in su e motori brushless per i quali il numero di impulsi giro può salire abbondantemente senza generare problemi anzi ne esalta la precisione.

Nel campo Velocity va inserito il valore massimo della velocità dell’asse, questo valore dipende dalle caratteristiche meccaniche della CNC, sia dal controllo e dalla sua capacità di generare impulsi, ho inserito 7000mm/min che, se ben dimensionati va bene per la maggior parte dei sistemi con motori passo, e come valore di accelerazione circa 700 mm/sec2 per ottenere una rampa di accelerazione non troppo aggressiva. Questa velocità sarà quella raggiunta da ogni asse anche per gli spostamenti in G0 ovvero in rapido. Nelle altre due caselle Step Pulse e Dir Pulse va inserito il tempo di durata dell’impulso di Step e di quello di Dir, tempo espresso in millisecondi, in pratica ogni driver o azionamento ha bisogno di tempo per leggere lo stato dell’impulso inviato dal controllo, se il tempo richiesto è basso, come azionamenti di buona qualità, allora anche questo numero è basso, contrariamente ad azionamenti di qualità inferiore il numero va aumentato anche oltre il valore di 5 (non è un limite il 5 ma un range consigliato). 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 degli assi, 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

2 Comments

  1. 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!

Lascia un commento

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

cancella il moduloPost comment