Vai al contenuto
PLC Forum


Lettura Encoder


LArmstrong1985

Messaggi consigliati

LArmstrong1985

Buongiorno,
sto progettando una macchina CNC.
Per una maggiore precisione ho preferito mettere un encoder lineare magnetico con le seguenti caratteristiche:
- Pole pitch: 1mm
- Risoluzione: 1um
- Ripetibilità: +/- 2um

Basandomi sulla risoluzione, ho considerato ogni impulso di conteggio pari ad 1um ma così facendo ottengo dei valori
errati anche se ripetitivi nel senso che se torno nella stessa posizione il valore letto è praticamente sempre lo stesso.
L'errore in alcuni casi è anche rilevante (fino a 300um) anche se il conteggio è corretto in quanto è lo stesso tra il mio software
e l'analizzatore logico.
Sto sbagliando qualcosa? E' giusto considerare ogni impulso di conteggio pari a 1um o devo effettuare qualche calcolo particolare
a partire dai dati che ho?

Grazie mille a tutti.

Link al commento
Condividi su altri siti


5 ore fa, LArmstrong1985 ha scritto:

Sto sbagliando qualcosa?

 

Questo è l'unico dato certo.

per capire cosa stai sbagliando bisognerebbe conoscere con cosa, e come fai la lettura dell'encoder,

Sarebbe anch d'aiuto avere il foglio tecnico dell'encoder stesso.

Link al commento
Condividi su altri siti

LArmstrong1985

Buongiorno
l'encoder è un HiWin PM-B-01-xx-T-xx.
Di seguito il link all'intera documentazione, anche di altri modelli.
https://www.hiwin.it/images/download/documenti/sistemi-di-posizionamento-manuale-tecnico.pdf
Quello da me utilizzato è a pagina 14. Nel datasheet non sono indicati gli impulsi per micron
per cui ho pensato che fosse la risoluzione ovvero 1 impulso = 1um.

La lettura, come dicevo, l'ho effettuato sia via fw che tramite un analizzatore logico e I risultati sono concordi.

L'errore quindi è un errore logico, come per l'appunto se 1 impulso non sia 1 um e tra l'altro questo errore

non mi sembra lineare. Essendo la prima volta che ho a che fare con questi encoder non so se sia normale.

Grazie mille!

Link al commento
Condividi su altri siti

Gli encoder generano 2 treni di impulsi sfasati di 90° tra loro, in modo da disciminare il senso del movimento. Si impone il canale A come riferimento ed il canale B serve per discriminare il senso; per convenzione se B è in ritardo rispetto ad A si considera il moto in avan ti o in senso orario, in caso di rotazione.

Come dice il foglio tecnico, hai canali con segnali differnaziali che vanno interfacciati nel modo corretto.

Inoltre per leggere e contare gli impulsi è necessario usare un circuito discriminatore di direzione; questo dispositivo ha anche funzione di filtro per gli eventuali "pendolamenti" attorno ad un fronte. Questo pendolamenti sono causa di errati conteggi.

Da quanto conosco io dubito fortemente che unanalizzatore di stati logici abbia il front end adatto a questo scopo.

Proprio per questo motivo ti ho cheisto come conteggi questi impulsi.

Link al commento
Condividi su altri siti

  • 2 weeks later...
LArmstrong1985

ho fatto delle verifiche approfondite confrontando i valori letti con quelli dell'analizzatore logico e mi sembra che in realtà stia leggendo bene dall'encoder.
Purtroppo sto lavorando su un sistema già montato su cui sono presenti un riduttore a vite e un carrello su cinghia in maniera da trasformare il moto da rotativo in lineare.
Non avendo esperienza e non avendo potuto fare prove con il motore a vuoto non so se sono errori attribuibili solo a questi componenti esterni e se ci sono delle tecniche per ovviarvi.
I problemi che riscontro sono i seguenti:
- ogni volta che faccio una inversione nel senso di marcia del motore ho una perdita consistente (nell'ordine dei 300um)
  ed è questo l'errore principale. Nel caso successivamente mi muovo nella stessa direzione leggo un valore pressochè   corretto. Questo potrebbe essere compatibile con problemi meccanici dovuti al fatto che quando inverte il senso di marcia il motore ci mette un po' ad "ingranare" sulla vite
- non riesco a compiere piccoli spostamenti con precisione (inferiori ai 10 step - io lo imputo al problema di prima)
- l'ultimo problema riguarda l'encoder il cui segnale vedo è sfasato soprattutto alla fine di diversi secondi rispetto a quando io ho finito di inviare gli impulsi al driver. Questo potrebbe essere normale (non so) però essendoci così tanto ritardo non mi permette di fermarmi esattamente al mio zero e in secondo luogo anche se volessi adottare un sistema
retroazionato per migliorare la precisione non mi permette di essere preciso dato che il valore che leggerei dall'encoder è molto in ritardo rispetto agli step che invio.

C'è qualche soluzione che può essere utili per risolvere questi problemi?

Grazie mille!

Link al commento
Condividi su altri siti

Vediamo di chiarire meglio la situazione.

Se ho capito bene l'encoder è del tipo lineare e è montato sull'asse di traslazione, quindi la sua posizione è quella reale dove si trova l'asse, quindi non ci possono essere errori di misura dovuti alla trasmissione.

Potrebbero esserci difficoltà di posizionamento ma questo è tutto un altro problema

 

Non hai ancora spiegato come discrimini gli impulsi e come effettui la misura. Ricito me stesso.

Il 5/4/2020 alle 15:59 , Livio Orsini ha scritto:

per capire cosa stai sbagliando bisognerebbe conoscere con cosa, e come fai la lettura dell'encoder,

 

Se non si conosce lo schema dell'interfaccia encoder e se non si conosce il fw di lettura e conteggio si perde solo tempo.

13 ore fa, LArmstrong1985 ha scritto:

ho fatto delle verifiche approfondite confrontando i valori letti con quelli dell'analizzatore logico e mi sembra che in realtà stia leggendo bene dall'encoder.

 

Torno a ripetere: questo non significa alcunchè, l'analaizzatore logico non è lo strumento ideale per queste verifiche. Solo se tu avessi un contatore/visulaizzatore per quel tipo di encoder, di provata efficienza potresti fare un paragone reale tra le due letture.

Fidati di quello che ti scrivo, sono opinioni derivate da circa mezzo secolo di esperienza con questi problemi. Ho cominciato a cimentarmici con le decadi di conteggio 7490, contatori che risalgono alla fine degli anni '60!

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