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




Gestione Motion Assi Brushless


Messaggi consigliati

Inserito:

salve, vi chiedo aiuto per cercare di risolvere un problema di controllo di assi lineari per una macchina che sto costruendo. Premetto che ho commesso due errori: il primo è quello di aver cambiato PLC da omron a beckhoff e il secondo è che ricordo più poco della parte motion.

Attualmente ho diversi problemi un'usare la MC_JOG(FB) compatibile PLCOpen, qualcuno è in grado di dirmi dove posso trovare in rete almeno un'esempio nell'uso di MC_JOG ?


Inserita:

si, l'ho visto...però non mi ha aiutato

mi sembra strano che nessuno lavori col motion e che sappia darmi 2 dritte.

Inserita:

ciao

io uso il motion , per esempio mitsubishi , che,come altre marche di plc, usa i blocchetti PLCOPEN per la gestione del motion controller.

Ho provato ad usarlo ma lo ritengo utile per chi non sà usare il motion controller.

I blocchetti PLCOPEN usano una buona quantità di memoria.

Per fare le stesse cose se non usi PLCOPEN useresti 1/4 della memoria.

Comunque se vai sui produttori di plc che usano PLCOPEN magari trovi altri manuali,perché in teoria lo stesso comando deve valere per tutti.

http://www.google.it/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&ved=0CFcQFjAC&url=http%3A%2F%2Fcache.automation.siemens.com%2Fdnl_iis%2FTc%2FTcyNzgyNwAA_27002442_HB%2FPLCopen_Functions_en_en-US.pdf&ei=uKk6Us3_G4rKsgbk7YGgBQ&usg=AFQjCNHySQhjJp9-2hdxyw6sTKWqsimtnQ&bvm=bv.52288139,d.Yms

Inserita:

ciao

ma qual'è il problema che hai con MC_JOG?

puoi dare una spiegazione

saluti da Valvolina

Inserita:

allora, partiamo dall'inizio...

ho creato il mio programma col PLC beckhoff e come altri PLC distingue la parte di logica (PLC Control) da quella hardware (System Manager), in poche parole nel system manager dichiaro quale HW vado a programmare (IN,OUT,ASSI,ecc...) e nel PLC Control gestisco proprio la logica con cui voglio che funzioni HW (il mio software).

fatti i dovuti passaggi HW per dichiarare i drive e motori che utilizzo, i dolori iniziano nel SW. Nella logica, come ho fatto altre 1000 volte, per prima cosa controllo la stato dei Drive che voglio controllare, in questo modo:

nome_asse.readStatus in questo modo chiedo direttamente al drive se è in errore ecc...

se non ci sono errori allora abilito i drive con il blocco MC_POWER. Se i FB non rispondono con un'errore allora gli chiedo di muovere un motore in manuale usando il MC_JOG. A questo punto si genera un'errore nel MC_JOG (veramente dopo alcuni secondi dopo aver eseguito il MC_POWER) dicendo che l'asse non è pronto al movimento, e qui entro in crisi perchè nella documentazione on_line beckhoff non c'è il capitolo "cosa fare in caso di:"

nel frattempo sono andato a scaricare tutta la documentazione che ho trovato utile dal sito PLCOpen però anche lì sono un pò avari di esempi, spiegano a casa serve MC_JOG ma non come usarlo.

Spero di essere stato abbastanza chiaro nella descrizione e vi ringrazio tutti

Inserita:

Se i FB non rispondono con un'errore allora gli chiedo di muovere un motore in manuale usando il MC_JOG.

ciao

se c'è un errore che inibisce il movimento (es mettendo i servo a off) dando il comando MC_JOG generi un'errore.

MC_JOG per funzionare non ci devono essere errori nel servo.Sempre che per tutti PLCOPEN sia lo stesso , io lo provato con 2 produttori e non erano beckhoff.

Inserita:

quelo che non riesco a capire è che se eseguo solo MC_POWER non si genera nessun errore, se aggiungo MC_JOG si genera l'errore.

comunque oggi conto di fare altre prove e pertarvi nuovi indizzi.

grazie a tutti

Inserita:

ciao

un'altra causa potrebbe essere , se il servo e on e non ci sono errori prima del comando MC_JOG , che i parametri che passi al comando non siano compatibili con i parametri del servo. Per esempio il servo nei suo parametri ha come max.velocità di jog 100 (numero a caso) e tu con il blocchetto gli dici velocità 110.

Uno dei difetti (tanti) di PLCOPEN e che: i blocchetti sono uguali ,ma quello che ci stà dentro no dipende dalla marca di plc.

Inserita:

CAVOLO...l'ultimo consiglio di lelos è davvero molto interessante, faccio 2 prove e vi dico come sono andate

grazie 1000

Giuseppe Signorella
Inserita:

CAVOLO...l'ultimo consiglio di lelos è davvero molto interessante, faccio 2 prove e vi dico come sono andate

E' la prima cosa che devi sempre accertare, che i parametri che passi ad una variabile/dispositivo, rientrino nel range previsto. In genere lo si da per scontato che uno lo faccia. ;)

Inserita:

avete proprio ragione infatti iparametri sono giusti, però come spesso accade sono le cose più banali che non si controllano che poi portano ad errori incomprensibili.

A parte questo...volevo porvi una domanda, ordine sequenziale nell'utilizzo dei blocchi PLCOpen:

  • Accendo il drive
  • controllo gli errori
  • abilito il drive al movimento
  • imposto la velocità, accellerazione e decellerazione
  • imposto la quota traguardo da raggiungere
  • faccio partire il movimento del motore

a vostro giudizio è giusto l'rdine di esecuzione che ho descritto oppure sto sbagliando?

Inserita:

ciao

penso che tu stai parlando di una applicazione a 1 asse senza interpolazioni o inseguimenti .

con accendo il drive intendi dare tensione al servoazionamento o ridagli i consensi sull'emergenza

la logica và anche bene .

Il controllo degli errori solitamente lo si fà in continuo ,nel senso che se durante il movimento capita un errore all'asse,dai segnali di extracorsa,alla sovracopppia , i blocchetti plcopen dovrebbere intervenire in automatico a dare lo stop e darti la segnalazione e il codice dell'errore.Dovrebbero perché come già detto il codice ogni marca ci scrive il suo e decompilando 2 marche diverse non sono molto uguali.

L'unica cosa da controllare è che la velocità abbinata alla accelerazione e alla decelerazione non mandino il servo in errore di sovracoppia.

Inserita:

L'applicazione è circa quella che ha descritto lelos, ovvero 3 assi lineari che devono solo muoversi in manuale col comando JOG. In questi giorni ho fatto un milione di prove ma sono allo stesso punto il MC_power rimane disabilitato e quindi inibisce qualunque altro movimento o comando.

Inserita:

ciao

ti posso consigliare di de-compilare il blocchetto (se il tuo sistema te lo permette) o di vedere dentro al blocchetto mentre è in esecuzione (se il tuo sistema te lo permette) in modo che vedi il punto che blocca il movimento.

Questo sistema mi ha permesso molte volte di capire perché qualcosa non funzionava.

Inserita:

scusate i giorni di assenza ma ho avuto parecchi problemi da risolvere (fortunatamente risolti).

Ci sono grosse novità...sono riuscito a muovere l'asse nelle due direzioni (sx e dx) ci sono diventato matto ma alla fine il vecchio sistema di "cancella e rifai" ha funzionato. Mi è bastato creare un nuovo progetto e riassegnare L'HW e SW nel progetto e tutto funziona. A questo punto credo di aver capito che l'errore era di tipo formale ovvero avevo creato una ACTION (le care e vecchie PROCEDURE del linguaggi C/C++ per i più vecchi) che faceva solo l'abilitazione(MC_POWER) dei tre assi lineari che voglio muovere. In un'altra action richiamavo il FB MC_JOG e credo che sia sbagliato usare una action per abilitare e una per il jog.

La procedura giusta è usare una action per abilitare e muovere l'asse X, un'altra action per abilitare e muovere l'asse Y, ecc... non sono sicuro che questa spiegazione sia corretta ma è l'unica che ho saputo darmi con un minimo di logica.

grazie ancora a tutti per il valido aiuto.

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