Vai al contenuto
PLC Forum


Posizionamento Tavola Rotante


BrunoVend

Messaggi consigliati

Ciao a tutti

Chiedo gentilmente un aiuto per il seguente problema,

Espongo il problema:

Ho effettuato un programma in ladder di posizionamento tavola con Somachine 3.1 tramite inverter e motore con doppia riduzione 1:100, quindi la velocità di rotazione è molto lenta, e va da 0° a 359.9° e poi ricomincia da 0° girando o in avanti o indietro in base alla distanza dal SetPoint, se l'errore è negativo vado indietro se è positivo vado in avanti.

Mi calcolo l'errore:

SetPoint - PosizioneAttuale -->ERRORE

Mi sono creato poi altre due variabile tipo real che mi danno l'ErrorePositivo o ErroreNegativo:

SetPoint >= PosizioneAttuale -->ErrorePositivo

SetPoint <= PosizioneAttuale -->ErroreNegativo

Se l'errore è negativo lo rendo sempre positivo con la seguente formula;

ERRORE X -1 -->ErroreSemprePositivo

Questo ErroreSemprePositivo mi serve per crearmi tramite tabelle comparative delle impostazioni di velocità in ingresso all'inverter tipo:

ErroreSemprePositivo alto = Frequenza inverter alta

ErroreSemprePositivo basso = Frequenza inverter bassa

questo in via proporzionale in funzione dell'errore, le velocità sono 5, fino ad arrivare ad un errore bassissimo quindi velocità di avvicinamento molto molto bassa, poi ho dato una tolleranza di più o meno 0,2* entro il quale arresto l'inverter.

Fin qui tutto funziona regolare, il mio problema si pone quando passo per lo 0° da 359,9 a 0° o da 0 a 359.9°, a questo punto la distanza diventa grandissima e mi riparte l'inverter a velocità alta e così via per sempre.

Es:. Sono a 358° devo andare a 359°, ho un errore di 1° positivo quindi vado avanti con il motore,

Stessa cosa se mi trovo a 10° e devo andare a 5°, errore di 5° negativo quindi vado indietro.

Il problema nasce quando mi trovo a 358° e devo andare a 5°, l'errore mi diventa istantaneamente di -353° in realtà dovrebbe essere di solo 7°, stessa cosa se mi trovo a 5° e devo andare a 358° mi ritrovo un errore di 353° questa volta in positivo in quanto l'errore è dato da SetPoint - Attuale.

Non sono riuscito a pensare come gestire questo passaggio per lo 0°.

Grazie

Bruno

Link al commento
Condividi su altri siti


La corsa calcolala solo quando cambia il setpoint, non quando cambia la posizione.

La posizione la ricalcoli solo per detrazione del delta angolo, cioè della quantità di corsa effettuata dal cambio setpoint all'istante attuale.

Modificato: da NoNickName
Link al commento
Condividi su altri siti

Ringrazio di cuore per le tempestive risposte,

Sono stato fuori e non ho avuto modo ancora di provare, ma guardando così presumo che in questo modo io avrò lo spostamento solo quando mi cambia il SetPoint,

Per il mio caso invece anche quando ho raggiunto la posizione siccome la tavola può essere spostata anche a mano, in questo caso la posizione cambia ed il SetPoint rimane invariato ed io comunque devo correggere la posizione, in pratica fermo il motore se mi trovo entro il range di più o meno 0,2 gradi, ma se accidentalmente esco al di fuori di questo range automaticamente il sistema dovrà andare in correzione.

N.B. La posizione non è data da un encoder, ma da un segnale digitale che mi viene fornito da una bussola elettronica che gira insieme alla tavola e per la stabilizzazione del segnale necessita di un tempo di circa 10 secondi, quindi io posso raggiungere la posizione, fermare il motore ma subito dopo posso superare la posizione e dopo qualche secondo la posizione torna indietro (dovuto al tempo di stabilizzazione segnale), e quindi devo ripartire con il motore in correzione per rientrare in Range.

Gentilmente potete darmi qualche dritta di come gestire i calcoli? tenendo conto comunque il passaggio per lo zero....

Ringrazio anticipatamente

Bruno

Link al commento
Condividi su altri siti

Quale che sia il trasduttore non ha importanza, se il valore è un valore assoluto. L'unico problema è il tempo di ritardo del trasduttore che rende difficile posizionare: 10" possono essere un'eternità!

Dovessi farlo io lo eseguirei per approssimazioni successive. Prevedi un profilo di velocità triangolare per l'inverter, con il culmine a metà tempo. Il tempo di attivazione dell'inverter sarà proporzionale all'errore. Fai il primo passo, ti fermi aspetti la stabilizzazione, verifichi e dai un eventuale secondo step.

Certo che questo posizionamento sarebbe l'ideale per una motorizzazione con step-motor, perchè daresti un numero di passi essattamente coincidenti con l'errore.

Sarebbe anche necessario che tu dessi informazioni in ordine ai tempi ed alle velocità. Mi auguro che l'azionamento sia a controllo vettoriale.

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

Si l'azionamento è vettoriale ad anello aperto, non ho problemi di spostamento neanche a 0,5 Hz,

ripeto ho montato sopra due riduttori 1:100 quindi rapporto totale 1:1000.

Per quanto riguarda le velocità, le gestisco con quattro uscite digitali del PLC e entro in binario a quattro ingressi dell'inverter quindi posso gestire 16 velocità, ( le 16 velocità vengono gestite in modo proporzionale all'errore partendo da 50Hz fino ad arrivare anche ad 1Hz, e queste posso definirle io Es. Distanza < 10 --> imposto 10Hz e cosi via...)

tenendo conto che il motore è un 4 poli (1400giri) a 50Hz farò 1,4 giri al minuto quindi 0,175 giri a 12,5 Hz, posso benissimo scendere anche ad 1Hz.

Sono d' accordo con l' idea di gestire questo posizionamento con un motore passo passo, ma purtroppo la parte meccanica compreso motore e riduttori è già montata.

Posso anche impostare il posizionamento a step, non mi interessa in quanto tempo raggiungo la posizione, rimane solo come gestire questo passaggio per lo zero e con quali calcoli posso gestire il tutto.

Grazie

Link al commento
Condividi su altri siti

Ma non vedo la difficoltà del passaggio per lo zero.

Se hai una misura assoluta sai esatamente dove sei e dove vuoi andare. Te lo hanno illustrato nel #2

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