Il controllo del motore elettrico
4.1 Descrizione generale del progetto
4.1.1 Introduzione
Il programma, realizzato con LabVIEW 7.1 della National Instru-ments, permette il controllo delle principali funzioni del motore elettrico Baldor BSM100A-1150AA. Rende possibile la gestione, tramite personal computer, della velocità, del tempo d’accelerazione e decelerazione e del senso di rotazione. Permette di programmare dei cicli di test, ripeterli più volte e salvarli su file per utilizzarli successivamente.
4.1.2 Specifiche del progetto
Le specifiche tecniche del progetto sono le seguenti: 1. Controllo diretto della velocità di rotazione del motore.
2. Controllo diretto del tempo d’accelerazione e decelerazione del moto-re.
3. Controllo diretto della direzione di rotazione del motore.
4. Programmazione di cicli di test impostando step di velocità, tempo di accelerazione, tempo di decelerazione, tempo di permanenza delle singole velocità e numero di ripetizioni del ciclo.
5. Memorizzazione su file dei cicli di test di particolare interesse. 6. Visualizzazione grafica del profilo del singolo ciclo.
7. Visualizzazione della velocità effettiva del motore in forma digitale e analogica.
8. Visualizzazione grafica in tempo reale del profilo effettivo della velo-cità del motore.
4.1.3 Valore dei parametri
Nella tabella seguente sono mostrati i valori dei parametri regolabili dall’utente. Range Parametro Min Max Default Unità di mi-sura
Velocità di rotazione del
motore 0 4500 0 rpm
Tempo d’accelerazione tra
due livelli di velocità. 1 10 5 s
Tempo di decelerazione tra
due livelli di velocità. 1 10 5 s
Tempo di transizione tra due valori di velocità in un ci-clo.
1 10 5 s
Tempo di permanenza della
singola velocità in un ciclo. 0 600 10 s
Numero di ripetizioni del
ciclo 1 10 1
Numero dello step nel ciclo 1 10 1
Controllo della direzione di rotazione
Unclock
wise Clockwise
Unclock wise
4.2 Diagramma di flusso
Il diagramma di flusso è diviso in due parti, il diagramma per il con-trollo diretto del motore e quello per il concon-trollo programmato.
Avvio del programma
comunicazione seriale corretta?
Selezione del valore dei parametri speed, rise time, fall time e rotation
direction.
START vero?
Passaggio dei parametri al controllore del motore.
STOP vero? EXIT vero?
Selezione del nuovo valore dei parametri speed, rise time, fall time
e rotation direction.
NEW SPEED vero?
Ripristino del valore default dei parametri. Terminazione del
programma. Ripristino del valore
default dei parametri.
Passaggio dei parametri al controllore del motore. Avvio della rotazione del motore con i nuovi
parametri. Rotazione standard?
Avvio del motore e attivazione del pulsante
NEW SPEED. Continui con la rotazione non standard? SI NO SI NO SI SI SI SI SI NO NO NO NO NO
Ripristino della direzione di rotazione standard. PROGRAM FALSO
EXIT vero?
Ripristino del valore default dei parametri. Terminazione del
programma. NO
SI
Avvio del programma
comunicazione seriale corretta?
Programmazione dello step; selezionando il numero dello step, la velocità, il tempo di transizione e il tempo di
permanenza.
MEM vero?
Passaggio dei parametri al controllore del motore.
OK vero? SI NO SI NO Memorizzazione su file dello step. NO SI CANCEL vero? Rotazione del motore
Ripristino dei valori default dei parametri e arresto del
motore. EXIT vero?
Ripristino dei valori default dei parametri, arresto del motore e terminazione del
programma.
Rotazione standard?
Continui con la rotazione non
standard?
Ripristino della direzione di rotazione standard SI SI SI SI NO NO NO NO PROGRAM VERO Programmazione ciclo terminata? NO SI EXIT vero?
Ripristino dei valori default dei parametri, arresto del motore e terminazione del
programma.
NO
SI
4.3 L’interfaccia grafica
L’interfaccia grafica si presenta, all’utente, nel modo seguente:
Figura 3 – L’interfaccia grafica
1
2 3
L’interfaccia è divisa in tre zone:
• Il controllo diretto (zona 1 di figura 3); • La programmazione (zona 2 di figura 3); • La visualizzazione (zona 3 di figura 3).
4.3.1 Il controllo diretto
Rende possibile controllare la velocità del motore e i tempi d’accelerazione e decelerazione. Nella tabella seguente sono elencati i co-mandi presenti.
Comando Descrizione
Avvio del motore sondo le impostazioni. Arresto del motore.
Uscita dal programma.
Convalida la scelta di una nuova velocità di rotazione. (è attivo solo con il motore già in movimento)
Nella tabella seguente sono mostrati i controlli presenti.
Controllo Descrizione
Selettore della velocità in rpm.
Selettore del tempo d’accelerazione in secondi.
Selettore del tempo di decelerazione in secondi.
4.3.2 La programmazione
Questa parte presenta un numero maggiore di comandi; i parametri che posso controllare sono la velocità di rotazione del motore, il Delay Time, cioè il tempo che il motore impiega a cambiare la sua velocità di rotazione e il Duration Time, il tempo che il motore deve mantenere costante la velocità
impostata. Sono inoltre presenti il visualizzatore del loop e dello step che il motore esegue in quel momento, ed il visualizzatore grafico (Cycle Profile) che permette di avere una visione del ciclo impostato. I comandi hanno le seguenti funzionalità:
Comando Descrizione
Abilita e disabilita la parte di programmazione.
Memorizza lo step impostato. Avvio del motore. Arresto del motore
Visualizza il ciclo programmato. Memorizza, in un file, il ciclo programmato.
Apre un file memorizzato. Azzera il display grafico.
4.3.3 La visualizzazione
In quest’ultima zona dell'interfaccia è possibile prendere visione della velocità del motore, in rpm, da un display analogico (stile auto) e da uno di-gitale. E' inoltre possibile visualizzare la porta di comunicazione ed il profilo effettivo descritto dalla velocità del motore in tempo reale. Sono presenti an-che due spie per segnalare l'avvio del motore, Start, e per la corretta comuni-cazione con la porta seriale, Com Test. L'unico pulsante presente serve per il reset del profilo della velocità.
4.3.4 Controllo della direzione di rotazione
E' possibile selezionare manualmente il tipo di rotazione del motore e prenderne visione nella finestra in alto. La segnalazione visiva è di due tipi, un semplice avviso testuale nel caso di rotazione convenzionale, mentre per una non convenzionale la segnalazione testuale è accompagnata da un blin-king dell'intera casella più una finestra di conferma sulla scelta del senso di rotazione. Il controllo della direzione di rotazione del motore è il seguente:
Finestra di visualiz-zazione dei messag-gi sulla direzione di rotazione del
moto-re. Selettore della
direzione di ro-tazione del
mo-tore.
Figura 4 – Controllo del verso di rotazione
4.4 Funzionamento del programma
Il programma può funzionare in due modi distinti, manualmente o program-mando i parametri del motore.
4.4.1 Funzionamento manuale
Il controllo diretto prevede la scelta della velocità del motore, del rise time e del fall time, per default i tempi sono impostati a 5 secondi e la velocità a 0 rpm. Do-po aver imDo-postato i parametri del motore con il pulsante di START si avvia il motore stesso, per fermare la rotazione si usa il pulsante di STOP che riporta ai valori di de-fault, per cambiare la velocità di rotazione oppure i tempi, quando il motore è già in movimento, selezionare il nuovo valore con l'apposito controllo e premere NEW SPEED. Quando fermiamo la rotazione del motore per ripartire si usa sempre il
pul-sante di START. Per arrestare il motore e uscire dal programma si usa il pulpul-sante EXIT. All’avvio il programma controlla la comunicazione con il controllore, se non è corretta avverte, tramite finestra di pop-up l’utente e arresta il programma. Ma-nualmente, è possibile selezionare, prima dell'avviamento, il verso di rotazione del motore. Nel caso di rotazione non standard l’utente viene avvisato, ancora tramite fi-nestra di pop-up, se continuare o tornare alla rotazione standard. Per default la dire-zione di rotadire-zione è antioraria.
4.4.2 Programmazione
Uno step è definito da tre parametri; la velocità di rotazione del moto-re elettrico, il tempo di transizione e il tempo di permanenza della velocità. La durata temporale di una step è data dalla somma del tempo di transizione e dal tempo di permanenza della velocità, vedi figura 5. Un ciclo è definito dal numero degli step programmati. Il numero massimo di step che un ciclo può avere è dieci.
delay time
duration time
step
Per programmare un ciclo di step del motore si deve utilizzare l’interruttore PROGRAM. La fase di programmazione è composta dai se-guenti passi:
1. Scelta dello step da programmare tramite dal controllo PROGR STEP.
2. Impostazione della velocità.
3. Impostazione del delay time e del duration time.
4. Memorizzazione dello step tramite il pulsante MEM STEP.
5. Incrementare il numero di step e tornare al punto 2.
6. Scelta del numero di volte che si vuole ripetere la sequenza di step
tramite il controllo NUM LOOP.
7. Avvio del motore dal pulsante OK.
8. Arresto automatico a fine ciclo o manuale tramite CANCEL.
4.4.3 Salvataggio di un ciclo
Per salvare un ciclo di test programmato è sufficiente utilizzare il pul-sante MEM presente nel riquadro CYCLE, nella fase successiva viene richie-sto il nome del file e dove salvarlo. E’ inoltre possibile aprire e utilizzare i cicli di test memorizzati in un file con il pulsante OPEN.
4.4.4 Visualizzazione del ciclo programmato
Con il pulsante DISPLAY si può prendere visione del ciclo program-mato nell’apposita finestra CYCLE PROFILE, dove è visualizzata unicamen-te la prima ripetizione del ciclo.
4.5 Descrizione generale del codice
Il codice del programma è formato da due stacked sequence, nella pri-ma il programpri-ma configura la porta seriale, nella sonda è presente il test del-la comunicazione e del-la fase di controllo del motore. Per il passaggio dal trollo manuale alla programmazione si usa il pulsante PROGRAM, che con-trolla una struttura case.
4.5.1 Controllo manuale
Per default il pulsante NEW SPEED è disattivato fin quando non si avvia, tramite START, il motore. Quando START è vero, invio i parametri, rise time e velocità del motore al controllore, decido il tipo di rotazione e avvio il motore. A questo punto, con il motore in movimento, START è fal-so; è quindi possibile arrestare il motore oppure cambiare la velocità con l’uso di NEW SPEED. E’ sempre possibile arrestare motore e programma con EXIT, il pulsante controlla il ciclo while che racchiude tutto il program-ma.
4.5.2 Programmazione
Con PROGRAM si possono utilizzare i controlli per la programmazio-ne. Se MEM è vero il programma salva i parametri dello step precedentemen-te impostato, se è falso posso avviare il ciclo tramiprecedentemen-te OK, salvare o aprire un file oppure visualizzare su display il ciclo programmato. Quando OK è vero, il programma, carica in memoria i vari parametri e li comunica al controllore per comandare in modo corretto il motore. Mentre il motore ruota, il
pro-gramma controlla continuamente se è stato richiesto l’arresto tramite CAN-CEL.
4.6 Descrizione delle SubVI
Di seguito è riportato l’elenco e una breve descrizione delle subVI uti-lizzate nel programma.
Icona Descrizione Icona Descrizione
Comunicazione seriale. Scrive un file (è usato nella
programmazione). Controllo della comunicazione
seriale e indirizzamento del controllore.
Visualizza il profilo del ci-clo (è usato nella
program-mazione). Calcolo e passaggio del rise
time al controllore (è usato nel controllo manuale)
Apre il file memorizzato (è usato nella
programmazio-ne). Calcolo e passaggio della
ve-locità al controllore (è usato nel controllo manuale).
Legge da file (è usato nella programmazione).
Direzione di rotazione positiva Visualizzatore della velocità
del motore Direzione di rotazione
negati-va
Arresto del motore.
Decisore tra rise time e fall time (è usato nel controllo
manuale)
4.6.1 Comunicazione seriale
La subVI di figura 6, gestisce la comunicazione seriale con il control-lore del motore. L’open visa apre una sessione visa con la porta COM1, la
visa serial configura la comunicazione sondo i parametri visti nel capitolo 3. La subVI riceve, sul write buffer, la stringa da scrivere. Dopo attende 400 ms per poi andare a leggere la risposta della periferica collegata. Infine chiude la sessione visa.
Figura 6 – Comunicazione seriale.
Nella subVI è eseguito un test, sul numero di caratteri scritti sulla porta seria-le. Ho un confronto tra il numero di caratteri scritti, return count, e il numero dei ca-ratteri del write buffer.
La subVI restituisce in uscita il codice dell'eventuale errore, il nome assegnato da LabVIEW alla risorsa di comunicazione e la stringa letta sulla porta seriale.
4.6.2 Controllo della comunicazione seriale
In figura 7, è mostrata la subVI che esegue il test della comunicazione e indi-rizza il controllore del motore. Questa subVI utilizza un'ulteriore subVI per la scrittu-ra e lettuscrittu-ra da porta seriale, vedi 4.4.3.8. Alla subVI vengono passati due pascrittu-rametri, il nome della risorsa per la comunicazione e la stringa A0? ↵. La stringa serve per
indirizzare la scheda e chiedere una risposta di conferma, se questa non c'è, in uscita c'è un test per la verifica della corretta comunicazione.
Figura 7 – Controllo della comunicazione seriale
4.6.3 Decisore
La seguente subVI esegue un test tra la velocità corrente e quella nuova per decidere quale dei due tempi deve utilizzare nel cambio di velocità.
Figura 8 – Decisore tra rise time e fall time
4.6.4 Speed
La seguente subVI calcola la velocità del motore in incrementi al son-do e la invia al controllore del motore. Il controllore riceve la velocità in in-crementi al sondo, la costante 136.53 è il fattore di conversione da rpm ad incrementi al secondo. 4096 ( / s) 2 136.53 60 30 Ni v inc =rpm⋅ ⋅ =rpm⋅ =rpm⋅
Ni è il numero di incrementi al giro, dal manuale Ni = 4096. La costante 2 è un fattore del motore Baldor.
La subVI di scrittura e lettura riceve il nome della risorsa di comunicazione è la stringa i06v↵, dove v è la velocità in incrementi al sondo.
Figura 9 – Comando della velocità del motore
4.6.5 Time
La seguente subVI calcola il tempo d’accelerazione o decelerazione in sondi e lo invia al controllore del motore. La costante 1024 è il fattore di conversione per il tempo. Il controllore riceve il tempo in 1/1024 secondi.
La subVI di scrittura e lettura riceve il nome della risorsa di comunicazione e la stringa i08t↵, dove t è il tempo in sondi.
4.6.6 Direzione di rotazione
Le seguenti subVI impostano la direzione di rotazione del motore. La subVI di scrittura e lettura riceve il solito nome della risorsa di comunicazione è la stringa J↵, per la direzione di rotazione positiva, j↵ per quella negativa.
Figura 11 – Comando del verso di rotazione
4.6.7 Scrittura in un file dello step
La seguente subVI scrive in una serie di file temporanei i dati dello step programmato.
4.7 Verifica del programma e risultati
I test fatti sono sulla velocità del motore, sul tempo d’accelerazione e decelerazione e sulla programmazione di un profilo di velocità. I risultati dei test sono stati salvati come immagini jpeg, dove è possibile prendere visione di quanto effettivamente misurato dallo strumento.
4.7.1 Misura della velocità
4.7.1.1 Misura a velocità costante di 25 rpm.
In figura 13, è mostrato il risultato visualizzato dallo strumento a ve-locità costante di 25 rpm. Sul canale 15, tratto in celeste, è mostrato il profi-lo di veprofi-locità del motore, mentre in coprofi-lore fucsia viene mostrato il segnale impulsivo, proveniente dal sensore di prossimità montato di fronte all'albero motore.
Velocità di rotazione del motore.
Valore in rpm.
Sequenza d’impulsi del sensore di prossimità.
4.7.1.2 Misura a velocità costante di 500 rpm.
In figura 14, sono mostrati i risultati per una velocità di 500 rpm. Dal-la figura si nota una certa oscilDal-lazione del valore di velocità, questa oscilDal-la- oscilla-zione è dovuta al campo elettromagnetico generato dal motore stesso, dall'i-nerzia della catena di trasmissione, dalla precisione di regolazione e di misu-ra con due soli impulsi per giro.
Valore in rpm.
Velocità di rotazione del motore.
Figura 14 – Risultati a 500 rpm.
4.7.1.3 Misura a velocità costante di 3000 rpm.
In figura 15, sono mostrati i risultati per una velocità di 3000 rpm. Anche in questo caso è ben visibile l’oscillazione del valore di velocità del motore misurato.
Velocità di rotazione del motore.
Valore in rpm.
Figura 15 – risultati a 3000 rpm.
4.7.2 Misura del tempo
4.7.2.1 Misura del rise time
In figura 16, è mostrato il risultato della misura sul tempo di salita, della velocità di rotazione da 0 a 3000 rpm imponendo da programma un tempo di 15 s. Come si vede, dalla figura, la scala temporale è di 3 s/div, il numero di divisioni durante le quali il profilo sale sono cinque, quindi:
s 3 5
Rise Time= div numero di divisioni⋅ = ⋅ = 15s
Otteniamo il tempo d’accelerazione impostato da programma. In questo caso il pas-saggio da 0 a 3000 rpm è fatto in modo corretto.
Figura 16 – Misura del rise time
4.7.2.2 Misura del fall time
In figura 17, è mostrato il risultato della misura sul tempo di discesa, della velocità di rotazione da 3000 a 0 rpm imponendo da programma un tempo di 5 s. Come si vede la scala temporale è di 2 s/div, il numero di divi-sioni è circa 2.5, quindi:
s 2 2.5
Fall Time= div numero di divisioni⋅ = ⋅ = 5s
Il passaggio da 3000 a 0 rpm è fatto in cinque sondi come impostato da programma.
Rise time
Profilo d’accelerazione.
Valore residuo random allo stop del motore dovuto al sistema di misura, vedi punto 1
nella figura 22.
1
Azzeramento alla partenza del motore.
Fall time
Figura 17 –Misura del fall time.
4.7.3 Misura del profilo
4.7.3.1 Profilo di un singolo ciclo
I parametri impostati, da programma, sono i seguenti:
• primo step: delay time 5 s; duration time 20 s; velocità 1000 rpm; • secondo step: delay time 5 s; duration time 20 s; velocità 500 rpm, • terzo step: delay time 10 s; duration time 10 s; velocità 3000 rpm; • Fall time finale 10 s.
Durata complessiva.
Step 3
Step 2 Step 1
Figura 18 – Profilo di un singolo ciclo di tre step, misura della durata complessiva.
Durata del livello 2 della velocità.
Il motore esegue, in modo corretto, il ciclo richiesto. Le leggere diffe-renze di tempo visibili sulle tracce di figura 18 e 19 sono dovute ai tempi di comunicazione e risposta tra il motore e il sistema, dall'inerzia del banco meccanico. Questi errori sono trascurabili per il tipo d’applicazione utilizza-ta.
4.7.3.2 Profilo di un ciclo ripetuto 2 volte
I parametri impostati, da programma, sono i seguenti:
• primo step: delay time 5 s duration time 20 s velocità 1000 rpm; • secondo step: delay time 5 s duration time 20 s velocità 2500 rpm; • fall time finale 5 s;
• Numero cicli 2.
Il motore esegue correttamente il ciclo richiesto e la sua ripetizione.
In conclusione possiamo affermare che il programma funziona in mo-do corretto. E’ possibile, come visto gestire la velocità di rotazione del moto-re ed i tempi d’accelerazione e decelerazione. Inoltmoto-re si può programmamoto-re ci-cli singoli o ripetuti di velocità differenti.