Vai al contenuto
PLC Forum


Passaggio da MC_Gearin a MC_Moveabsolute con inversione senso rotazione brushless


Carlo_Cornolo

Messaggi consigliati

Carlo_Cornolo

Buongiorno.

Un saluto a tutti i membri del forum.

Confesso che mi sento un po intimorito in quanto mi sono iscritto solo ieri e questo è il mio primo post/ quesito.

Il mio problema è che devo comandare un asse ( V90 slave) legato ad un encoder esterno (Master) con la funzione MC_Gearin.

Al raggiungimento di un determinato valore del master, con la funzione MC_MoveAbsolute faccio ritornare l'asse slave ad una posizione di "0".

Il tutto funziona, ma avrei bisogno che nel passaggio dalla funzione MC_Gearing alla funzione MC_MoveAbsolute il motore fosse più pronto nell'invertire il senso di rotazione.

Ho provato con varie accelerazioni e decelerazioni,

Ho aumentato il a 5 il fattore nelle proprieta del MC_Servo.

Grazie in anticipo del vostro aiuto.

 

Link al commento
Condividi su altri siti


14 minuti fa, Carlo_Cornolo scrisse:

Ho provato con varie accelerazioni e decelerazioni,

Ho aumentato il a 5 il fattore nelle proprieta del MC_Servo.

Evidentemente sbagli qualcosa.

Riguardo al "fattore nelle proprietà di MC_Servo", questo è un valore che, moltiplicato per il "Clock di trasmissione", determina ogni quanto tempo viene elaborato MC_Servo.

Per applicazioni spinte va bene un tempo di MC_Servo di 4 ms. Mano a mano che l'applicazione diventa meno spinta, si può aumentare questo tempo.
Il concetto è che più aumenti il fattore, e meno prestazionale sarà il controllo.

Ma se non riesci a far lavorare il motore con le accelerazioni che hai impostato, non credo che il problema sia qui (a meno che il tempo di MC_Servo non sia altissimo), ma nel modo in cui passi le accelerazioni a MC_MoveAbsolute, o nei limiti della dinamica impostati nell'oggetto tecnologico.

Modificato: da batta
Link al commento
Condividi su altri siti

Carlo_Cornolo

Grazie per la risposta così immediata.

I valori di accelerazione e decelerazione sono scritti direttamente nelle funzioni MC. Il tempo di Mc_Servo è di 4ms.

Potrebbe essere che durante la fase di MC_Gearing, visto lo sforzo del motore, deve sfilare dei pezzi da una tramoggia, si " carichi " troppo e poi non riesca a frenare perchè deve dissipare l'energia "accumulata" durante la spinta?  ( spero che nessuno si strappi le vesti per una teoria così strampalata ).

 Come posso capire se il motore va in sofferenza?

[ Pensavo di ricorrere ad una resistenza di frenatura o addirittura un freno ]

Link al commento
Condividi su altri siti

Per capire cosasta succedendo, devi usare le funzioni "trace", in modo da registrare le grandezze che vuoi controllare.

Nel tuo cas le più significative sono: posizione attuale, velocità attuale, accelerazione attuale, errore inseguimento. Ma sono molte altre quelle che puoi monitorare con i trace.

Tieni presente anche del valore "jerk" (per la rampa ad S).

Potresti avere impostato, come valore di default nell'oggetto tecnologico, un valore di jerk che non ti consente di ottenere le accelerazioni che imposti in MC_xxx.

Modificato: da batta
Link al commento
Condividi su altri siti

Carlo_Cornolo

I trace che avevo fatto mi confermavano che la commutazione tra le due funzioni MC avviene nel momento in cui le attivo, ma l'asse avanza ancora di 10 o 20 mm prima di invertire la direzione.

Provo ad aumentare il jerk che è quello di default. Spero di avere la macchina a disposizione oggi pomeriggio o lunedi.

 Grazie infinite per la disponibilità.

Link al commento
Condividi su altri siti

il 23/4/2021 at 13:03 , Carlo_Cornolo scrisse:

ma l'asse avanza ancora di 10 o 20 mm prima di invertire la direzione.

Non può certo invertire la direzione in modo istantaneo. Deve rallentare fino a velocità zero, e poi accelerare in direzione opposta.
Nel trace devi controllare quale accelerazione ti trovi in questa fase. Se non è quella che ti aspetti, potrebbe essere per un jerk troppo basso.

Link al commento
Condividi su altri siti

Carlo_Cornolo

Al momento, ho risolto anticipando il passaggio alla funzione MC_MoveAbsolute di una misura pari al ritardo di inversione del senso di rotazione del motore.

Purtroppo al momento non posso eseguire altre prove cambiando il jerk su questa parte.

Un grazie particolare a batta.

 Ciao

Link al commento
Condividi su altri siti

Sarebbe di aiuto sapere cosa devi realizzare.
A prima vista, sembrerebbe un taglio al volo.

In questo caso, ti devi sganciare dal master e comandare il ritorno quando hai la garanzia che il taglio è stato fatto, e che la cesoia (o altro organo con uguale funzione) non interferisce più meccanicamente. Poi, ovviamente, l'asse avanzerà ancora, secondo la velocità attuale e la decelerazione impostate.

Anticipare il comando di ritorno potrebbe andare bene, o potrebbe non andare bene.

Link al commento
Condividi su altri siti

Carlo_Cornolo

Non si tratta di un vero e proprio taglio al volo in questa parte di macchina, ma di uno spintore che si deve adeguare, per una certa corsa,  ad un asse master e poi ritornare

al punto di home ed attendere un altro comando di start ciclo.

 Il taglio al volo, in un'altra parte della macchina, la realizzo con la funzione MC_gerringInPos e quella funziona alla grande.

 Saluti

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...