Vai al contenuto
PLC Forum


Misurare I Giri Al Minuto


Messaggi consigliati

Inserito:

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


Inserita: (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: da Livio Orsini
Inserita:

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?

Inserita:

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.

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

Inserita:

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

Inserita:

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.

Inserita:

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?

Inserita:

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.

Inserita:

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

  • 4 weeks later...
Inserita:

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.

Inserita:

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 fondo

con 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 SBR

Nella 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=PV

In 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?

  • 2 weeks later...
Inserita:
il timer con base 10ms era da programmare nel MAIN?

dovevi creare un timer chiamando l interrpt ogni 10ms...

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