carlo_techn Inserito: 18 settembre 2013 Segnala Inserito: 18 settembre 2013 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 ?
lelos Inserita: 18 settembre 2013 Segnala Inserita: 18 settembre 2013 hai già visto http://www.plcopen.org/ e il pdf http://www.plcopen.org/pages/tc2_motion_control/downloads/tf_mc_part3_version0_4.pdf ? ciao
carlo_techn Inserita: 19 settembre 2013 Autore Segnala Inserita: 19 settembre 2013 si, l'ho visto...però non mi ha aiutato mi sembra strano che nessuno lavori col motion e che sappia darmi 2 dritte.
lelos Inserita: 19 settembre 2013 Segnala Inserita: 19 settembre 2013 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
valvolina Inserita: 19 settembre 2013 Segnala Inserita: 19 settembre 2013 ciao ma qual'è il problema che hai con MC_JOG? puoi dare una spiegazione saluti da Valvolina
carlo_techn Inserita: 19 settembre 2013 Autore Segnala Inserita: 19 settembre 2013 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
lelos Inserita: 19 settembre 2013 Segnala Inserita: 19 settembre 2013 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.
carlo_techn Inserita: 20 settembre 2013 Autore Segnala Inserita: 20 settembre 2013 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
lelos Inserita: 20 settembre 2013 Segnala Inserita: 20 settembre 2013 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.
carlo_techn Inserita: 20 settembre 2013 Autore Segnala Inserita: 20 settembre 2013 CAVOLO...l'ultimo consiglio di lelos è davvero molto interessante, faccio 2 prove e vi dico come sono andate grazie 1000
Giuseppe Signorella Inserita: 20 settembre 2013 Segnala Inserita: 20 settembre 2013 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.
carlo_techn Inserita: 21 settembre 2013 Autore Segnala Inserita: 21 settembre 2013 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?
lelos Inserita: 21 settembre 2013 Segnala Inserita: 21 settembre 2013 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.
carlo_techn Inserita: 22 settembre 2013 Autore Segnala Inserita: 22 settembre 2013 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.
lelos Inserita: 22 settembre 2013 Segnala Inserita: 22 settembre 2013 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.
carlo_techn Inserita: 26 settembre 2013 Autore Segnala Inserita: 26 settembre 2013 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.
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