Vai al contenuto
PLC Forum


Camma-Tavoletta sincronizzazione


Ghisla

Messaggi consigliati

E se l'operatore fa emergenza a metà camma o in un punto qualsiasi e non a fine rotazione e muove la tavoletta? 

Purtroppo questo accade spesso perché quando i pezzi si inceppano l'operatore sblocca la tavoletta manualmente

 

Sarebbe utile usare il getFollowingValue solo che mettendo modulo 45° non va bene 🤪

Modificato: da Ghisla
Link al commento
Condividi su altri siti


Buongiorno ragazzi

 

Non vorrei essere ripetitivo ma ho proprio bisogno di un aiuto se possibile.

 

Settimana prossima viene il cliente a vedere la macchina e vorrei sistemare sta dannata tavoletta ma purtroppo non riesco a venirne fuori da questo problema.

C'è una soluzione al mio problema o bisogna trovare un altro metodo per sincronizzarla?

Se vi è possibile darmi una mano ve ne sarei molto grato.

Grazie mille

Link al commento
Condividi su altri siti

58 minuti fa, Ghisla ha scritto:

C'è una soluzione al mio problema o bisogna trovare un altro metodo per sincronizzarla?

Non è così semplice.

Da una parte, sarebbe meglio disegnare la camma della tavola su 360°, con gradini di 45°. Questo però dici che non va bene, perché in alcune situazioni la tavola non deve eseguire il passo.

Dall'altra, per poter agevolmente sganciare e riagganciare il sincronismo della tavola (proprio per poter non eseguire il passo) risulta comodo lavorare con la tavola con modulo 45°.
Questo però ti crea problemi in caso di manovre inconsuete fatte dall'operatore.

 

Capisco che si voglia (e sia anche giusto) costruire macchine a prova di operatore, ma non si può, semplicemente, istruire l'operatore e fargli riposizionare la tavola nella giusta postazione? Premo l'emergenza, sposto la tavola manualmente, tolgo il pezzo, riporto a mano la tavola più o meno nella posizione originale.

 

In alternativa, si torna alla soluzione di partenza: tavola con modulo 360° e si disegna il profilo ad ogni ciclo. Come detto, per poterlo fare devi lavorare con due camme: quando una è in uso disegni l'altra, e poi fai lo switch al volo della camma.

 

Altre soluzioni, al momento, non me ne vengono in mente, se non, quella più rudimentale (non ho idea della precisione richiesta) di non lavorare con la tavola in camma elettronica, ma fare dei posizionamenti (con velocità proporzionale alla velocità del master) lanciati al raggiungimento delle posizioni del master.
Se il passo della tavola serve solo per riposizionare la tavola durante tempi morti del ciclo, è fattibile. Anzi, se è così, non ha molto senso complicare le cose con camme elettroniche. Se, anche durante il movimento della tavola devono essere eseguite operazioni che richiedono il perfetto sincronismo, allora questa strada non è percorribile.

Modificato: da batta
Link al commento
Condividi su altri siti

La soluzione di lanciare dei posizionamenti senza camma era la soluzione adottata all'inizio e sinceramente non era male.

L'unico problema era che muovendosi in passo passo la tavola cercando di seguire il master ma comunque non essendo in camma dava dei brutti colpi e arrivava in posizione molto prima del master.

i posizionamenti li facevo in assoluto, ogni volta che si mollava il pulsante di passo passo davo un HALT, nel premere il passo passo davo ancora un execute all'assoluto.

 

Hai ragione che bisogna educare l'operatore, ma il fatto è che queste macchine sono state fatte in passato da un'altra azienda che fa software, ora le hanno passate a noi e il cliente è "abituato" a lavorare con le macchine fatte da altra azienda, quindi vorrei farla il più simile possibile.

 

Per esempio sulla macchina passata la tavoletta si riposizionava sempre e comunque in qualsiasi posizione veniva lasciata manualmente

 

il funzionamento della tavola è che mentre il master muove in salita la testata, la tavoletta gira portando avanti i pezzi, mentre il master scende va a pressare i pezzi sulla tavoletta, quindi essa deve arrivare in posizione un attimo prima del master.

 

Modificato: da Ghisla
Link al commento
Condividi su altri siti

54 minuti fa, Ghisla ha scritto:

L'unico problema era che muovendosi in passo passo la tavola cercando di seguire il master ma comunque non essendo in camma dava dei brutti colpi e arrivava in posizione molto prima del master.

Questo è solo perché era male regolata.
Accelerazione e decelerazione sono note, quindi bastano pochi calcoli per definire la velocità di posizionamento che ti permetta di avere un movimento che, all'apparenza, sembra sincronizzato con il master.

Certo, avere un movimento sincronizzato, che insegue il master anche se muovi in jog, avanti o indietro, è una soluzione sicuramente migliore, ma la realizzazione, con le problematiche del tuo caso, è più complessa.
Come detto, forse l'unica soluzione è lavorare con tavola con modulo 360° e ridisegnare la camma della tavola ad ogni ciclo.
Oppure, potresti disegnare le 8 camme una sola volta, e gestire un contatore dei passi della tavola. Per ogni passo, fai lo switch sulla relativa camma.

Da provare anche, come si era detto, a lavorare con "ApplicationMode" = 2 (Cyclically appending), e risolvere il problema della risincronizzazione sempre sulla prima stazione gestendo il relativo offset.
Altro, al momento, non mi viene in mente.

Link al commento
Condividi su altri siti

Per switchare la camma devo usare vari blocchetti MC_camin o posso usarne uno solo? Perché vedo che in ingresso al MC_camin posso passare una sola camma e non posso appoggiare la camma a variabili e passare la variabile al Camin

Modificato: da Ghisla
Link al commento
Condividi su altri siti

Per fare lo switch delle camme devi usare due istanze di MC_CamIn proprio perché, come dici, non puoi cambiare la camma che colleghi a MC_CamIn. 

Il meccanismo è questo:

- devi usare due camme

- la camma sincronizzata non la puoi ridisegnare, quindi ridisegni quella non in uso

- alla funzione per disegnare la camma puoi passare variabili diverse, ma non puoi cambiare la camma che viene disegnata

- devi quindi richiamare due diverse istanze anche per disegnare le camme

- quando una camma è sincronizzata e lanci MC_CamIn per sincronizzare l'altra camma, vedrai che si attiva l'uscita Busy

- quando saranno soddisfatte le condizioni per il sincronismo, verrà attivato il nuovo sincronismo e perderai il sincronismo della precedente camma

 

Tutto sommato, è quasi più complicato descriverlo che realizzarlo.

Nel tuo caso, le cose si complicano un po' perché devi disegnare 8 camme, ma ti bastano due istanze MC_CamIn, due istanze della funzione che usi per disegnare la camma, e 8 strutture di variabili con i parametri con il profilo delle camme. Alle funzioni per il disegno delle camme passi di volta in volta le variabili della camma da disegnare.

Potresti, per esempio, mettere le variabili delle camme in un array 0..7, gestire un contatore da 0 a 7 che incrementi ad ogni passo della tavola, usare gli indici dispari per la camma 1 e gli indici pari per la camma 2.  

Link al commento
Condividi su altri siti

Ma se io le camme le creo subito all'avvio della CPU quindi ho subito le mie 8 camme create, in questo caso dovrei creare 8 istanze Camin giusto? Ogni ciclo sincronizzo con la camma successiva e quando arrivo all'ultima torno alla prima.

Scusami se sono ripetitivo ma questi tipi di lavori non li ho mai eseguiti quindi mi trovo un po' in difficoltà

Modificato: da Ghisla
Link al commento
Condividi su altri siti

5 ore fa, Ghisla ha scritto:

Ma se io le camme le creo subito all'avvio della CPU quindi ho subito le mie 8 camme create, in questo caso dovrei creare 8 istanze Camin giusto?

Sì, puoi fare anche così. Ci sono pro e contro. Tra i pro, c'è che puoi disegnare i profili delle camme una sola volta (salvo modifiche) prima di avviare la macchina, alleggerendo quindi il lavoro della cpu, che non dovrà ridisegnare continuamente i profili, ad ogni passo della tavola. Come contro, dovrai richiamare 8 istanze per il disegno dei profili ed 8 istanze (una alla volta) di MC_CamIn.  

Link al commento
Condividi su altri siti

  • 1 month later...

Probabilmente hai risolto, però ti suggerisco per il futuro di valutare la funzione motion "gearin" che crea l'asse elettrico fra il master e lo slave. La puoi usare se il master lavora a passi e non in continuo, volendo anche con cpu non T

Nel tuo caso puoi lanciare la funzione prima di dare lo start del master quando deve eseguire il movimento da 135 a 225 gradi, impostando 2 come rapporto fra i movimenti: in questo modo ogni due gradi percorsi dal master lo slave ne percorre uno. Dato che la funzione gearin, come quasi tutte le funzioni motion, lavora su fronte occorre dare un comando di stop allo slave quando il master ha finito il movimento per 

sganciare l'asse. Poi devi memorizzare la posizione attuale che servirà nel caso di movimenti manuali per riportare lo slave nella posizione corretta con un move_absolute (vado a memoria, i nomi delle funzioni potrebbero non essere corrette)

Link al commento
Condividi su altri siti

Ospite
Questa discussione è chiusa alle risposte.
×
×
  • Crea nuovo/a...