CDR Inserito: 17 gennaio 2011 Segnala Inserito: 17 gennaio 2011 Ho una macchina sulla quale è installato un plc s7 200 CPU 226 collegato ad un visualizzatore TP177, ho necessità di visualizzare i giri al minuto perchè la velocità è variabile tramite un volantino meccanico e pensavo di farlo misurando gli impulsi dell'encoder che è 360I/G, inoltre 1 giro completo dell'encoder corrisponde esattamente ad 1 giro macchina.Vorrei sapere qual'è la formula esatta.Grazie
Livio Orsini Inserita: 17 gennaio 2011 Segnala Inserita: 17 gennaio 2011 (modificato) Dipende dalla base tempi che imposti.Cerco di chiarire con un esempio.Connetti l'encoder ad un contatore veloce. Vai a leggere il contatore a tempi fissi scanditi dall'interrupt del timer di sistema. La differenza tra due lettura ti da il numero d'impulsi nel tempo base di misura.Il tuo encoder 360 imp/giro e un giro di encoder = 1 giro macchina; se fissi il tempo a, p.e., 1" il numero di rpm sarà:rmp = (delta conteggio * 60)/360 = delta conteggio / 6. Modificato: 17 gennaio 2011 da Livio Orsini
Lucky67 Inserita: 17 gennaio 2011 Segnala Inserita: 17 gennaio 2011 Scusa ma per volantino intendi un volantino di un motoriduttore manuale a cui hai applicato un encoder oppure un volantino calettato su un encoderino da quadro al posto di un potenziometro?
CDR Inserita: 18 gennaio 2011 Autore Segnala Inserita: 18 gennaio 2011 X Lucky67: il volantino è di un motoriduttore manuale, l'encoder è calettato sull'albero principale della macchina e li non ci sono problemi.X Silvio: ho già provato a fare quello che dici tu ma il mio problema è il seguente...nel programma io uso l'encoder programmato in questo modo, HSC1 MODO 10, quando il valore corrente è uguale a 360 resetto il contatore e ricomincio, questo funziona correttamente.Siccome gli ingressi I0.6, I0.7, I1.0, I1.1 determinano che sia HSC1 ad essere programmato, adesso se tento di fare qualche cos'altro con hsc1 microwin mi dà errore perchè lo trova già utilizzato.In qualche modo ero riuscito a fare a fare qualche cosa ma funziona solo quando il valore cresce, se mi trovo a cavallo dello zero e cioè quando il primo valore è più alto del secondo chiaramente il programma fatto da me non funziona più.Di solito per fare un lavoro vedo sempre almeno 2 strade, ma qui sono davvero in vicolo cieco.
Livio Orsini Inserita: 18 gennaio 2011 Segnala Inserita: 18 gennaio 2011 X Silvio: No! almeno per iscritto non si deve confondere il mio nome che è Livio quando il valore corrente è uguale a 360 resetto il contatore e ricomincio,No, devi impostare il modo free running, senza mai resettare e leggere il contatore al volo. C'è solo da gestire il trabocco, ma è semplicissimo. Quando sottrai la lettura precedente dall'attuale, se il risultato è negativo sai che è traboccato, quindi complementi il vecchio valore e lo sommo al valore attuale, ottenendo la differenza.
CDR Inserita: 18 gennaio 2011 Autore Segnala Inserita: 18 gennaio 2011 Scusa per la svista sul nome.L'encoder non lo uso solo per contare i giri, il modo in cui l'ho programmato mi serve esattamente così com'è per fare delle camme per dei movimenti.Adesso devo trovare il modo per contare i giri tenendo programmato in quel modo l'encoder
Livio Orsini Inserita: 18 gennaio 2011 Segnala Inserita: 18 gennaio 2011 Se ad ogni reset sommi 360 ad un contatore avrai il totalizzatore. Al momento dell'interrupt del timer leggi al volo e sommi alla valore totalizzato. E' un po una complicazione, ma se devi usare l'encoder anche per altri scopi...Se la velocità ti serve solo come indicazione per l'operatore puoi fare un timer di 6"; conti il numero dei reset nell'intervallo di tempo e moltiplichi per 10, avrai il numero di rpm +/- 6 rpm. Se ti è sufficiente la precisione e la velocità di aggiornamento è un metodo semplice.
CDR Inserita: 18 gennaio 2011 Autore Segnala Inserita: 18 gennaio 2011 la macchina serve per confezionare delle buste, a loro volta le buste possono essere di materiali diversi, e la temperatura ambiente influenza il "tiro", tutto questo avrei voluto farlo in automatico selezionando delle ricette dal tp177, siccome i fattori che influenzano sono troppi abbiamo optato per una regolazione manuale, visualizzare la velocità delle battute (1 battuta=1giro macchina) è importante, da 44 a 45 battute al minuto nell'alta produzione cambia.Secondo te se ponticello gli ingressi di HSC1 con quelli di HSCO ( che in questo momento non ricordo quali siano) e poi programmo HSCO a ruota libera come dicevi tu può funzionare oppure distruggo encoder e ingressi?
Livio Orsini Inserita: 18 gennaio 2011 Segnala Inserita: 18 gennaio 2011 Dovresti fare una verifica della massima corrente che puoi drenare dalle uscite dell'encoder però, in linea di massima, non ci dovrebbero essere controindicazioni, vista anche la frequenza che non è elevata.Se hai gli ingressi liberi, questa è la soluzione ideale per avere le due funzioni indipendenti.
CDR Inserita: 18 gennaio 2011 Autore Segnala Inserita: 18 gennaio 2011 Per fare questi lavori ci va un incoraggiamento come questo, spostare 4 ingressi non è un grosso lavoro, domani provo, se l'hardware funziona mi sa che risolvo
CDR Inserita: 11 febbraio 2011 Autore Segnala Inserita: 11 febbraio 2011 Voglio chiudere la discussione dicendo com'è finita, ho liberato gli ingressi A e B di HSC0 e li ho ponticellati con quelli di HSC1 e poi ho programmato HSC0 come mi aveva suggerito Livio,ormai sono più di 15 giorni e a quanto pare l'encoder non ne risente affatto, stessa cosa per i conteggi dei 2 contatori programmati che sembrano contare benissimo.Comunque Siemens sostiene che il medesimo contatore si può programmare in più modi in uno stesso programma, io però non ci sono riuscito.
CDR Inserita: 15 febbraio 2011 Autore Segnala Inserita: 15 febbraio 2011 Nei giorni scorsi cercando di risolvere il problema descritto precedentemente ho cercato molto nel forum e ho visto che il conteggio dei cicli al minuto era già stato trattato in molti post ma non ero comunque riuscito a venirne a capo.Nel mio messaggio precedente vi ho scritto che tramite un trucchetto hardware ne ero venuto fuori ma comunque non mi piaceva affatto, oggi in ditta cera poco da fare e ho ripreso in mano il tutto e finalmente mi è riuscita una cosa interessante che vorrei descrivervi sperando che vi possa tornare utile.Allora, in precedenza avevo programmato HSC1 in modo 10 e cioè con reset esterno per fare delle cam, in seguito siccome HSC1 era già stato programmato non riuscivo più a programmarlo nuovamente in free running per poter fare un conteggio dei giri minuto.Stamattina ho fatto in questo modo:nel MAIN con lo start del motore che fa girare l'albero faccio partire un timer con base 10ms con setup impostato a 32000 in modo che non possa mai arrivare in fondocon il medesimo contatto ma questa volta negato carico 0 nel medesimo timer in modo da visualizzare 0 a macchina ferma, sempre nel main al primo ciclo richiamo la SBRNella SBR:questa volta ho programmato HSC1 in modo 9 e cioè legge solo i canali A e B dell'encoder, senza reset esterno, in VA carico 0, in VP carico 360, scateno INT quando VA=PVIn INT:carico il valore del timer programmato nel MAIN in VW0, divido 6000 ( 1 minuto espresso in centesimi) per VW0 e li appoggio in VW2 (questi sono i giri al minuto da visualizzare)carico 0 nel timer e 0 in HSC1, a questo punto ho tutto a 0 e ricomincio tutto da capo.Caricato il tutto, collaudato e perfettamente funzionante, controllato con un crono non sbaglia di un solo giro.Mi rimane solo un dubbio benchè funzioni tutto benissimo:il timer con base 10ms era da programmare nel MAIN?
roberto8303 Inserita: 28 febbraio 2011 Segnala Inserita: 28 febbraio 2011 il timer con base 10ms era da programmare nel MAIN?dovevi creare un timer chiamando l interrpt ogni 10ms...
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