Vai al contenuto
PLC Forum


conta impulsi..


minihidro

Messaggi consigliati

Salve , avrei la necessita' di controllare il numero di impulsi di un sensore induttivo ( abbinato ad una ruota fonica )

La frequenza massima raggiunta dovrebbe aggirarsi intorno ai 600 Hz...

Ho a disposizione un CJ1M CPU21 che ha tra le altre cose ha a  bordo degli ingressi a risposta rapida.

 

La mia domanda e' come conteggiare questi impulsi ? con un normale contatore ? il tempo di ciclo puo' influire ? come fate in genere a conteggiare gli impusi/sec. ?

Esiste in commercio ( o in alternativa ditemi come fate )  un'apparato per simulare il numero di impulsi/sec da mandare sull'ingresso della CJ1M  per verificare l'effettivo funzionamento del programma ?

 

Grazie.

 

Link al commento
Condividi su altri siti


Usa il contatore veloce interno, fa tutto lui.

Vai in Impostazioni, poi scegli il tab Ingresso Integrato, e per esempio attiva il contatore veloce 0. Lo imposti a 60kHz, lineare, Reset Software e Ingresso a Impulsi Incrementale.

A quel punto leggerai negli appositi registri il conteggio e potrai anche reimpostarlo o azzerarlo.

Per queste operazioni, leggi il manuale W395 al paragrafo 5-2 per le istruzioni, altri per il cablaggio.

 

Altrimenti per la tua velocità potresti usare anche la modalità Ingresso Interrupt Contatore, ma è un po' più farraginoso (vedi par. 6-1)

Link al commento
Condividi su altri siti

Quindi sconsigli l'utilizzo di un contatore tipo cntx abbinato ad un tmhhx?

Utilizando l'ingresso ad interrupt dovrei settare un valore sul contatore e non leggerlo....

 

Ti domando cio' perche' avrei tre ingressi ( cioe' tre letture da fare) da utilizzare ....

Link al commento
Condividi su altri siti

Non è che sconsiglio, non so se ce la fai.

A 600Hz, te hai un impulso ogni 1.666ms, e dovresti avere al massimo un tempo di ciclo inferiore a ciò (diciamo intorno al ms) per essere sicuro di non perderlo.

Tra l'altro, se non impostati diversamente, gli ingressi hanno un filtro a 8ms, per cui sopra 125Hz non vedresti nulla.

 

Potresti però fare così: associ a ogni ingresso un interrupt normale, e nella routine di ciascuno metti una istruzione di incremento (++) su una word (o doppia word), Questo ti funzionerà da contatore semplice incrementale. Nel tuo programma poi avrai (asincrono) il controllo di quanti impulsi ci sono per ciascuno, e la rimessa a zero se necessaria.

Se poi usi un flag, nella stessa routine puoi mettere il decremento (--) che selezionerai col flag, ottenendo un bidirezionale semplice.

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