sacacetu Inserito: 4 febbraio 2004 Segnala Inserito: 4 febbraio 2004 Ciao A tutti Avrei bisogno di un aiuto, ora vi spiego:Ho un Piano che devo posizionare a diverse quote in tempi molto brevi (es. una corsa di 20cm in meno di 1 secondo) , questo piano e 1mx1m alto 20 cm in acciaio (veramente pesante!) sui 4 angoli sono stati messi 4 cilindri oliodinamici comandati con 4 valvole proporzionali e 4 LVDT per legge la quota sui 4 angoli. Il tutto è controllato da un PLC Omron CJ1.Ora, io ho usato prima 4 PID separati per posizionare il piano, cioè dando a tutti e 4 come setpoint il valore di quota da raggiungere, ma questo mi creava dei problemi: il piano tendeva a piantarsi (scusate il termine 'tecnico'), allora leggendo il corso su questo sito, o tenere uno dei cilindri come master e gli altri 3 come slave, ma, anche se più raramente, il problema è rimasto. A questo punto, chiedo a qualcuno di voi, se sà come implementare un controllo, in modo che se uno dei cilindri rimane indietro, gli altri, possano fermarsi o anche tornare indietro, per evitare che il piano si intraversi e quindi si pianti.Premetto che non ho esperienza nel campo dei posizionamenti e tanto meno nella matematica che c'è dietro, ho provato a fare anche delle ricerche su internet, ma niente da fare, e quello che mi fa più paura e che hanno gia chiesto un'altra cosa del genere, solo con un piano di 2mx1m e 6 cilindri Ringrazio tutti anticipatamente e vi saluto.Samuele
Pietro Buttiglione Inserita: 4 febbraio 2004 Segnala Inserita: 4 febbraio 2004 molto, come sempre, dipende dalla velocita' lineare dei cilindri..Io una volta ho fatto una pressa a due cilindri in qs. modo con delle schedine della Siei..Come funzionano 2 dovrebbero funzionare 4... ciaopitPS.Invece,se interessa a qualcuno, un mio amico ha sviluppato un bel sisteminotouch screen che programma l'uscita analogica e riceve anche il feedback dall'LVDT.Il tutto anche per 4 o piu' cicli/s....Lo dico qui NON x fargli pubblicita', ma xche' credo che di cose simili in circolazione ce ne siano ben poche
sacacetu Inserita: 4 febbraio 2004 Autore Segnala Inserita: 4 febbraio 2004 La velocità non la conosco. Come sempre , mi hanno detto, "deve fare così e così e questo è quello che devi usare", ovvero: 1 PLC CJ1(meno male che non mi hanno dato un cpm1) , modulo Input Analogico, modulo Output Analogico, cx-programmer, 4 lvdt e 4 cilindri.ora, ho provato a fare quello che ho scritto sopra, con quei risultati , chiedevo se a livello di software (perche' è l'unica cosa che posso cambiare) esiste un modo di implementare un controllo che mi porti a quota i 4 cilindri, facendo attenzione che il piano sia sempre 'a bolla'.CiaoSamuele
Livio Orsini Inserita: 4 febbraio 2004 Segnala Inserita: 4 febbraio 2004 Se ai letto il mio tutor, avrai visto ch spesso cito l'azione di feed forward. Se tu usi solo la reazione è abbastanza normale che il sistema si pianti vista la normale differenza di risposta degli azionamenti fluidici. Genera un profilo di riferimento di velocità per le valvole, profilo che darai a tutte e quattro contemporaneamente, poi chiuderai l'anello di posizione sul master ed i tre slave terranno al posizione del master con il loro anello.Sempre se hai letto il tutor, vedrai che un esempio allegato tratta un posizionamento di un cilindro idraulico con razione da LVDT, il feed forward è regoalrmente applicato. L'esempio è per un plc S7-214, ma codice a parte, è valido anche per un Omron.
sacacetu Inserita: 5 febbraio 2004 Autore Segnala Inserita: 5 febbraio 2004 Grazie per il suggerimento, se non ho capito male, nell'esempio della valvola p. + lvdt (che purtroppo non riesco a vedere, perche' lo step 7 in mio possesso è un pò datato e non riesce ad aprirmi questi file) io devo creare una sorta di rampa virtuale per i cilindri ( es. 50step/10msec. uguale per ogni cilindro) poi metto i valori ottenuti come punto di arrivo del PID ogni 10msec. quindi :erroreCil1(t) = PosizioneRampaVirtuale(t) - PosizioneLettaLVDT1(t)erroreCil2(t) = PosizioneRampaVirtuale(t) - PosizioneLettaLVDT2(t)erroreCil3(t) = PosizioneRampaVirtuale(t) - PosizioneLettaLVDT3(t)erroreCil4(t) = PosizioneRampaVirtuale(t) - PosizioneLettaLVDT4(t)quindi:outCil1 = PID1(erroreCil1)outCil2 = PID1(erroreCil2)outCil3 = PID1(erroreCil3)outCil4 = PID1(erroreCil4)giusto, o non ho capito niente ?p.s.secondo te mi conviene usare la funzione PID del PLC o implementarne una io?ciao e grazie. Samuele
Livio Orsini Inserita: 5 febbraio 2004 Segnala Inserita: 5 febbraio 2004 Oltre alle posizioni virtuali la rampa ti serve per calcolarti il riferimento di velocità da buttare sul D/A. In questo modo la valvola comincia ad aprirsi (chiudersi) prima che l'errore processato abbia effetto. In questo modo l'errore rimane più piccolo ed il sistema risponde più velocemente.Se guardi bene le funzioni in pseudo C del tutor questi algoritmi sono descritti abbastanza chiaramente (spero).Io, con Siemens, ho preferito usare un PID realizzato da me; quello integrato è stato realizzato, a mio giudizio, un po' come una complicazione degli affari semplici, inoltre è molto scolastico.Se vai al sito Siemens puoi scaricarti l'ultima versione del microwin32; è una versione demo che vale 30gg, poi la cancelle e la reinstalliM 1/2ora di lavoro.
sacacetu Inserita: 5 febbraio 2004 Autore Segnala Inserita: 5 febbraio 2004 Come faccio a calcolare il riferimento di velocità? C'è una qualche formula o devo farlo per via sperimetale?ho scaricato la demo dal sito siemens, ma continua a non aprirmi i file, dice che il dispositivo selezionato, non è presente o non è supportato.Ciao e grazie ancora per la tua pazienza Samuele.
bit Inserita: 5 febbraio 2004 Segnala Inserita: 5 febbraio 2004 Come faccio a calcolare il riferimento di velocità?Beh, se non sbaglio tu hai già definito una rampa virtuale che ti determina la posizione del piano in funzione del tempo. Basta che tu ricavi la funzione derivata di tale rampa, dato che la velocità in funzione del tempo non è altro che la derivata dello spazio in funzione del tempo.Ciao!
Livio Orsini Inserita: 6 febbraio 2004 Segnala Inserita: 6 febbraio 2004 ho scaricato la demo dal sito siemens, ma continua a nn aprirmi i file, dice che il dispositivo selezionato, nn è presente o nn è supportato.Ciao Samuele, se mi mandi una enail con il tuo indirizzo ti posto l'esempio in versione testo, così puoi vederlo con block notes.Per la velocità.Suppongo che la tua valvola abbia un riferimento 10v/-10v corrispondente massima vel.avanti massima vel. indietro. I transitori rapidi nei circuiti idraulici causano il coplo d'ariete, pertanto è necessario si passi da 0 a 10v in non meno di 200 ms. Se hai un D/A C a 12 bit ==> 4096 counts ==> -10v ==> +10v. DIpende dal tuo interrupt a tempo, spero non sia > 10 ms se no è difficile che tu possa rgolare. Decidi a quale velocità deve essere fatto il posizionamento, quindi conosci il corrispondente livello di tensione. Stabilisci anche quale deve esssere l'accelerazione ottimale ed avrai tutti i dati per calcolare il tuo feed forward.
sacacetu Inserita: 9 febbraio 2004 Autore Segnala Inserita: 9 febbraio 2004 Ciao Livio,Volevo solo sapere se avevi ricevuto l'email.se l'hai vai pure tranquillo senza fretta. Ciao
Felanzet Inserita: 14 giugno 2004 Segnala Inserita: 14 giugno 2004 MASTER _ SLAVE Tutti e 4 gli assi hanno un primo anello chiuso di posizione in più gli slave hanno un proporzionale integrale di sincronismo che si somma al anello precedente.MEDIA PESATATutti e 4 gli assi hanno un primo anello chiuso di posizione in più tutti hanno un proporzionale integrale di sincronismo che si somma al anello precedente il cui peso è calcolato in funzione della media attuale delle posizioni comandate e attuali.Felix
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