Vai al contenuto
PLC Forum


Misuratore Di Velocita Con Due Impulsi


roberto8303

Messaggi consigliati

...era solo che il manuale parlava della risoluzione 1ms,

Un conto è la risoluzione, un altro è il minimo tempo di temporizzazione ripetibile con sufficiente precisione.

Se tu fai un timer a 10 ms e vai a misurare il tempo con un buon oscilloscopio digitale (anche un Tecktronix economico è sufficiente :) ) noti che la misura oscillerà tra circa 9.95 ms e 10.05 ms; una parte di questo jitter è imputabile al timer ed un'altra agli erori di misura.

Ora ripeti con un tempo pari a 11 ms; propabilmente avrai il medesimo errore assoluto 10.95ms - 11.05ms.

Questo con CPU che non fa niente altro. Carica nella cpu dei programmi che ogni volta che son richiamati ripetono un certo numero di istruzioni, tanto per impegnare la CPU. Ripeti le misure e le tolleranze saranno sempre più o meno le stesse, anche se il tempo di ciclo del PéLC varia di molto.

Ripeti l'esperimento con timer ad 1 ms e....auguri.

Comunque, tanto per tornare al tuo problema. Ammesso e non concesso che tu possa fare un timer precisissimo e costante ad 1 ms non servirebbe a risolvere il tuo problema. Se devi misurare un tempo che può essere >= 37 ms con sufficiente precisione necessiti di un timer con risoluzione di 100us, o meglio di un contatore che conti un clock di 100us di periodo. un periodo di 100us significa frequenza di 10 kHz, frequenza che il contatore del 200 conta tranquillamente.

Ora ti do la soluzione facile e semplice al tuo problema, visto che sino adesso si è scritto solo di quello che non serve. Non avrà la precisione di un multanova, però ci va vicino :P

Ti procuri un oscillatore quarzato da qaulche Mhz, poi lo dividi fino ad ottenere i tuoi 10 kHz con ampiezza di 24V, se non sai come fare apri una discussione sul forum verde, sezione elettronica; vedrai che io o ASMO e qualcun altro qualche drittsa te la daremo. Metti questo segnale in un ingresso di conteggio. Poi usi un sensore per abilitare il conteggio e l'altro per stopparlo. Così di sei fatto il tuo multanova.

Attenzione a come usi i due segnali: devono entrare anch'essi negli ingressi veloci.

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti


Livio, io mi riferivo al richiamo di un'interrupt di sistema specifico parametrabile.

Dal manuale di Microwin:

I byte di merker speciale 34 e 35 controllano l'intervallo degli interrupt 0 e 1. Il valore dell'intervallo può essere specificato (in incrementi di 1 ms) tra 1 ms e 255 ms** e viene assunto dalla CPU quando il relativo evento di interrupt viene assegnato ad una routine di interrupt. Per modificare l'intervallo si deve riassegnare l'evento alla stessa routine o ad una routine diversa. Per concludere l'evento di interrupt lo si deve separare dalla routine.

Nomesimbolico 
nell'S7-200    Indirizzo
SM    Intervallo degli interrupt a tempo in millisecondi
Intrvl_interrupt _0    SMB34    Interrupt a tempo 0: valore dell'interrupt a tempo (in incrementi di 1 ms, da 1 a 255 ms**).
Intrvl_interrupt_1    SMB35    Interrupt a tempo 1: valore dell'interrupt a tempo (in incrementi di 1 ms, da 1 a 255 ms**).
**Per la serie 21x, l'intervallo di tempo (in incrementi di 1 ms) è compreso fra 5 ms e 255 ms.

Concordo che utilizzando timer normali il risultato è quello che hai prospettato.

Link al commento
Condividi su altri siti

[riflessione offtopic] non trovate anche voi, che, con plc "commerciali", ci si complichi un po' troppo la vita anche per automazioni "banali"? Ora, io non voglio tirare acqua al mulino di piccole ditte italiane, pero', questa e' una lampante dimostrazione di come noi italiani siamo piu' bravi, ma di come riusciamo comunque ad autoignorarci :( [/riflessione offtopic]

Link al commento
Condividi su altri siti

Concordo che utilizzando timer normali il risultato è quello che hai prospettato

Forse non mi son spiegato chiaramente, anche se a me sembrava dia verlo fatto.

Anche con l'uso di interrupt, quando sis cende al di sotto dei 5 ms la precisione diventa un fatto....molto opinabile, come ho descritto. Io le prove le ho effettuate con un S7-226XM, qualche anno fa, perchè avevo un problema molto ... stringente. E' pur vero che l'ultima serie di CPU è un poco più veloce, ma non credo che le cose cambino sostanzialmente.

Poi vorrei vedere cosa gira in un porogramma di PLC che ogni 1ms è interrotto, e l'interruzione dovrà pur fare un minimo di elaborazione. Diciamo che tra ingresso e uscita dalla sub di interrupt passano, siamo ottimisti, 300us, rimangono 0.7ms per elaborare un normale programma (a spizzichi e bocconi). Auguri! E non per le feste di fine anno :)

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

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