Forum Italiano sui Prodotti NI

cancel
Showing results for 
Search instead for 
Did you mean: 

Output analogico su azionamento per pilotare un motore DC.

Buongiorno a tutti,

sarebbe possibile secondo voi pilotare un'azionamento che a sua volta fa girare un motore DC, con un'uscita analogica con un Timing da clock esterno (è presente un encoder in asse al motore) in modo da simulare un po quello che fa una scheda assi?

0 Kudos
Message 1 of 8
(5,934 Views)
Se intendi creare un loop ad anello chiuso in cui il feedback passa attraverso il PC (imposto il riferimento analogico-leggo l'encoder-correggo il riferimento) credo che andrai incontro a delle delusioni: non è un hardware abbastanza veloce e soprattutto non è prevedibile nei tempi di reazione, potresti sempre trovarti il PC che sta eseguendo altri task in background. A meno che naturalmente non ti appoggi ad un hardware real-time dentro il PC o fuori...


Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Message 2 of 8
(5,933 Views)
No intendevo ad anello aperto, non mi interessa controllare la posizione dell'asse tramite l'encoder. Il sistema è già controllato tramite azionamento-dinamo. L'encoder mi servirebbe solo per dare il segnale di clock per AO. Mi serve solo che AO di dia in uscita una forma d'onda trapeziodale per un certo numero di impulsi (diciamo per fare fare un giro all'asse).
0 Kudos
Message 3 of 8
(5,930 Views)

Ah OK, allora intendi usare l'uscita analogica perchè hai bisogno il trapezio. Potresti dare un'occhiata all'esempio "Gen Multi Volt Updates - Int Clk.vi" che trovi nell'Example Finder in Hardware Input and Output >> DAQMx >> Analog Generation >> Voltage. In questa sezione ce ne sono anche altri che potresti guardare.

 

Le prime cose che mi vengono in mente sono:

- Le capacità di aggiornamento della scheda devono essere compatibili con la frequenza che ti aspetti per il segnale generato, altrimenti non riesci a dare un trapezio abbastanza definito (così ad occhio direi che i fronti inclinati dovrebbero essere suddivisi almeno in una decina di campioni, e questo dato il tempo di rampa ti dà un ordine di grandezza per la cadenza di aggiornamento dell'output)

- Devi generare tu la forma d'onda (non credo che ci sia un vi per generare un trapezio)



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Message 4 of 8
(5,927 Views)

Andrò a vedere l'esempio appena posso.

Tanto per capire: ho un asse rotativo da far girare. Con l'encoder montato ho circa 30000 impulsi ogni giro dell'asse. Se uso l' AO con il Timing esterno, nel mio caso uno dei canali dell'encoder, dovrò distribuire il mio trapezio (che mi autocostruirò in qualche modo)  in questi 30000 impulsi, giusto?

0 Kudos
Message 5 of 8
(5,923 Views)

Dovrebbe essere così. Tieni solo conto del fatto se l'encoder ha una o due serie di tacche e se il 30000 è dato da una serie sola o è il prodotto delle due (nel qual caso ogni canale avrebbe solo 7500 impulsi / giro).

Non avevo capito che intendevi usare l'encoder come clock: l'esempio che ti ho indicato usa il clock interno alla schedama nella stessa cartella ci sono esempi col closk esterno.



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Message 6 of 8
(5,918 Views)
I 30000 impulsi sono riferiti ad un solo canale, per cui utilizzerò un solo canale (in realtà sono un po meno circa 23000 impulsi) in quanto non devo fare un giro completo dell'asse. Chiaramente i primi impulsi dell'onda di uscita dovranno essere ad una tensione maggiore di 0 altrimenti l'asse non si muoverà all'inizio, giusto? Possibile?
0 Kudos
Message 7 of 8
(5,915 Views)
Il tuo segnale analogico se non ho capito male entra in un azionamento e rappresenta la rampa di accelerazione del motore, che poi girerà a velocità costante nella tratta orizzontale del trapezio. L'azionamento avrà un convertitore ADC in ingresso con una certa risoluzione: se il tuo riferimento è più piccolo della risoluzione minima verrà visto come 0 e il motore dovrebbe stare fermo, salvo cominciare a muoversi appena superi la soglia minima di discriminazione del riferimento. Io però non mi preoccuperei di questo, a meno che la tua rampa sia molto inclinata, nel qual caso potresti trovarti a perdere dei passi nelle fasi iniziali (ed eventualmente finali) del movimento. Se sai la risoluzione minima del canale in ingresso potresti parrare la tua rampa (prima di mandarla in output) in una funzione Pin in modo da avere tutti valori superiori a una certa soglia (tranne l'ultimo campione, ovviamente! Smiley Wink )


Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Message 8 of 8
(5,913 Views)