mazzinga Inserito: 2 dicembre 2008 Segnala Inserito: 2 dicembre 2008 Un cliente mi ha chiesto di eseguire un retrofitting su una macchina per taglio di PVC.In pratica c'è una lama che taglia questi fogli di PVC,i fogli vengono appoggiati su di una tavola con dimensioni 3000X1000 mm che esegue una corsa di 6MT parallela alla lama.Il cliente mi ha chiesto di eseguire il retrofitting perché la macchina è stata ampliata con alcune parti meccaniche,e perché lo strumento che è montato e da tempo che presenta del mal funzionamento.Attualmente la tavola viene mossa su delle guide prismatiche create dalla casa madre "che ormai non esiste piú" con un motore in continua da 5Nm montato su riduttore,come sistema di lettura c'è un encoder incrementale 1000 impulsi giro montato su cremagliera.Lo strumento che è installato sulla macchina e un posizionatore della HEIDENHAIN e avrà circa 20 anni.La macchina sostanzialmente è molto semplice,il carro che porta questi fogli di PVC deve fare una corsa pari al programma che scrivere l'operatore sullo strumento,avevo pensato di inserire un plc con un piccolo pannello operatore per l'interfacciarlo con l'operatore.Fin qui non ci sono problemi,Curiosando un po sullo strumento notavo che l'operatore impostava anche la velocità con cui deve essere inseguito il taglio.Il problema viene fuori propio su questo punto perché lo strumento non è un semplice programmatore,ma è un piccolo controllo numerico che gestisce il posizionamento di un asse.Secondo voi è possibile ricostruire il tutto con un Plc?Avrei necessita di inserire un Plc anche perché sulla macchina,come dicevo prima sono state fatte alcune modifiche meccaniche con le quale devo gestire con il Plc.In pratica quello che dovrei realizzare e il profilo di velocità in funzione della delta tra la quota di assoluta dell'asse e quella di setpose con una velocità F m/min pari a quella inserita dall'operatore,e in funzione delle rampa di accelerazione e decelerazione inserite.Naturalmente una volta generato il mio profilo di velocità l'andro a compensare con un pid per ridurre l'errore di inseguimento.Grazie
Livio Orsini Inserita: 2 dicembre 2008 Segnala Inserita: 2 dicembre 2008 Hai dimenticato due dati importanti: velocità di lavoro e precisione richiesta.Per quanto riguarda la fattibilità di un posizionatore ad un asse tramite PLC la risposta è si in funzione dei due dati che è elencato prima. Ne ho realizzati alcuni anche con PLC di fascia bassa come la CPU S7-214
lucios Inserita: 2 dicembre 2008 Segnala Inserita: 2 dicembre 2008 Non ho capito....Ma c'è solo un'asse? Taglia solo strisce di pvc? Se è così come imposti la larghezza dei fogli?Se non devi fare sagome ma solo passate te la puoi cavare con un qualsiasi plc che ti permetta di gestire assi punto a punto.Se vuoi montare un cnc di basso costo (ma non mi sembra questo il caso) sappi che comunque in tutti i cnc è presente un task plc (siamo quasi nel 2009 ).Ciao
mazzinga Inserita: 2 dicembre 2008 Autore Segnala Inserita: 2 dicembre 2008 Hai dimenticato due dati importanti: velocità di lavoro e precisione richiesta.Si! hai ragione come velocita si va intorno ai 10m/min come velocita di ritorno carrello,la precisione richiesta e di 0,1mmNon è una precisione molto elevataMa c'è solo un'asse? Taglia solo strisce di pvc? Se è così come imposti la larghezza dei fogli?Le modifiche di cui ti parlavo prima vacevano propio riferimento alla larghezza del pezzo,perche sono state aggiunte delle battute meccaniche dove andranno a fare il riferimento per la larghezzate la puoi cavare con un qualsiasi plc che ti permetta di gestire assi punto a puntoche intendi per punto a puntosappi che comunque in tutti i cnc è presente un task plc (siamo quasi nel 2009)Grazie dell'informazione ma che esisteva un cnc con plc abbordo lo sapevo gia dal 2007 .scherzi a parte io quello che chiedevo era solo se con un plc riuscivo a gestire un asse come se fosse un cnc
lucios Inserita: 2 dicembre 2008 Segnala Inserita: 2 dicembre 2008 che intendi per punto a puntoPilotarlo da un punto di partenza ad un punto di arrivo ad una velocità preimpostata (eventualmente modulabile con un potenziometro di override).se con un plc riuscivo a gestire un asse come se fosse un cncSe non devi fare interpolazioni sicuramente si, altrimenti è meglio utilizzare un cnc.Ciao
Livio Orsini Inserita: 2 dicembre 2008 Segnala Inserita: 2 dicembre 2008 (modificato) Con Quella velocità e precisione qaulsiasi PLC decente di fascia bassa (A&B, S7-200, Mitsubishi, panasonic, tanto per fare qualche esempio) può fare il controllo dell'asse.Il controlo punto - punto significa che il sistema controlla adintervalli regolari posizione e velocità e, se è il caso, effettua le correzioni. Forse è anhe troppo per la tua applicazione. Quasi certamente è sufficiente impostare la velocità di lavoro e le rampe di accelarazione, oltre alle quote. Modificato: 2 dicembre 2008 da Livio Orsini
mazzinga Inserita: 2 dicembre 2008 Autore Segnala Inserita: 2 dicembre 2008 Il controlo punto - punto significa che il sistema controlla adintervalli regolari posizione e velocità e, se è il caso, effettua le correzzioni. FOrse è anhe troppo per la tua applicazione. Quasi certamente è sufficiente impostare la velocità di lavoro e le rampe di accelarazione, oltre alle quote.Livio e propio quello che dovrei realizzare perche lo strumento che è montato attualmente sulla macchina fa propio questo,effettua delle correzioni quando ce n'è bisogno,infatti come dicevo prima e un CNC monoasse.La cosa importante e mantenere una velocita costante durante il taglio perche propio durante quest'ultimo viene effettuata un'altra lavorazione al materiale, che necessita di velocita costante precisione e soprattutto velocita nel posizionarsi.Potresti aiutarmi nel realizzare il sistema,sicuramente avrai molta piu esperienza di me.Grazie
mazzinga Inserita: 2 dicembre 2008 Autore Segnala Inserita: 2 dicembre 2008 Potresti aiutarmi nel realizzare il sistema,sicuramente avrai molta piu esperienza di me.volevo precisare che la domanda non è rivolta solo a Livio,che stimo tantissimo ma a voi tuttiGrazie
Livio Orsini Inserita: 2 dicembre 2008 Segnala Inserita: 2 dicembre 2008 Se leggi il mio tutorial sulle regolazioni (lo trovi nella sezione didattica e nei documenti del SAVE2007), al sesto capitolo c'è proprio l'esempio che ti serve. Inoltre, se non ricordo male, negli allegati c'è un'applicazione con S7-200 per un posizionatore simile a quello che dovresti realizzare.
mazzinga Inserita: 2 dicembre 2008 Autore Segnala Inserita: 2 dicembre 2008 Livio il tuo tutorial l'avevo gia letto tempo fa e devo dire che e stato molto utili per capire come funziona un regolatore PID,dopo il tuo suggerimento del post precedente mi sono soffermato sul capitolo 6,che ho letto e riletto.Nel capitolo 6 c'è un pezzo di codice scritto in C,ma purtroppo non cocnosco il linguaggio C.Qui esempi che ai citato non li avevo mai visti,li ho scaricati e credo che ti riferivi al "pos_an_pid",lo aperto ho dato un occhiata senza soffermarmici molto perche devo andare via.Domattina mi ci metto con più calma e cerco di capirci qualcosa,ma da quello che sono riuscito a vedere stasera non credo di averci capito molto credo che avro molti dubbi.Comunque domattina mi ci metto e poi faro sapere.Se nel frattempo riesci a spiegarmi i punti chiave per realizzare un profilo di velocita te ne sarei veramente grato.Grazie
mazzinga Inserita: 3 dicembre 2008 Autore Segnala Inserita: 3 dicembre 2008 Purtroppo come dicevo nel mio precedente post,ho avuto dei problemi nell'interpretare l'esempio.Stamattina ho presio l'esempio consigliato da Livio l'ho controllato piu di una volta ,ma non sono riuscito ad arrivare ad una conclusione per costruirmi un algoritmo "non so se è il temine esatto" per calcolarmi il mio profilo di velocita.Livio potresti spiegarmi concettualmente come fare ad realizzare l'algoritmo per il calcolo.Grazie
Livio Orsini Inserita: 3 dicembre 2008 Segnala Inserita: 3 dicembre 2008 Livio potresti spiegarmi concettualmente come fare ad realizzare l'algoritmo per il calcolo.Questo lo spiego nel sesto capitolo del tutorial, al paragrafo dedicato ai posizionamenti. Non posso ripetere in un post i medesimi concetti. Posso, al limite, cercare di chiarire eventuali punti che non ti sono chiari.
mazzinga Inserita: 3 dicembre 2008 Autore Segnala Inserita: 3 dicembre 2008 Non posso ripetere in un post i medesimi concetti. Posso, al limite, cercare di chiarire eventuali punti che non ti sono chiari.Livio,sono pienamente daccordo con te,purtroppo sono concetti che se si sanno sono facili da realizzare,me se non si sanno ti posso garantire che sono difficili da apprendere.Comunque cerchero di spiegare i punti che non mi sono chiari in modo da iniziare a capireL’anello di posizione deve mantenere la posizione reale uguale alla posizione virtualequando la velocità reale eguaglia la velocità teorica, l’errore rimane costante per poi decrescere fino ad annullarsi quando la posizione virtuale ha eguagliato la quota da raggiungere.Dal tuo tutorialA'llinterno del mio programma dovro crearmi 2 riferimenti virtuali uno di velocita e uno di posizione con due regolatori, o e sufficiente un unico riferimento virtuale con un unico regolatore.Per il momento voglio chiarire questo dubbio.Grazie
Livio Orsini Inserita: 4 dicembre 2008 Segnala Inserita: 4 dicembre 2008 Vediamo di chiarire con usempio pratico.Ammettiamo che il motore disponga di un encoder e che ogni impulso di encoder valga 0,01mm. Ammetiamo anche che alla massima velocità l'encoder generi impulsi alla frequenza di 50.000 Hz.Ammettiamo che l'azionamento (motore-convertitore) sia pilotato da un segnale analogico -10 v -0 v - 10v generato dal PLC.Ammettiamo anche che vai a campionare la posizione del tuo sistema ogni 10ms.Bene ora l'operatore imposta una quota, p.e. 6000 mm == 600.000 impulsi, ed una velocità che, fatti i conti, corrisponderà a 30.000 impulsi al secondo, quindi 300 impulsi ogni 10ms.Bene, l'operazione è semplicissima. Ogni 10 ms sommi alla tua quota virtuale 300 impulsi. Avrai la successione: 0, 300, 600, 900, 1200,.......600.000.Sempre ogni 10 ms leggi il contator che conteggia gli impulsi encoder (posizione reale) e lo sottrai alla posizione virtuale. La differenza la butti sul D/A converter e sarà il riferimento all'azionamento.Inizialmente la posizione virtuale crescerà molto più velocemente di quella reale, man mano che il riferimento di velocità aumenta diminuisce la velocità di crescita della differenza; quando la velocità reale avrà eguagliato la velocità teorica i du contatori cresceranno in parallelo, tranne piccole differenze istantanee.Quando il contatore della quota virtuale avrà raggiunto la fine rimarrà ancora la differenza accumulata in fase di accelerazione. Man mano che questa differenza diminuisce diminuirà anche la velocità. Si avrà così un accostamento in rampa ottimizzata.Il bello di questo sitema è che non necessita di tarature, si adatta automaticamente alle caratteristiche del sistema.Io lo uso da oltre 30 anni. I primi li realizzavo tutti in Hw. Vanno senza problemi e son semplicissimi.Ovviamente non sono l'unico ad usare questo sistema, anch'io l'ho appreso da oservazioni
mazzinga Inserita: 5 dicembre 2008 Autore Segnala Inserita: 5 dicembre 2008 Livio ti ringrazio del chiarimento che mi hai dato,purtroppo ora ho letto lu tua risposta solo di sfuggita,in giornata mi soffermerò con piú attenzione a leggerla in modo da comprendere il tutto con piú chiarezza.Da quello che ho letto due cose non mi sono chiare;Volendo variare l'accelerazione e decelerazione del mio profilo è possibile?come fare a variarlo?per caso e stabilito dal tempo di campionatura dove gira il posizionatore.Nel caso il delta tra la quota reale e quella di consegna non mi permette di arrivare a compiere tutto il profilo di velocità con la velocità massima impostata, il sistema come si comporta?e in grado di adeguare un nuovo profilo?.Grazie anticipatamente
Livio Orsini Inserita: 5 dicembre 2008 Segnala Inserita: 5 dicembre 2008 (modificato) L'accelerazione non è impostata, ma è determinata automaticamente. AL limite, se si si vogliono accelerazioni minori del massimo possibile, si possono dare incrementi di posizione teorica minori e crescenti, sino al raggiungimento della velocità di regime.Questo profilo è studiato per ottimizzare l'accelerazione. Se non riesci a raggiungere la velocità massima impostata, significa che il sistema meccanico non è in grado di accelerare più velocemente. In altri termini la coppia del motore, con quell'inerzia, consente al massimo quell'accelerazione. Comunque l'adeguamento è automatico. E' un altro dei vantago di questo algoritmo. Ovviamente ha anche qualche svantaggio, ma per un'applicazione come quella che hai descritto è, a mio parere, l'algoritmo ideale. Modificato: 5 dicembre 2008 da Livio Orsini
mazzinga Inserita: 5 dicembre 2008 Autore Segnala Inserita: 5 dicembre 2008 L'accelerazione non è impostata, ma è determinata automaticamente. AL limite, se si si vogliono accelerazioni minori del massimo possibile, si possono dare incrementi di posizione teorica minori e crescenti, sino al raggiungimento della velocità di regime. Ti riferisci a 300 impulsi ogni 10ms.non mi permette di arrivare a compiere tutto il profilo di velocità con la velocità massima impostataFacevo riferimento a questo perchè è un algoritmo che giustamente come tu ai citato prima puo essere usato per svariate applicazioni,la domanda era molto mirata perche se ad esempio io vorrei che la macchina parta piu dolcemente, andro ad aggiustarmi gli incrementi di posizione teorica.Se sempre per esempio devo compiere uno spostamento di 10mm,diciamo molto ristretto per capirci meglio l'algoritmo dovrebbe adegueri automaticamente,mantenendo un profilo sempre in rampa,senza dare dei strappi in fase di posizionamento.Credo che d'allesempio che ho fatto io non centri l'inerzia del mtore perche non sono io che condiziono il sistema a partire piu dolcemente.Puo anche darsi che io mi stia confondendo ho non abbia appreso correttamente il tuo concetto,se dovesse esere cosi non considerare quello che ho scritto sopra.Per migliorare l'aspetto del posizionatore secondo te è consigliabile processare il riferimento generato dall'algoritmo con un PID?,il sistema come si conporta?.
mazzinga Inserita: 5 dicembre 2008 Autore Segnala Inserita: 5 dicembre 2008 Riscrivo il post perche ho riscontrato un erroreL'accelerazione non è impostata, ma è determinata automaticamente. AL limite, se si si vogliono accelerazioni minori del massimo possibile, si possono dare incrementi di posizione teorica minori e crescenti, sino al raggiungimento della velocità di regime. Ti riferisci a 300 impulsi ogni 10ms.non mi permette di arrivare a compiere tutto il profilo di velocità con la velocità massima impostataFacevo riferimento a questo perchè è un algoritmo che giustamente come tu ai citato prima puo essere usato per svariate applicazioni,la domanda era molto mirata perche se ad esempio io vorrei che la macchina parta piu dolcemente, andro ad aggiustarmi gli incrementi di posizione teorica.Se sempre per esempio devo compiere uno spostamento di 10mm,diciamo molto ristretto per capirci meglio l'algoritmo dovrebbe adegueri automaticamente,mantenendo un profilo sempre in rampa,senza dare dei strappi in fase di posizionamento.Credo che d'allesempio che ho fatto io non centri l'inerzia del mtore perche sono io che condiziono il sistema a partire piu dolcemente quindi con dei ritardi ad arrivare all'accelerazione massima con piu ritardo.Puo anche darsi che io mi stia confondendo ho non abbia appreso correttamente il tuo concetto,se dovesse esere cosi non considerare quello che ho scritto sopra.Per migliorare l'aspetto del posizionatore secondo te è consigliabile processare il riferimento generato dall'algoritmo con un PID?,il sistema come si conporta?.
Livio Orsini Inserita: 5 dicembre 2008 Segnala Inserita: 5 dicembre 2008 Per migliorare l'aspetto del posizionatore secondo te è consigliabile processare il riferimento generato dall'algoritmo con un PID?,il sistema come si conporta?.Assolutamente da non fare.C'è gia un proporzionale sulla posizione ed intgrale sulla velocitàTi riferisci a 300 impulsi ogni 10ms.Questo corrisponde ad gradino di velocità. La risposta al gradino di velocità di questo sistema è un'accelerazione non costante costante. Massima all'inizio e decrescente poi, quasi assintototica. Viceversa in fase di decelerazione l'acelerazione è molto piccola all'inizio per poi crescere progressivamente man mano che il traguardo di posizione si avvicina. Questo tipo di accelerazione minimizza anche le vibrazioni.In fase di decelerazione si può imporre una soglia minima di velocità, al di sotto della quale non si scende, ed un errore massimo di posizione. Entre quell'errore la posizione si ritiene raggiunta e la velocità si porta a 0. Per esempio se fisso l'errore ammesso -5impulsi/+0, qundo raggiungo la quota X-5 considero posizione raggiunta e azzero la velocità.non mi permette di arrivare a compiere tutto il profilo di velocità con la velocità massima impostataE' un problema che non devi gestire, lo fa in automatico. Accelera sino a circa metà missione, poi inizia a rallentare, sempre con rampa raccordata. Le rampe puoi pensarle come archi di parabole.
mazzinga Inserita: 5 dicembre 2008 Autore Segnala Inserita: 5 dicembre 2008 Livio OK,Domani provo a fare qualcosa, e poi faro sapere come è andata.Con l'occasione volevo chiedere un chiarimento,sullo strumento che è montato sulla macchina spulciando tra i parametri macchina ho notato che il FeedForward e posto a zero mentre il Progain "credo che indicasse la costante Proporzionale"aveva un valocre che si aggirava attorno al 2.000.La domnda che mi sono posto è,perche il FeedForward e a zero?Non dovrebbe essere posto ad un valore superiore dello zero circa al 100%?Il FeedForward in un posizionatore analogico non sta ad indicarmi la percentuale di riferimento che andro a transitare verso il driver,rispetto al riferimento generato dall'algoritmo di posizionamento.Avvolte mi e capitato di sentire che si preferisce far lavorare l'azione proporzionale con il FeedForward a 0,come fa un sistema a lavorare solo con l'errore di inseguimento,il sistema non diventa instabile?
Livio Orsini Inserita: 5 dicembre 2008 Segnala Inserita: 5 dicembre 2008 Dipende dalla strategia che si è scelto.Per esempio nel sistema che ti ho esemplificato non esiste feed forward, è tutto feed back.Se invece di un mono asse dovessi affrontare, ad esempio, un biasse coordinato, un movimento X-Y con intepolazione circolare, allora il feed forward peserebbe molto; diciamo che, se il sistema è fatto decentemente,il feedforward fa circa il 90% del lavoro.
mazzinga Inserita: 15 dicembre 2008 Autore Segnala Inserita: 15 dicembre 2008 Questo fine settimna ho iniziato a fare delle prove a banco,ho assemblato un motore + riduttore ho calettato su un encoder,ho preso un PLC inverter e ho assemblato il tutto.Ho seguito le indicazioni di livio,in una task che gira con un tepmo di 10 ms sommo alla posizione virtuale un certo numero di impulsi che determina la mia velocita con cui voglio posizionare l'asse.Poi sempre ogni 10 ms sottraggo alla posizione virtuale la posizione reale dove noto che ho sempre un errore costante tra i due,la somma la butto il D/A converter,generando così il riferimento che mando all'azionamento.In fase di Accelerazione il sistema si conporta molto bene,in velocita costante l'errore tra i due e lineare, non prossimo allo zero,quello che non riesco a eseguire è l'accostamento in rampa quando finisco il posizionamento,in pratica una volta che il sitema arriva a regime mantiene quel riferimento per tutto il posizionamento.Sicuramente sbaglio qualcosa, non riesco a capire dove.
Livio Orsini Inserita: 15 dicembre 2008 Segnala Inserita: 15 dicembre 2008 Esempio veloce.Posizione da raggiungere 10.000 impulsiVelocità: 50 impulsi/10 msParti sommando alla posizione virtual 50 impulsi ogni 10ms. Controlli che il totale sia <= 10.000. Se <10.000 lo fai uguale a 10.000.Contemporaneamnete sottrai la posizione reale dalla posizione virtuale. Controlli che la diffierenza sia <=al massimo valore per D/A.se mamaggiore eguagli al massimo del D/A .Quando la posizione virtuale raggiunge il valore di 10.000 non si incrementa più e l'errore diminuisce, come diminuirà il riferimento sul D/A.Credo che nella tua prova tu abbia dimenticato di fare l'eguaglianza con la posizione bersaglio
walterword Inserita: 17 dicembre 2008 Segnala Inserita: 17 dicembre 2008 quello che livio chiama virtual impulsi o encoder virtuale non e' altro che la rampa di velocita'
Livio Orsini Inserita: 17 dicembre 2008 Segnala Inserita: 17 dicembre 2008 No Walter, non è proprio così. Ti sei dimenticato i miei insegnamenti?
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