Vai al contenuto
PLC Forum


Impulso encoder


cascio75

Messaggi consigliati

Buongiorno a tutti,

ho un problema a su una messa in funzione di una macchina, dove ho un encoder e incrementale 1024 impulsi collecado su i primi ingressi della CPU1215, gli ingressi li ho configurati come 0.1 microsec.

Encoder è montato su un cilindro motorizzato, e praticamente devo far arrestare il motore in una posizione precisa, ma la lettura degli impulsi non sono corretti, o meglio qualche volta sembra che li salti.

a qualcuno di voi è mai capitato? Come avete risolto?

grazie infinite 

 

Link al commento
Condividi su altri siti


Hai usato HsC?

Il conteggio è corretto?

Al valore raggiunto esegue un interrupt che ti fa fermare il motore ma è così rapido da non andare oltre?

Link al commento
Condividi su altri siti

Ho usato tac

Il conteggio è corretto, ma a volte mi perde impulsi e quindi posizione 

Esempio:

Parto con un punto di azzeramento, avvio il motore e dopo qualche giro mi trovo valori differenti tra la mia lettura/ conteggio e il display dell' encoder 

Link al commento
Condividi su altri siti

Si ho usato un HSC e si ho settato un filtro ingresso a 0.1 microsec per ingresso AeB

Ho notato che quando resetto il mio ingresso ( id1000) al termine del giro è il momento in cui perdo l' impulso, anche ad andature non elevate.

Ho l'impressione che, il tempo di reazione della CPU non sia così veloce quanto serve. Non è che serve una espansione apposita?

grazie di nuovo 

Link al commento
Condividi su altri siti

Usi l'ingresso di reset?

Cioè se un giro sono 1000 impulsi dopo 5 giri non ha contati 5000?

Come mai dici display dell'encoder? Hai collegato in parallelo un visualizzatore?

Link al commento
Condividi su altri siti

Per il reset, faccio un semplice confronto id1000 ( ingresso encoder) con 1024 impulsi giro.

Quando il conteggio arriva a 1024 = reset e così via.

Il display e a bordo del encoder ( IFM )

Link al commento
Condividi su altri siti

ma il confronto lo fai in interrupt con le funzioni tecnologiche o lo fai banalmente con un confronto nella scansione del programma? Se lo fai come in quest ultimo caso è normale che non sia preciso, la scansione del programma non può coincidere col conteggio in interrupt, gestisci l'azzeramento del contatore in interrupt con le funzioni di tecnologia

Link al commento
Condividi su altri siti

1 ora fa, leleviola scrisse:

gestisci l'azzeramento del contatore in interrupt con le funzioni di tecnologia

 

Sarebbe corretto usare la marca di zero dell'encoder interfacciata con un ingresso ad interrupt; questo garantisce un azzeramento sincrono.

Link al commento
Condividi su altri siti

16 minuti fa, Livio Orsini scrisse:

 

Sarebbe corretto usare la marca di zero dell'encoder interfacciata con un ingresso ad interrupt; questo garantisce un azzeramento sincrono.

meglio ancora ovviamente se disponibile

Link al commento
Condividi su altri siti

La marca di zero l'hanno, oramai, tutti gli encoders; il vero problema è che non sempre si ha a dispozione l'ingresso veloce ad interrupts.

Link al commento
Condividi su altri siti

17 ore fa, cascio75 scrisse:

Ho l'impressione che, il tempo di reazione della CPU non sia così veloce quanto serve.

Se hai usato il contatore veloce, il tempo di ciclo della cpu non interferisce col conteggio.

Il problema, casomai, è nel modo in cui gestisci l'azzeramento. qui sì che il tempo di ciclo diventa rilevante: quando la cpu si accorge che il conteggio è arrivato a 1024 e comanda l'azzeramento, il conteggio reale è sicuramente superiore a 1024, e gli impulsi in più te li perdi.

Potresti configurare il contatore veloce stesso per azzerarsi al raggiungimento del valore impostato. 

Link al commento
Condividi su altri siti

  • 3 weeks later...

Penso ulteriori risposte siano inutili. La discussione era ferma da oltre due settimane, e il grande assente è proprio il diretto interessato.
Probabilmente ha risolto il problema, e non ritiene necessario informarci.

Link al commento
Condividi su altri siti

  • 1 year later...

Ciao a tutti,

ho trovato questa conversazione che si adatta bene alla mia applicazione.

Ho una CPU 1215C a cui ho collegato un encoder incrementale che può arrivare a 50 Hz, ho utilizzato gli ingressi I0.0 e I0.1. Qui sorgono le prime domande, a quanto dovrei mettere il filtro sull'ingresso? Devo mettere altre spunte? (ci sono le attivazioni dei fronti che non reputo necessarie perchè uso l'HSC e "Attiva presa impulso" che non mi è chiaro a cosa serva)

Da quanto ho capito L'HSC lavora al di fuori della scansione, quindi non dovrebbero servirmi interrupt per farlo funzionare correttamente (con l'interrupt supero anche il secondo di scansione).

In questa applicazione devo misurare la lunghezza di un cavo per procedere al taglio, devo essere preciso e prima della pandemia ho fatto alcune prove con risultati ottimi. Al momento, invece, gli impulsi dell'encoder non mi tornano e di conseguenza la misurazione non è ripetibile. Non capisco cosa mi mandi in crisi tutto il sistema.

Per giuntare i fili dell'encoder ho usato dei classici morsetti a vite, possono essere loro la causa o altri disturbi? Ho tralasciato qualcosa nella configurazione?

Il contatore in configurazione è impostato come conteggio, contatore A/B e il blocco CTRL_HSC è in un normalissimo FB (quindi soggetto a tempo di scansione).

Il mio problema è quindi capire perchè gli impulsi dell'encoder sono diventati, da un giorno all'altro, non ripetibili

 

Grazie

Link al commento
Condividi su altri siti

52 minuti fa, Kire93 ha scritto:

ho trovato questa conversazione che si adatta bene alla mia applicazione.

 

Avresti dovuto leggere il regolamento, prima di accettarlo; in questo modo sapresti che non ci si deve accodare ad altre discussioni, ma aprire una nuova discussione, sempre.

Questa poi è ferma da oltre un anno!

 

Link al commento
Condividi su altri siti

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