
- Cosa è un controller per motori passo
passo?
- Cosa è necessario oltre al controller?
- Quale software usare con il controller?
- Dove trovare informazioni sul linguaggio della
scheda?
- Il controller interpreta il formato
ISO G-CODES?
- Il controller ha l'anello chiuso?
-
Quale
risoluzione posso ottenere con un sistema a motori passo passo?
-
Come si imposta
l’accelerazione?
-
Che velocità possono
raggiungere i motori passo passo?
-
Come dimensionare i
motori passo passo?
-
Quali
sono i g-codes supportati da DeskCNC?
-
Come impostare il postprocessore di
DeskCNC?
-
Come usare il cambio utensile in DeskCNC?
-
Come
impostare i comandi HOME in DeskCNC?
-
Come bisogna collegare i
pulsanti di Home e Fine-corsa?
-
Come collegare gli
azionamenti al controller
DeskCNC?
-
Perché i motori perdono
il passo?
-
Esiste un documento con
maggiori informazioni sul g-code?

Controller per motori passo passo. Il termine
inglese motion control è quello più in uso per dispositivi di questo
genere. Motion control (o motion controller) è un sistema in grado di
comandare il moto di motori (passo passo ,brushless, servomotori ) al fine di
spostare una meccanica (assi in macchine cnc) ad una posizione determinata. Da
non confondere con azionamento per motori passo passo o Driver che
sono la parte di potenza di un sistema di posizionamento.
I controlli per motori passo passo possono dividersi in 2
fasce principali:
Controller Software.
Controller Hardware.
I primi sono quei sistemi basati su PC che attuano i comandi per i motori
attraverso la porta parallela. Questi sistemi sono costituiti da un software che
legge, interpreta visualizza e gestisce file vettoriali e generano una sequenza
di passi per diversi assi (fino a 4) sulla periferica di stampa standard.
Il vantaggio principale di questi sistemi è il costo: questo è determinato dalla
sola progettazione software e non comprende nessun dispositivo elettronico
aggiuntivo. Il sistema è completato dagli azionamenti per i motori che possono
essere passo passo o brushless.
Lo svantaggio principale è quello che i software realizzati in ambiente Windows
presentano il problema della scarsa continuità delle frequenze sulla porta
parallela e quindi sui motori. Windows infatti è un sistema multitasking e tutte
le applicazioni attive subiscono ritardi ed interruzioni a volte superiori ai
100 ms. questo pilotaggio non è accettabile per un motore passo passo e le
perdite di passi sono inevitabili. I software che lavorano in ambiente DOS sono
migliori perché questo problema non si verifica in quanto programma ha il pieno
controllo delle periferiche e delle risorse, ma la piattaforma è ormai in disuso
e di scarsa popolarità.
La seconda fascia di controller per macchine CNC è quella dei sistemi hardware,
cioè quei sistemi basati su microprocessore e sulla comunicazione con un PC per
il trasferimento della base dei dati o vettori di esecuzione. In questi sistemi
i file relativi alle posizioni vengono caricati e visualizzati sul PC in
ambiente multitasking come windows e l'esecuzione avviene con il trasferimento
dei dati attraverso porte di comunicazione come la seriale RS232, USB, LAN, CAN.
Questi sistemi permettono l'esecuzione continua di percorsi senza le
interruzioni dovute al sistema operativo soprastante. Il sistema è
complessivamente più costoso in quanto richiede la progettazione di un sistema
completo basato su microprocessore. Questi sistemi possono avere anche 8 assi
interpolati e una maggiore capacità di interagire con periferiche della macchina
(ingressi e uscite), possono essere ad anello aperto o ad anello chiuso. Nei
sistemi ad anello chiuso sono previsti ingressi per gli encoders al fine di
controllare la posizione effettiva per ogni asse o motore. La comunicazione con
il PC è parte fondamentale di un tale sistema e va progettata con attenzione in
quanto la destinazione, ambiente industriale, rendono l'applicazione
particolarmente soggetta a disturbi e quindi a errori di comunicazione.
Generazione dei passi.
Il nucleo principale di questi due sistemi è la funzione che genera i passi,
sulla porta parallela per i sistemi software e sulle uscite per i sistemi a
microprocessore. L'obbiettivo di tale funzione è quello di portare degli assi
collegati meccanicamente a motori, attraverso comandi di passo e direzione sugli
azionamenti, alla posizione e alla velocità ed accelerazione voluta.
Tale funzione sfrutta generalmente l'algoritmo di Bresenham per l'interpolazione
lineare e viene intensamente usato nei sistemi video per la rappresentazione di
linee sullo schermo, in sistemi più completi esiste l'interpolazione circolare
per l'esecuzione di archi o cerchi. La funzione viene chiamata da una
interruzione periodica creata da un timer, generalmente con risoluzione a 16
bit, che permette frequenze precise e continue. L'algoritmo determina quale asse
deve avanzare di un passo al tempo t. Il risultato è una successione di passi,
che può essere di frequenza diversa per ogni asse, a seconda dell'angolo del
vettore di posizione e soprattutto un moto uniforme e lineare. I percorsi
curvilinei vengono realizzati accodando un insieme di vettori di posizione tanto
più ravvicinati tra loro quanto è richiesta una alta risoluzione o definizione.
Bisogna considerare che in un sistema a più assi, cioè quella meccanica il cui
moto è derivato dalle singole componenti del moto di più motori, la velocità
risultante è V=sqrt(v1²+v2²+vn²) e quindi il controller deve impostare il
corretto valore di frequenza calcolando l'angolo del vettore stesso. Per esempio
se applicando una frequenza di passo di 1000 Hz ad un asse si ha una velocità di
5cm/s, se il moto del sistema è composto da due assi e il vettore ha un angolo
di 45 gradi bisognerà applicare una frequenza di 1000*cos(45°)=707 Hz per
ottenere la stessa velocità.
Un altro punto importante è l'accelerazione del moto. Questa viene realizzata
con un timer che interrompe l'esecuzione ad intervalli regolari e cambia il
valore del timer per la generazione dei passi diminuendo il valore per
accelerare e aumentandolo per decelerare.
Il Contouring.
Un punto importante in un sistema di controllo movimento basato su vettori di
posizione è la possibilità di eseguire vettori continuamente cioè senza
accelerare e decelerare ad ogni vettore ma accelerando e decelerando in una
successione di vettori. Questa particolare funzione ha il nome di "Contouring" e
generalmente è possibile impostare il valore dell'angolo tra due vettori
consecutivi, superato il quale, il percorso viene accelerato e decelerato.
Questo permette di evitare errori di posizione dovuti ad una eccessiva
accelerazione angolare. Per fare un esempio pratico un angolo di 90 gradi tra
due vettori deve obbligare il controller a frenare alla fine del primo vettore
per riaccelerare nella direzione del secondo vettore, se l'angolo invece è di 12
gradi allora è possibile eseguire i due vettori in successione senza decelerare
ma a velocità costante, con grandi vantaggi per le lavorazioni che richiedono
velocità appunto costanti: taglio laser, taglio plasma, fresatura, distribuzione
di adesivi ecc.
Un buon controller dovrebbe avere:
Alta velocità di comunicazione.
Un protocollo di comunicazione sicuro e affidabile.
Alta velocità di interpretazione dei vettori.
Alta velocità in termini di step/secondo
Comandi di lettura e scrittura ingressi e uscite.
Comandi di temporizzazione
Comandi di lettura posizione e di stato.
Discreto numero di IO eventualmente ampliabili attraverso una porta di
comunicazione.
Il linguaggio:
Il controller riceve quindi i comandi attraverso la porta di comunicazione ma
può anche ricevere direttamente i file visto che esistono formati di file
specifici per le macchine CNC. Il più semplice è il formato HPGL sviluppato da
HP per i plotter. Questo formato è bidimensionale in quanto il terzo asse o
penna viene gestito generalmente da un comando di tipo ON/OFF. Più complesso è
il formato ISO G-codes che comprende anche comandi macchina specifici ai
controlli numerici.
Bisogna quindi distinguere due tipi di controller: quelli con interprete comandi
integrato e quelli con linguaggio proprietario. Nel primo caso il controller
accetta direttamente i file nel formato HPGL o ISO, li interpreta e li esegue.
Nel secondo caso è il software sul PC che interpreta i file vettoriali e li
traduce in comandi specifici del controller in uso.
I comandi di un controller si possono dividere in due gruppi:
Comandi sequenziali
Comandi immediati.
I primi sono tutti quei comandi che vanno a formare il moto. Essi verranno
appunto eseguiti in successione e tra il momento della ricezione e lettura e la
loro esecuzione può passare un tempo variabile.
I secondi sono tutti quei comandi che devono essere eseguiti alla loro ricezione
e sono quelli di output immediato, di richiesta posizione e stato, di imput
immediato, di stop, pausa o riavvio.


Attualmente stiamo sviluppando un software che permetta di
realizzare lavorazioni per vari tipi di macchine. Sono disponibili nelle pagine
Twincam e Twincam3D che permettono
lavorazioni di fresatura o di importare file da software CAM tridimensionali.

Il manuale della scheda controller contiene l'elenco dei comandi con la
sintassi.

Non è il controller ad interpretare il formato. Il controller
ha un suo linguaggio, è il software sul PC che ha il compito di tradurre il file
ISO in comandi per il controller.

Per lavorazioni a bassa velocità (fino a 10 cm/s) e con i
motori passo passo non è necessario l'anello chiuso. La perdita di passi è
pressoché nulla a queste velocità a condizione che l'utensile non trovi ostacoli
nell'eseguire i percorsi. Questo permette un notevole risparmio, economico e di
complessità di realizzazione. Il controller è quindi ad anello aperto. I ns.
clienti eseguono correntemente file con migliaia di vettori senza problemi.

La risoluzione di un sistema ad assi mossi
da motori passo passo dipende unicamente dalla meccanica. I motori passo passo
hanno generalmente un angolo di passo di 1,8° quindi possono compiere una
rotazione completa con 200 passi quando pilotati a passo intero. Per esempio, se
il motore fa ruotare una vite con passo da 4 mm., con una rotazione si otterrà
uno spostamento di 4 mm e quindi la risoluzione sarà: 4/200 mm.= 0.02 mm.
Ottenere una meccanica che abbia giochi inferiori a questa risoluzione è
abbastanza difficile. E’ quindi importante scegliere una risoluzione non
eccessiva in quanto i giochi potrebbero rendere non effettiva la risoluzione
stessa, inoltre bisogna considerare il fatto che scegliendo una alta risoluzione
si penalizza la velocità massima raggiungibile dal sistema.

L’accelerazione di un sistema mosso da
motori passo passo dovrebbe essere scelta con il seguente semplice criterio: “La
più alta possibile”. Il motivo di tale scelta è che la maggior parte delle
applicazioni (taglio, fresatura ecc.) richiedono velocità costante per ottenere
uniformità di taglio e fresatura. Si deve quindi impostare questo parametro in
modo tale da raggiungere la velocità finale nel minor tempo possibile. E’
generalmente necessario effettuare alcune prove iniziando da un valore basso e
incrementando questo valore finché il motore non perde passi nella fase di
accelerazione, mantenendo un valore sufficientemente sicuro come impostazione
finale.

I moderni motori passo passo raggiungono
velocità di rotazione fino a 1500 giri al minuto. Bisogna però considerare che
la curva di coppia del motore scende notevolmente al crescere della frequenza di
passo. Se prendiamo una vite da 4 mm. e la facciamo ruotare a 1500 giri minuto
otterremo una velocità di avanzamento di 1500*4mm=6000mm/min o 6m/min . In
pratica però i motori passo passo vengono fatti girare a 600 giri/minuto massimi
perché la coppia utile diminuisce molto al disopra di questi valori. In altre
parole bisognerebbe scegliere un motore con coppia nominale molto più alta del
necessario per raggiungere la massima velocità del motore. E’ quindi buona regola
conoscere
prima le specifiche richieste dalla macchina prima di acquistare i motori.

Come si può notare dalla figura sopra la
coppia di un motore passo passo si mantiene quasi costante fino a circa 2000 Hz.
che corrispondono a 2000/400=5 giri al secondo o 300 giri/minuto (notare che il
motore è pilotato a mezzo passo HALF STEP). Fino a 10000 Hz. il motore continua
ad essere operativo ma la coppia si è ridotta a 1/5 del suo valore massimo.

Nella pagina dei
motori passo
passo vi è un capitolo dedicato ai principi
generali relativi ai vari tipi di configurazione usate più di frequente. I
calcoli da effettuare non sono del tutto semplici ma ne abbiamo riportati alcuni
ugualmente in quanto una breve lettura permette sicuramente di avere una base di
conoscenza e di sapere quali parametri sono necessari quando si deve
dimensionare un motore passo passo per una data applicazione.

I pulsanti di Home sono quei
pulsanti che permettono di posizionare una macchina CNC nella posizione di
origine. Generalmente questi vengono messi in basso a sinistra sulla tavola per
quanto riguarda gli assi X e Y e in alto sull'asse Z.
I pulsanti di Limite sono quei pulsanti che fungono da
finecorsa e sono posti normalmente all'opposto dei pulsanti di Home.
Il pulsante ESTOP (emergency stop) è quel pulsante che
permette l'immediato arresto della macchina. Questi sei pulsanti sono tutti
normalmente chiusi verso massa, questo per sicurezza in quanto se manca uno dei
collegamenti la macchina si ferma piuttosto che continuare la corsa nel
caso di pulsanti normalmente aperti. Ecco come interagisce il programma DeskCNC
con i pulsanti di ingresso:
LIMIT: se questo ingresso viene aperto mentre si sta
muovendo la macchina in modalità JOG il controller si ferma e ad ogni pressione
dei tasti di movimento viene generato soltanto un impulso di passo al motore. Questo permette di
uscire dalla condizione di errore. In fase di esecuzione di un programma lo
stato di questo pulsante viene ignorato.
HOME: Quando si effettua un comando di Home il
controller muove l'asse specificato fino ad aprire il pulsante.
ESTOP: Se il programma vede questo pulsante aperto
interrompe qualsiasi movimento dei motori e si pone nella condizione di RESET.
E' bene considerare che i pulsanti di HOME non hanno funzione
di limite (l'utente potrebbe per sbaglio premere il pulsante in direzione X-
quando è in posizione X=0 e portare la macchina fuori corsa senza controllo).
Un'altro punto è che quando si esegue un lavoro, se si va al di fuori dai limiti
della macchina nessun contatto fermerà la macchina (ESTOP). Per ovviare a questo
inconveniente si possono utilizzare due metodi.
- Aggiungere un pulsante EXTRA-CORSA subito dopo ognuno dei
sei pulsanti intorno alla macchina, tutti in serie e collegati all'ingresso di
ESTOP.
- Utilizzare un circuito elettronico con componenti di logica
digitale per ottenere un sistema più completo e sicuro senza aggiungere nessun
pulsante a quelli sopra elencati.
Il primo metodo è molto semplice ma
raddoppia il numero di pulsanti da inserire sulla macchina. Il collegamento è
semplice perché tutti e sei i pulsanti di extracorsa vanno collegati in serie
quindi vi è un solo filo da aggiungere a quelli esistenti. Meccanicamente questo
sistema comporta qualche difficoltà in quanto il pulsante EXTRACORSA deve
aprirsi dopo il pulsante di HOME o di LIMIT. Occorre disallineare leggermente la
coppia di pulsanti. Bisogna aggiungere però che così si perde la funzionalità di
LIMIT per le direzioni negative. Se si va in direzione negativa e fuori corsa,
in macchine con grande coppia nei motori passo passo bisognerà togliere
l'alimentazione al controller o disabilitare il driver del motore passo passo
per muovere la macchina fuori dal limite (richiudere il pulsante).
A breve sarà disponibile una scheda
elettronica con le seguenti caratteristiche di funzionamento:
- Se si muove la macchina oltre i limiti positivi o negativi
con un comando JOG la macchina si blocca ed è possibile uscire da questa
situazione con comandi JOG in senso inverso.
- Se il programma che si esegue contiene coordinate fuori
limite in una qualsiasi direzione il programma si interrompe perché viene
aperto l'ingresso ESTOP.
Il sistema viene realizzato sfruttando
l'uscita AUX1 che verrà attivata all'avvio del programma (vedi sezione HEADER/FOOTER
in DeskCNC) e disattivata alla fine dello stesso. All'ingresso LIM viene portata
la somma (OR) dei contatti di limite e di HOME. All'ingresso ESTOP viene portato
il pulsante di ESTOP con il segnale di limite AND AUX1 (se AUX1 è attivo e si
tocca un limite la macchina va in ESTOP). La logica è molto semplice e comprende
soltanto due integrati e il costo della scheda viene ampiamente ricuperato nel
risparmio di 6 interruttori di fine corsa e la relativa installazione.

Per i collegamenti del controller riferirsi al file pdf
Collegamenti DeskCNC.pdf.

Il file seguente contiene informazioni utili per evitare o
risolvere questa problematica
Perdite di passo nei sistemi ad anello aperto.pdf

Manuale completo del linguaggio G-code RS274 tradotto dal
manuale inglese NIST RS274NGC. G-Code
RS274.pdf
Copyright © 2005 [Twintec]. Tutti i diritti riservati. Ultimo aggiornamento:
25-08-08.