carlo_techn Inserito: 7 ottobre 2013 Segnala Inserito: 7 ottobre 2013 scusate, ma ho bisogno di una spinta nella giusta direzione. voglio controllare lo spostamento del carrello di un'asse su cui è montato un motore elettrico e voglio che si sposti di 1 mm ogni volta che premo un pulsante. la risoluzione dell'encoder è di 2^20 = 1048576 e ogni rigo completo dell'asse del motore il carro si sposta di 2,5 mm quindi se 2,5/1048576 mi dice quanti mm percorro ad ogni passo dell'encoder. Il problema è questo non trovo l'equazione per fare uno spostamento del carro di 1 mm, ovvero quale valore numerico devo attribuire alla variabile target o Position del blocco MC_JOG? Ammetto di essere un pò in confusione ma spero che qualcuno riesca ad indirizzarmi sulla via giusta.
step-80 Inserita: 7 ottobre 2013 Segnala Inserita: 7 ottobre 2013 Stasera non ho con me la sfera, per stavolta puoi dire magari che plc e che motore stai usando, tanto per iniziare?
lelos Inserita: 8 ottobre 2013 Segnala Inserita: 8 ottobre 2013 ciao per motore elettrico intendi un asincrono trifase o un brushless? Nel caso fosse un brushless con servoazionamento se metti il giusto rapporto nel fattore di riduzione elettronico es 1048576/250 quando dai una quota la esprimi direttamente in centesimi;quindi scrivendo100 fai 1mm. Dove venga impostato il fattore di riduzione dipende dalla marca.
carlo_techn Inserita: 8 ottobre 2013 Autore Segnala Inserita: 8 ottobre 2013 (modificato) scusate, ora mi spiego meglio... voglio controllare la corso di un'asse lineare con un PLC beckhoff e relativo motore beckhoff di tipo brushlass. i parametri di taratura del servo li conosco ed ho già impostato la velocità di riferimento e i relativi fattori di scala nel servo. Il problema che devo risolvere è perchè, quando uso MC_JOG (FB), e premo il pulsante della direzione l'asse non si sposta di 1 mm come ho impostato ma di 5. Vi scrivo anche come ho impostato MC_jog utilizzo il codice C che spero sia più chiaro. moveclockwase(FB) := cmdUp; (BOOL) moveunclockwase(FB) := cmdDown; (BOOL) Position(FB) := lxlAxe; (LREAL) um Velocity := 6000; (LREAL) mm/s acc := 1500 (LREAL) mm/s^2 dec := 1500 (LREAL) mm/s^2 Axis := "nome che ho associato all'asse secondo PLCOPEN" Se imposto nella variabile lxlAxe := 1000000 e premo il pulsante cmdUp l'asse non si sposta di 1 mm come vorrei ma ben di 5,0543. Sono convinto che debba assegnare alla variabile lxlAxe il risultato dell'equazione che tenga presente quanti passi compie l'encoder per percorrere X mm ma sono in confusione e non riesco a determinare la maledetta equazione. Modificato: 8 ottobre 2013 da carlo_techn
roberto8303 Inserita: 9 ottobre 2013 Segnala Inserita: 9 ottobre 2013 (modificato) Prova ad impostare nella variabile 197852 per avere 1mm ed escludi gia problemi di altra natura. Altrimenty hai sbagliato i parametri del fattore di scala.Devi conoscere gli impulsi al giro del resolver/encode motore e ripartire da li. Modificato: 9 ottobre 2013 da roberto8303
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