Vai al contenuto
PLC Forum


Posizionamento Asse con motore brushless


LoSa

Messaggi consigliati

Buongiorno a tutti,

Per un progetto che sto sviluppando, ho la necessità di fare un controllo di posizione su di un motore brushless che muove un carrello tramite una puleggia. Per movimentare il motore avevo pensato di muoverlo sfruttando il profilo di velocità del drive, e gestire io nel controllo la chiusura dell'anello di posizione,il Drive è un Hiwin D2 da 400W(Rispetta il Cia402 come standard) con collegato un motore 3000rpm 131072 count/rev, e il controllo viene fatto da una Runtime Codesys RTE installata su di un PC con I3-4005u 2Core/4Thread, per il posizionamento uso un generatore di rampa che tiene conto delle distanze tra il punto di partenza ed il punto di arrivo, in pratica determina l'inclinazione delle rampe e il profilo triangolo o trapezio a seconda della lunghezza del tratto che l'asse deve compiere. Il posizionatore funziona, almeno in altre applicazioni già provato e collaudato, ma in questa specifica applicazione vado quasi sempre lungo rispetto al target, a volte torno indietro a volte chiudo il posizionamento ma se confronto la posizione dell'asse a fine posizionamento ed il target non rimango nell'offset prefissato, io sto pensando che sia dovuto ad un jitter o ad un tempo ciclo ma non penso in quanto rimango nell'ordine dei microsecondi, comunque lascio screen in allegato dei tempi ciclo, qualche consiglio su come poter andare avanti, magari migliorando il posizionatore, o se con la Runtime che sto usando non è fattibile

Ringrazio in anticipo per qualsiasi suggeimento/risposta,

Lorenzo

TempiCiclo.png

Link al commento
Condividi su altri siti


Beh fare posizionamenti tramite un controllo in velocità la vedo un po' dura, penso dovresti usare istruzioni per posizionamenti assoluti oppure con posizionamenti relatiivi rispetto all'ultima posizione acquisita, ci pensa l'istruzione che usi a effettuare il calcolo del posizionamento da fare a seconda anche della pendenza della rampa che hai impostato. Bisogna vedere dell'asse e dell'azionamento che controlli se hai istruzioni dedicate o se puoi affidarti a istruzioni PLC Open

Link al commento
Condividi su altri siti

Grazie della risposta e scusa il ritardo della risposta ma sono stato fuori per lavoro e ho trovato difficoltà nel risponderti,

Sospettavo dovessi passare per la PLCOpen, ma (solo per un discorso di costi) volevo evitare di usare le librerie del softmotion che nel sistema che viene usato dalla mia azienda è a pagamento, e la soluzione era o provare a fare un controllo in velocità e vedere come va, oppure svilupparsi almeno i blocchi fondamentali di pugno mio, e non so se anche questa strada sia percorribile con relativo poco sforzo,

Ciao

Link al commento
Condividi su altri siti

9 minuti fa, LoSa ha scritto:

e non so se anche questa strada sia percorribile con relativo poco sforzo

 

Tutto dipende dalle tue conoscenze. Sino a qualche anno fa, quando non esistevano blocchi funzionali per il controllo di posizione, dovevi farti il tuo posizionatore.

Io non l'ho mai trovato difficile, anche perchè una volta fatto il primo, se lo fai bene, non devi farlo più.

Se non ti necessita l'interpolazione tra assi, realizzare un posizionatore è un lavoro che si può fare in poche ore di lavoro.

Link al commento
Condividi su altri siti

Ciao Livio, grazie della risposta,  quello che dici te lo condivido in pieno, infatti il posizionatore che ho sviluppato funziona, infatti su altri tipi di controllo e riscontro, con velocità e incrementi del riscontro più bassi funziona bene, secondo me, ma non so come verificare il mio sospetto, ho dei problemi di aggiornamento delle variabili, nel senso che il posizionatore avvolte si accorge di aver già superato il SetPoint e quindi torno indietro, mentre avvolte nemmeno torno indietro e risulto in posizione, in questi due casi se metto dei breakpoint dove vado in posizione e lo congelo vedo che la posizione attuale del mio assse torna con quella di SetPoint, ma nella realtà l'asse mi è già andato avanti, quindi pensavo di sfruttare il profilo di velocità per fare solo del JOG e il profilo di posizione per fare i posizionamenti, in modo che sia l'azionamento a chiudere l'anello e non il mio controllo, sarebbe grosso modo quello che avviene in un controllo con il softmotion e utilizzando la PLCOpen come libreria di appoggio per effettuare, come diceva @leleviola nel suo commento, devo solo verificare la fattibilità della cosa, anche perchè se sviluppo queste funzioni bene rispettando lo standard Cia402 posso virtualmente mettere in marcia un qualsiasi drive che rispetti questo standard

Ciao,

Lorenzo

 

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...