Vai al contenuto
PLC Forum


Encoder virtuali


daniele__32

Messaggi consigliati

Ciao a tutti. dispongo di una cpu 1214c siemens e vorrei poter sviluppare un encoder virtuale in quanto ho un nastro con un espulsore a soffio e devo abilitare la DO dell EV del soffio nel punto preciso del pezzo da scartare.

qualcuno sa come sviluppare? ( ho sempre avuto encoder fisici)

grazie

Link al commento
Condividi su altri siti


Devi comunque avere dei precisi riferimenti meccanici del nastro da cui far partire i conteggi.

Poi anche ammesso che tu possa misurare esattamente la velocità del nastro, e che questa sia costante, la precisione sarà comunque piuttosto relativa.

Dipende dalle tolleranze che puoi accettare.

Link al commento
Condividi su altri siti

Ma come penseresti di utilizzare questo encoder virtuale?
Come dice Livio, se l'encoder virtuale non è strettamente legato a dei riferimenti meccanici, cosa te ne fai?

Link al commento
Condividi su altri siti

Se, come già detto, non hai precisi riferimenti meccanici, tanto vale usare un timer e, sapendo la velocità del nastro, convertire lo spazio da percorrere in tempo: io l'ho fatto più di una volta, con buoni risultati. Si trattava, per esempio, di iniziare a spalmare colla su un oggetto trasportato da un nastro, mosso da un Sinamics V20 comandato con riferimento analogico. Il trigger di inizio del conteggio tempo/spazio era una fotocellula trasversale al nastro, posta un po' prima dell'incollatura; la velocità era nota, tramite il riferimento analogico. Non ho avuto necessità di misurare l'errore nel punto di inizio incollatura ma direi che non era superiore  ai 2 mm. Poi, ovviamente, è meglio mettere da qualche parte dei correttori, degli offset, magari anche disponibili all'operatore, per compensare naturali differenze tra calcolo teorico e risultato pratico.

Link al commento
Condividi su altri siti

5 minuti fa, Cesare Nicola scrisse:

Il trigger di inizio del conteggio tempo/spazio era una fotocellula trasversale al nastro,

 

come avevoscritto:

17 ore fa, Livio Orsini scrisse:

Devi comunque avere dei precisi riferimenti meccanici del nastro da cui far partire i conteggi.

 

Nel tuo caso hai almeno un riferimento: la fotocellula.

Link al commento
Condividi su altri siti

23 ore fa, Livio Orsini scrisse:

Nel tuo caso hai almeno un riferimento: la fotocellula.


E' vero, non avevo letto con attenzione la tua risposta, che dice sostanzialmente ciò che ho detto io. Scusa. 🙂


 

Link al commento
Condividi su altri siti

ho a disposixione una ftc di lettura ad inizio di un trasporto. a monte del trasporto, ce un Macchina a raggi x che, mediante interfaccia, mi dice se il pezzo e' da scartare o meno

in caso sia da scartare, avendo la posizione dell espulsore fissa ( quindi so la distanza dalla ftc d ingresso e l espulsore) ho bisogno di portare il dato "da scartare" fino davanti all esulsore

stavo pensando a uno shift register, in quanto vorrei caricare il bit a "1" (da scartare) all inizio dello shift,  mediante la ftc d ingresso trasporto a valle della macchina raggix

non avendo nessun encoder, e non essendo a " passo" la linea, volevo inidcazioni( se possibile) per realizzare questo sistema

grazie ancora

Link al commento
Condividi su altri siti

Devi conoscere la velocità a cui sta lavorando il trasporto in quel momento, la distanza la FC e l'espulsore. Calcoli il tempo di transito tra FC ed espulsore a qyuella velocità

Se tra il pezzo analizzato dagli rx e la Fc non ci possono essere altri pezzi, attendi il passaggio sotto la FC e fai partire il timer.

 

La precisione sarà un po' spannometrica ma se ti va bene questa è la soluzione.

Se la precisione non è sufficiente devi montare un encoder per misurare la distanza.

Link al commento
Condividi su altri siti

Dunque, parliamo di un'apparecchiatura a raggi X che è in grado di analizzare se il pezzo è buono oppure no.
Sicuramente questa apparecchiatura non costa due euro. E dobbiamo proprio risparmiare sul costo di un banale encoder?
Ma nemmeno un rudimentale sensore e ruota dentata?
Ma chi è che fa queste scelte?

 

Comunque, se conosci la velocità del tappeto puoi generare un clock corrispondente ad una lunghezza fissa da usare per il FIFO.

Oppure, potresti semplicemente aggiungere (se non c'è già) una fotocellula in corrispondenza dello scartatore.
In questo modo vai ad inserire nel FIFO un pezzo (buono o scarto che sia) quando passa sotto ai raggi X, e lo estrai dal FIFO quando passa davanti allo scartatore (e decidi se scartarlo o meno).
Con questo sistema non ti interessa sapere dove sono esattamente i pezzi. Ti basta semplicemente avere un FIFO sufficientemente grande (ma non è certamente un problema) da contenere tutti i pezzi che ci possono stare tra raggi X e scartatore.
Ovviamente, nessuno dovrà togliere o aggiungere manualmente pezzi tra raggi X e scartatore, pena lo sfasamento di tutto il FIFO.

Link al commento
Condividi su altri siti

4 ore fa, batta scrisse:

se conosci la velocità del tappeto puoi generare un clock corrispondente ad una lunghezza fissa da usare per il FIFO.

 

 

Generare un clok in funzione della velocità non è più preciso che generare un ritardo in funzione della velocità, ma generare un ritardo, a parer mio, è più semplice: allo scadere del timer comandi l'elettrovalvola dello scartatore. Inoltre nel determinare il ritardo in funzione della velocità tieni automaticamente conto del ritardo dell'elettorvalvola.

Link al commento
Condividi su altri siti

Quote

Generare un clok in funzione della velocità non è più preciso che generare un ritardo in funzione della velocità, ma generare un ritardo, a parer mio, è più semplice

Sì, sicuramente è più semplice, ma implica che non ci possono essere pezzi tra il punto dove si effettua il controllo e il punto dove si scarta.
Con la generazione del clock e un registro FIFO (che poi non sarebbe un registro FIFO ma uno Shift Register, che avanza ad ogni clock), non c'è questo vincolo.


Comunque, la soluzione più semplice penso sia quella con la fotocellula nella posizione di scarto: non richiede nessun calcolo, non è vincolata a velocità o altre grandezze fisiche, tra analisi e scarto ci potrebbero essere anche molti pezzi, e basta una banalissima ed economica fotocellula (o altro sensore adatto allo scopo). L'unico vincolo, con questo sistema, è che tra gli oggetti ci deve essere uno spazio.
Nel FIFO si inserisce ogni oggetto analizzato (sia buono che scarto), e dal FIFO si estrae ogni oggetto che passa dallo scartatore (sia che venga scartato o no).
Se poi ci sono gli operatori che con le loro manine passano davanti alla fotocellula ed incasinano il FIFO, installiamo un "tagliatore automatico di manine" 😉

Link al commento
Condividi su altri siti

2 ore fa, batta scrisse:

Sì, sicuramente è più semplice, ma implica che non ci possono essere pezzi tra il punto dove si effettua il controllo e il punto dove si scarta.

 

Dipende da quanti pezzi ci stanno.

Se sono pochi, 4 o 5, si fa partire un timer ad ogni scarto e, a tempo scaduto, il timer comanda l'elettrovalvola.

Anche avendo la fotocellula sul punto di scartobisogna sempre temporizzare il riconoscimento di scarto per dar modo al pezzo di giungere sulla postazine di scarto.

A  meno che tra posizione di scarto e RX non ci sia possibilità di avere altri pezzi.

 

Poi la soluzione ottimale la si può definire solo avendo conoscenza diretta della macchina.

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

Quote

Se sono pochi, 4 o 5, si fa partire un timer ad ogni scarto e, a tempo scaduto, il timer comanda l'elettrovalvola.

Se mi devo complicare la vita gestendo la partenza di 4 o 5 timer, tanto vale creare un clock basato sullo spazio percorso dal tappeto (nota la velocità del tappeto, basta un banale calcolo da mettere in un OB a tempo).

Inoltre, con i timer non si tiene conto di quello che succede nei transitori a velocità variabile (start e stop o cambio velocità).
Questo problema invece non c'è (o è limitato agli errori dovuti ai tempi dell'attuatore) se si simula lo spazio percorso, o con il sensore sulla postazione di scarto.

 

Quote

Anche avendo la fotocellula sul punto di scartobisogna sempre temporizzare il riconoscimento di scarto per dar modo al pezzo di giungere sulla postazine di scarto.

Chiaro che la fotocellula sul punto di scarto sarà molto vicina al punto di scarto (quel tanto che basta per poter gestire i ritardi dell'attuatore), quindi senza pezzi in mezzo.
In ogni caso, usando solo il timer, per tener conto dei ritardi dell'attuatore il tempo calcolato in base alla velocità del tappeto andrebbe corretto.

 

Alla fine, quello che partecipa meno alla discussione mi pare sia il diretto interessato.
 

Link al commento
Condividi su altri siti

4 ore fa, batta scrisse:

Inoltre, con i timer non si tiene conto di quello che succede nei transitori a velocità variabile (start e stop o cambio velocità).

 

Questo problema ce lo hai egualmente anche con il clock sul passaggio della fc, a meno di averne 2 di fc: una all'uscita dello RX e l'altra in prossimità dello scartatore.

 

4 ore fa, batta scrisse:

Alla fine, quello che partecipa meno alla discussione mi pare sia il diretto interessato.

 

Infatti sembra il meno interessato alla soluzione del problema.

Link al commento
Condividi su altri siti

8 ore fa, batta scrisse:

Comunque, la soluzione più semplice penso sia quella con la fotocellula nella posizione di scarto: non richiede nessun calcolo, non è vincolata a velocità o altre grandezze fisiche, tra analisi e scarto ci potrebbero essere anche molti pezzi, e basta una banalissima ed economica fotocellula (o altro sensore adatto allo scopo). L'unico vincolo, con questo sistema, è che tra gli oggetti ci deve essere uno spazio.
Nel FIFO si inserisce ogni oggetto analizzato (sia buono che scarto), e dal FIFO si estrae ogni oggetto che passa dallo scartatore (sia che venga scartato o no).

Esatto. Anche questa mi è capitata di farla, esattamente come l'hai descritta. Se proprio non ci sta la fotocellula in zona espulsione, valgono tutti i discorsi già fatti prima per l'encoder, virtuale o reale, che sarà lui a dare il trigger per estrarre l'oggetto dal FIFO e azionare l'espulsione, se serve. Insomma, non è semplicissimo, ma si può fare; se ce l'ho fatta io... 🙂

 

 

Link al commento
Condividi su altri siti

Io ho avuto esperienza con una situazione simile a quella presentata da Daniele_32; in più avevo la possibilità che durante il passaggio del prodotto da scartare verso il punto di scarto avvenissero, senza alcuna possibilità di previsione, dei cambi di velocità o delle fermate in pausa. Il trasportatore era comandato da inverter.

 

La soluzione migliore è stato utilizzare il segnale di uscita a treno d'impulsi dell'inverter, la cui frequenza era proporzionale alla frequenza in uscita data al motore. Il segnale veniva acquisito dal plc. Poi è bastato contare il numero di impulsi necessari per arrivare sul punto di scarto ed al suo superamento azionare l'espulsione.

 

Nel mio caso il sistema era molto preciso e peraltro semplice ed economico.

Link al commento
Condividi su altri siti

8 ore fa, tiaef scrisse:

Nel mio caso il sistema era molto preciso e peraltro semplice ed economico.

 

Hai usato un encoder virtuale generato dall'azionamento.

Link al commento
Condividi su altri siti

  • 4 weeks later...

ragazzi l importante e' rimanere pacifici..penso di aver risolto implementando uno shift register.. il suggerimento di Livio sicuramente si iplementa con poco e puo dare buon risultato, ma per ragioni di didattica ho voluto sperimentare qualcosa di piu rispetto alla semplicita'.

grazie mille a tutti ( P.S. devo ancora testare il programma in quanto anche se banale, la macchina ancora non e' pronta)

grazie a tutti

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