Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Come Regolarela Corsa Di Un'asse


Messaggi consigliati

Inserito:

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.


Inserita:

Stasera non ho con me la sfera, per stavolta puoi dire magari che plc e che motore stai usando, tanto per iniziare?

Inserita:

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.

Inserita: (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: da carlo_techn
Inserita: (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: da roberto8303

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