Torna al blog

Confronto pratico: microcontrollore vs PLC per il controllo della saldatura ad arco

A PLC and a microcontroller can both generate step-and-direction motion, but arc welding exposes major differences in EMC, I/O protection, diagnostics, maintainability, safety integration, and life...

Quando si realizza il prototipo o si implementa un sistema di controllo per automatizzare processi industriali, è essenziale valutare l’idoneità del controller scelto in base alle esigenze e all’efficienza del sistema.

Ad esempio, l’automazione di un processo industriale come la saldatura richiede un sistema di controllo del movimento affidabile, in grado di garantire precisione ed efficienza nella fabbricazione dei materiali. Nella maggior parte dei casi, i bracci robotici vengono integrati nel processo di saldatura ad arco, a seconda della complessità e della progettazione del materiale. In tutto questo, il motore passo-passo rimane un componente essenziale del sistema di controllo del movimento e, abbinato a un controller affidabile ed efficiente, gestisce con precisione i movimenti necessari all’interno del sistema automatizzato.

Durante uno dei miei prototipi di progetto per l’automazione della saldatura, ho avuto l’opportunità di implementare e valutare due controller distinti per gestire il controllo del movimento del motore passo-passo all’interno del sistema: un microcontrollore Arduino Mega e un PLC Mitsubishi della serie FX.

 

 Figura 1. La saldatura viene spesso eseguita da dispositivi con più assi di movimento: portali CNC o robot articolati.

Figura 1. La saldatura viene spesso eseguita da dispositivi con più assi di movimento: portali CNC o robot articolati. Immagine utilizzata per gentile concessione di Adobe Stock

 

Perché confrontare le piattaforme di controllo?

Questo progetto di automazione della saldatura utilizza tre motori passo-passo, ciascuno dotato di un driver per il microstepping che gestisce il movimento sugli assi X, Y e Z. Durante l’implementazione del progetto utilizzando i due tipi di piattaforme di controllo, sono emerse alcune difficoltà significative, tra cui la complessità della ricerca dei guasti, le interferenze elettromagnetiche generate dalla saldatrice ad arco e la complessità della programmazione.

Questo articolo analizza l’esperienza maturata nella valutazione delle due piattaforme, evitando tuttavia di formulare affermazioni generali su quale sia la “migliore”, poiché ciò dipende in larga misura dall’ambiente applicativo, dall’hardware periferico e dalla programmazione.

 

Integrazione hardware e cablaggio del controller

I componenti principali dell’operazione di saldatura per questo progetto sono i seguenti:

  • L’inverter di saldatura
  • 3 motori passo-passo
  • Driver per motori passo-passo
  • Struttura meccanica
  • Controller (microcontrollore o PLC)

I driver dei motori passo-passo ricevono dal controller i segnali di direzione e PWM, convertendo il segnale in potenza per le due fasi del motore passo-passo. I terminali delle fasi del motore passo-passo (A+/- e B+/-) dispongono di punti di collegamento diretti sul driver, oltre a un collegamento a una fonte di alimentazione per il motore. Per gestire l’ingresso del segnale PWM, il terminale CP- (impulso di clock-) del driver può essere collegato direttamente al controller e il terminale CP+ (impulso di clock+) all’alimentazione positiva. I terminali CW gestiscono il segnale di direzione del motore.

Si noti che si tratta di una configurazione ad anodo comune, che richiede un modulo di uscita a collettore aperto nel PLC. A seconda del controller e della sua tensione di esercizio, vengono generalmente aggiunte resistenze di limitazione della corrente per garantire livelli di segnale adeguati ai circuiti logici del driver.

 

 Figura 2. Il driver del motore passo-passo mostra le etichette dei collegamenti per l’alimentazione (VCC+, GND), il collegamento delle fasi del motore passo-passo e i segnali di controllo.

Figura 2. Il driver del motore passo-passo mostra le etichette dei collegamenti per l’alimentazione (VCC+, GND), il collegamento delle fasi del motore passo-passo e i segnali di controllo. Immagine utilizzata per gentile concessione dell’autore

 

Analizzando le nostre opzioni di controller, Arduino Mega 2560 supporta segnali PWM a 5 volt che possono essere inviati direttamente al driver del motore passo-passo senza dover aggiungere una resistenza di limitazione della corrente. Dotato di 54 pin I/O digitali e 16 ingressi analogici, il controller rappresenta una scelta ideale per gestire diversi ingressi provenienti dai sensori.

Durante l’utilizzo di Arduino Mega in questo progetto, ho integrato alcuni relè per gestire le diverse tensioni operative di alcune uscite. Per la spia luminosa di sicurezza, ho utilizzato un pin I/O per attivare un relè che collegava un’alimentazione a 24 volt alla spia. Grazie al costo contenuto e alla facile reperibilità, l’implementazione del controller nel progetto è stata semplice: ho assegnato tre pin I/O al collegamento dell’ingresso degli impulsi di ciascuna scheda driver del motore passo-passo e altri tre al terminale di direzione di ciascun driver.

  • Arduino: collegamento semplice degli I/O del driver passo-passo; sono necessari adattatori per i dispositivi a tensione industriale
  • PLC: sono necessarie resistenze per limitare la corrente verso il driver passo-passo, ma i collegamenti agli I/O industriali sono semplici

 

Interferenze elettromagnetiche (EMI)

Durante il test funzionale con il microcontrollore Arduino, i motori passo-passo hanno generato attivazioni spurie casuali quando veniva accesa la saldatrice a inverter per saldatura ad arco. Queste saldatrici producono spesso livelli elevati di rumore elettrico e interferenze EMI, pertanto la loro integrazione con componenti sensibili richiede un ulteriore livello di schermatura o filtraggio.

Il PLC Mitsubishi della serie FX, essendo un controller industriale, offre immunità al rumore elettrico. La maggior parte dei PLC destinati all’automazione industriale attribuisce grande importanza alla compatibilità elettromagnetica (EMC), poiché la maggior parte dei controller opera in ambienti caratterizzati da un rumore elettrico significativo.

Quando si utilizza il PLC Mitsubishi della serie FX per il controllo PWM nell’automazione della saldatura ad arco, è fondamentale verificare che il modello specifico del controller disponga di uscite a transistor (da Y0 a Y4) adatte alla commutazione ad alta velocità. I relè elettromeccanici non sono in grado di gestire i segnali PWM. Durante il test funzionale del progetto sul PLC, non si sono verificate attivazioni spurie durante il processo di saldatura, a differenza di quanto osservato con il microcontrollore. Per garantire l’affidabilità e ridurre al minimo il rumore potenziale nel sistema di controllo, è essenziale considerare una corretta messa a terra, utilizzare cavi schermati e separare i cavi di segnale da quelli di alimentazione.

  • Arduino: facilmente soggetto agli effetti delle EMI
  • PLC: maggiore immunità agli effetti delle EMI

 

Programmazione e logica di controllo: Arduino

Nel controllo multiasse per i progetti di automazione della saldatura ad arco, sia Arduino Mega sia il PLC Mitsubishi hanno offerto risultati simili in termini di controllo, pur adottando approcci di programmazione differenti. A seconda dell’esperienza e del livello di comprensione, la complessità dell’approccio di programmazione utilizzato può variare. Nell’ambiente Arduino si utilizza un approccio di programmazione basato sul testo, mentre nei PLC industriali la logica ladder continua a essere l’approccio più comune.

Durante la scrittura della logica di controllo in Arduino, ho esplorato due metodi differenti e ne ho testato l’efficacia. Il primo consisteva nell’aggiungere direttamente ritardi dell’ordine dei microsecondi tra gli stati “HIGH” e “LOW” del “stepPin” collegato al terminale CP- del driver del motore passo-passo. Lo svantaggio di questo approccio è che, nei casi in cui due motori debbano funzionare simultaneamente, la gestione diventa complessa poiché il programma viene eseguito in sequenza. Il ritardo tra i passi successivi di ciascun motore varia in base al ritardo degli altri motori. Questa variabilità non rappresenta esattamente una soluzione ideale.

 

 Figura 3. Esempio di programma nella funzione loop per la generazione degli impulsi del motore passo-passo con una larghezza dell’impulso di 500 microsecondi.

Figura 3. Esempio di programma nella funzione loop per la generazione degli impulsi del motore passo-passo con una larghezza dell’impulso di 500 microsecondi. Immagine utilizzata per gentile concessione dell’autore

 

L’alternativa consiste nell’utilizzare la libreria AccelStepper, una delle numerose librerie per motori passo-passo disponibili nell’IDE Arduini, che offre flessibilità nel controllo della velocità dei motori, della distanza e del controllo simultaneo di più motori. Con questa libreria è innanzitutto necessario inizializzare un’istanza per ciascun motore, che può quindi essere richiamata per funzionare continuamente tramite una semplice funzione ‘run( )’, riutilizzabile all’interno del codice.

 

 Figura 4. Esempio di programma Arduino che utilizza la libreria AccelStepper per il controllo bidirezionale multiasse dei motori passo-passo, con accelerazione e decelerazione fluide.

Figura 4. Esempio di programma Arduino che utilizza la libreria AccelStepper per il controllo bidirezionale multiasse dei motori passo-passo, con accelerazione e decelerazione fluide. Immagine utilizzata per gentile concessione dell’autore

 

Programmazione e logica di controllo: PLC

Esistono diversi metodi per gestire il controllo dei motori passo-passo nel PLC. Un precedente progetto di controllo di un motore passo-passo con il PLC Mitsubishi della serie FX si è rivelato efficace per questo progetto, poiché offriva un’elevata flessibilità in termini di velocità e direzione. Per questo progetto è stata utilizzata l’istruzione di azionamento relativo (DRVI), che consente il controllo definendo il numero di impulsi e la direzione del movimento del motore, per implementare la logica del movimento relativo.

DRVI incrementa la posizione di rotazione del motore finché non viene attivata una condizione che arresta l’istruzione. Ad esempio, gli interruttori di finecorsa X002 e X003 possono essere utilizzati per arrestare le istruzioni di controllo del motore nella logica ladder riportata di seguito, interrompendo infine il movimento dei motori passo-passo.

 Figura 5. Esempio di programma in logica ladder che aziona due assi con motori passo-passo: istruzioni DRVI (azionamento incrementale) e DRVA (azionamento assoluto), con interruttori di finecorsa X002 e X003 per arrestare il movimento, uno per ciascun asse.

Figura 5. Esempio di programma in logica ladder che aziona due assi con motori passo-passo: istruzioni DRVI (azionamento incrementale) e DRVA (azionamento assoluto), con interruttori di finecorsa X002 e X003 per arrestare il movimento, uno per ciascun asse. Immagine utilizzata per gentile concessione dell’autore

 

L’istruzione DRVA viene utilizzata nei casi in cui sia necessario il posizionamento assoluto. Per aumentare ulteriormente la flessibilità del controllo, i registri dati vengono utilizzati insieme a un’interfaccia uomo-macchina (HMI) per gestire ingressi variabili come la frequenza e il numero di impulsi. Per manipolare al meglio queste variabili nei PLC Mitsubishi, si utilizza l’istruzione MOV per trasferire costanti all’interno di una logica ladder, consentendo flessibilità nella configurazione dei parametri. Ad esempio, un’HMI può disporre di un’interfaccia numerica che memorizza il valore immesso in un registro dati come D3, che potrà essere successivamente utilizzato nella logica di controllo, come illustrato di seguito.

Per applicazioni di controllo multiasse più complesse, che richiedono coordinamento e interpolazione, è possibile abbinare al PLC un modulo di posizionamento dedicato. Sebbene le istruzioni avanzate come DRVI e DRVA siano in grado di gestire movimenti sincronizzati, non possono generare facilmente profili di movimento complessi o traiettorie curve fluide nel controllo multiasse. Questi moduli di posizionamento dedicati offrono funzioni di programmazione di alto livello che semplificano i controlli del movimento complessi.

  • Arduino: programmazione flessibile, ma in formato testo strutturato, forse meno intuitiva per i professionisti tecnici dell’ambito industriale
  • PLC: la logica ladder è più familiare, ma meno flessibile per i profili di movimento complessi senza un modulo esterno

 

Scelta del controller per i progetti di automazione

Sulla base della mia valutazione pratica delle prestazioni dei due controller nell’automazione del progetto di saldatura ad arco, entrambi hanno mostrato punti di forza e debolezze. La scelta del controller più adatto al progetto di automazione dipende in larga misura dalle esigenze specifiche in termini di prestazioni e può richiedere la valutazione di aspetti come EMI, vibrazioni o persino polvere.

Valutando attentamente fattori come affidabilità, scalabilità e manutenibilità, gli ingegneri dei sistemi di controllo possono prendere decisioni informate e basate sul contesto, scegliendo i controller più adatti ai propri progetti di automazione.

Lascia un commento

Si prega di notare che, prima di essere pubblicati, i commenti devono essere approvati.