mpage Inserito: 23 maggio 2017 Segnala Share Inserito: 23 maggio 2017 Buongiorno a tutti, dispongo di due encoder incrementali collegati a due motori asincroni a loro volta comandati da due inverter. Ho problemi con la comparazione della posizione, non riesco a farlo fermare nella posizione in cui voglio, ho sempre un errore di +o- 2 mm. Cosa consigliate di fare? Grazie per la collaborazione Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 23 maggio 2017 Segnala Share Inserita: 23 maggio 2017 Con i dati che metti a disposizione la risposta potrebbe essere "affidati ad un buon esorcista" . Sono meccanicamente uguali? hanno gli stessi parametri? sono in anello chiuso o aperto? Link al commento Condividi su altri siti More sharing options...
mpage Inserita: 23 maggio 2017 Autore Segnala Share Inserita: 23 maggio 2017 Meccanicamente uguali (encoder posizionati non nell'albero motore, ma nella puleggia), sono due assi lineari (X,Y) che utilizzo per lo spostamento di alcuni pezzi in vari punti della macchina. Stessi identici parametri, unica cosa che cambia la velocità degli inverter, uno va più veloce dell'altro, ma il posizionamento lo faccio a velocità ridotta. Encoder 500 PPR Anello aperto Grazie Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 23 maggio 2017 Segnala Share Inserita: 23 maggio 2017 stesso errore per entrambi gli assi cartesiani? uno è verticale o sono entrambi orizzontali? confronti la quota con il PLC e in prossimità della quota fermi il motore? si ferma prima o dopo della posizione richiesta e sopratutto stesso comportamento specchiato provenendo da direzioni opposte? Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 23 maggio 2017 Segnala Share Inserita: 23 maggio 2017 Qualsiasi posizionatore completa la missione di posizionamento quando l'errore di posizione è compreso nella soglia massima prevista. Non è possibile posizionare ad errore zero. Ammesso che gli encoders leggano l'effettiva posizione senza errori, c'è solo un modo per ridurre l'errore: aumentare la risoluzione degli encoders,ridurre i giochi e ridurre la soglia di errore massimo di posizionamento. Tu non dai alcun dato sulla scala impulsi / mm. Se ad esempio 1mm = 1impulso, il tuo errore è già il minimo possibile, anzi sarebbe un ottimo risultato. Se invece il fattore di scala fosse 100 impulsi = 1 mm, dovresti poter ridurre l'errore di almeno un ordine di grandezza, ovvero dovebbe essere <0.2 mm Link al commento Condividi su altri siti More sharing options...
mpage Inserita: 26 giugno 2017 Autore Segnala Share Inserita: 26 giugno 2017 Buongiorno, ho aumentato la risoluzione e sembra più preciso. Ho un'altra domanda a riguardo: - Per gestire la femate del motore asincorno in modo che sia più immediata possibile, utilizzate qualche OB particolare tipo OB30 (cycle interrupt = 1ms) e fate ciclare internamente la routine che gestisce la frenatura, oppure conoscete qualche altra tecnica? Grazie per l'attenzione Saluti Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 26 giugno 2017 Segnala Share Inserita: 26 giugno 2017 Dipende dalla funzione di posizionamento. Come hai realizzato questa fuzione? Usi una funzion di libreria Seimens?Se non descrivi in modo completo il tuo sistema non è possiible darti indiczioni valide Link al commento Condividi su altri siti More sharing options...
mpage Inserita: 26 giugno 2017 Autore Segnala Share Inserita: 26 giugno 2017 Il posizionamento è di tipo lineare, ho due ingressi A/B che mi arrivano dall'encoder. HSC è impostato in modalità CONTEGGIO con CONTATORE A/B e CONTEGGIO IN AVANTI. Da programma vado a fare dei confronti con il valore che leggo dall'encoder, mi calcolo il rallentamento che poi comunico all'inverter, lo stesso iter lo faccio per lo start e stop al motore, mi calcolo una finestra di tolleranza per la fermata. Il tutto pensavo di gestirlo con OB30 con ciclo di interrupt pari ad 1 ms, essendo il tempo ciclo della CPU pari a 3ms. Funzioni di libreria siemens utilizzo solo CTRL_HSC. Grazie Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 27 giugno 2017 Segnala Share Inserita: 27 giugno 2017 Campionare ad 1ms significa che puoi riconoscere una variazione che ha un periodo maggiore di 2ms. Quindi è necessario che la tua finestra di tolleranza corrisponda ad un tempo maggiore di 2 ms. Cerco di chiarire con un esempio. Se hai una finestra di +/- 5 impulsi è indispensabile che la frequenza degli impulsi sia <5000Hz, perchè con 5000Hz in 2 ms si contano esattamente 10 impulsi, che è la larghezza della tua finestra. Un posizionamento realizzato in modo corretto, se è necessario un minimo di precisione, prevede che il posizionatore, in questo caso il PLC, generi un riferimento di velocità che segua un profilo ben preciso che, nei casi più comuni, è quello di un trapezio isoscele. Da quello che scrivi si deduce che tu ti limiti a fornire comandi di on-off per marcia e rallentamento. In questo caso sarebbe più corretto usare il registro di comparazione dell HSC ed il relativo interrupt, con comando diretto della periferia interessata. Non conosco il 1200, però qusto modo di lavoro era presente nel vecchio S7-2xx, per cui presumo esista ancora nel nuovo modello. Link al commento Condividi su altri siti More sharing options...
mpage Inserita: 29 giugno 2017 Autore Segnala Share Inserita: 29 giugno 2017 Ho impostato il registro di comparazione dell'HSC con il suo relativo interrupt, in sostanza si crea l'OB40 (in simulazione sembra che funzioni poi domani lo provo in impianto), come priorità di default è impostato a 18, consigli di diminuirla o di lasciarla così? Grazie per l'attenzione Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 29 giugno 2017 Segnala Share Inserita: 29 giugno 2017 Dipende dal carico di lavoro e, soprattutto, dal carico di interrupts della CPU. A sensazione potrebbe anche andar bene il livllo 18. Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora