vittorio1982 Inserito: 4 marzo 2008 Segnala Inserito: 4 marzo 2008 Salve a tutti, ragazzi volevo porvi questa domanda.Come faccio a conoscere la velocità reale istante per istante del mio encoder che è collegato ad un motore comandato da micromaster 420.Sicuramente non sono stato chiaro adesso cerco di spiegarmi meglio.Poichè la velocita è lo spazio percorso fratto il tempo impiegato a percorrerlo volevo implementare questa formula in un programma in step7.Il mio problema e che il tempo della cpu e molto piccolo quindi come faccio ad avere la velocita in secondi.ciao a tutti
Livio Orsini Inserita: 4 marzo 2008 Segnala Inserita: 4 marzo 2008 (modificato) E' semplicissimo. Devi avere una scheda per interfaccia encoder contatore tipo FM350. Poi, in OB35 che è l'OB dell'interupt del timer di sistema leggi il contatore. Se programmi il timer a100ms ti basta moltiplicare per 10 la differenza del numero di'mpulsi tra due letture e moltiplicare ancora per il fattore di conversione impulsi/mm, o altra unità di lunghezza, ed avrai la tua velocità. Questo è il metodo più semplice, però ne esistono molti altri molto più raffinati.Ops ho visto ora che è un encoder assoluto. Sei sicuro? perchè se è assoluto lo devi leggere con un'interfaccia diversa, devi convertire il codice e hai il problema di riconoscimento della rivoluzione completa. Modificato: 4 marzo 2008 da Livio Orsini
Luca Bab Inserita: 5 marzo 2008 Segnala Inserita: 5 marzo 2008 Solitamente setto l'OB35 ad un intervallo di tempo che sia minore ad un giro encoder alla massima velocita'poi ogni volta che vai dentro all'ob 35 guardo la quota faccio i miei calcoli e me la salvoquindi rientro guardo se la quota vecchia e' minore della attuale : quota attuale - quota vecchia = gradi fattise la vecchia e' maggiore di quella attuale ( sono passato da zero ) : 360 - quota vecchia + quota attuale = gradi fattidai gradi fatti in un tempo definito trovo la velocita'PS se la velocita' non e' stabile , fatti un db con le ultime 10 letture ( ad ogni lettura sposti tutto )e mediati le ultime 10Luca
vittorio1982 Inserita: 5 marzo 2008 Autore Segnala Inserita: 5 marzo 2008 Scusami lUca mi puoi spiegare un po meglio la procedura da te descritta, io non ho mai utilizzato l'ob35 come faccio a modificare i valori di questo ob???non hai un esempio che puoi mandarmi, sono veramente in dificolta.
Livio Orsini Inserita: 5 marzo 2008 Segnala Inserita: 5 marzo 2008 L'OB35 si attiva sull'interrupt del timer di sistema, il tempo lo programmi "una tantum" nella configurazione Hw del PLC. E' consigliabile non scendere sotto i 10ms; nelle nuove CPU più veloci si può stare anche a 5ms. Ogni volta che l'orologio di sistema fa scattare l'interupt il tuo programma entrerà in OB35.Comunque è spegato abbastanza bene sul manuale.
vittorio1982 Inserita: 5 marzo 2008 Autore Segnala Inserita: 5 marzo 2008 continuo a non capire io ho la necessita di vedere la velocita espressa in secondi come farrio a utilizzare l'ob 35?? se ha un tempo di interrupt di 10-5ms Livio hai un esempio di utilizzo specifico simile alle mie necessità scusami.Ma come già detto sono le prime volte che utilizzo un plc e quindi sono cose totalmente nuovi per me
Luca Bab Inserita: 5 marzo 2008 Segnala Inserita: 5 marzo 2008 Velocita' = spazio percorso nel tempo.se come ti ha detto LIVIO setti in HW conf l'O35 ogni 100ms ( valori di esempio )e ti calcoli la distanza percorsa dal tuo encoder dopo 100ms , ti trovi la velocita'esempio 100ms l'OB35distanza percorsa tra un OB35 e l'altro = 100gradivelocita' = 100gradi ogni 100ms = 1000 gradi al secondo = 60000 gradi al minuto = ( se 360 = 1cpm ) = 166,6 CPMChiaro ???Luca
vittorio1982 Inserita: 5 marzo 2008 Autore Segnala Inserita: 5 marzo 2008 teoricamente più o meno ho capito cosa vuoi intendere ma praticamente come faccio a settare il tempo di scansione di quest'ob35??ma poi visto che io voglio la velocita espressa in secondi dovrei settare il ciclo di interrupt in 1000ms???????e infine come faccio a prelevare un valore e poi prelevare un altro valore dopo 1 secondo. Scusate ancora perla mia incapacità...
vittorio1982 Inserita: 5 marzo 2008 Autore Segnala Inserita: 5 marzo 2008 ragazzi ho risolto avete avuto un ottima intuizione.io mi stavo scervellando con i timer invece ho fatto come avete detto voi ed è stato semplicisimo.L'unica differenza e stato invece di utilizzare l'ob 35 ho utilizzato l'ob 32.comunque grazie a LIVIO e a LUCA siete dei grandi.Mi sapete dire perchè io gli setto una velocità di riferimento, invece mi trovo una velocità effettiva inferiore????un esempio gli setto 300mm/s e mi ritrovo 277mm/s?????
rddiego Inserita: 5 marzo 2008 Segnala Inserita: 5 marzo 2008 qui non m i sembra che sia un problema di programmazione OB35 (che è standard a 100ms) quindi non modificare nulla delle proprietà dell'OB.il problema e comprendere un'equivalenza.v=m/s = m/(ms*1000) = m/(100ms*10)per esempio un metro al secondo è = 0,001 metri al millisecondo0,1 metri ogni 100 millisecondi1 millimetro al millisecondo100 millimetri ogni 100 millisecondi1 decimetro ogni 100 millisecondise hai l'OB35 richiamato di default ogni 100 ms, rileverai una distanza percorsa ogni 100ms che moltiplicata per 10 ti dà la distanza che percorreresti in un secondo assumendo un moto uniformeE' la stessa cosa che ti ha già detto Luca Babvisto che io voglio la velocita espressa in secondi dovrei settare il ciclo di interrupt in 1000msNo, in sostanza moltiplica per 10 la differenza che rilevi tra lo spazio precedentemente percorso e l'attuale
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