pierotermine Inserito: 6 novembre 2008 Segnala Inserito: 6 novembre 2008 Salve,ho la necessità di filtrare gli ingressi digitali su step 7, ho trovato la funzione su blocco di sistema --> ingressi digitali, e da li si settano i millisecondi di delay.Il mio problema è che dovrei filtrare gli ingressi aggiuntivi del modulo em223, e su quella schermata mi ritrovo soltanto gli "I0-15" cioè solo quelli integrati nel modulo della cpu.Esiste un modo per poterlo tenere sotto controllo?Vi ringrazio anticipatamentePiero.
Livio Orsini Inserita: 6 novembre 2008 Segnala Inserita: 6 novembre 2008 Se devi fare un debouncing (antirimbalzo) c'è un modo abbastanza semplice. Leggi direttamente gli ingressi agni tot tempo, tramite un interrupt in OB35. Consideri valido lo stato dell'ingresso quando è uguale per almeno due letture consecutive.Il tempo dell'interrupt non impostarlo <10 ms.Se il ciclo di programma è abbastanza veloce puoi farlo anche a programma ed usare il valore dei registri immagine.Oppure puoi richiamare la funzione più volte in OB1, però leggendo direttamente la periferia.Il primo metodo èquello che assicura i tempi costanti.
FattoreDiPotenza Inserita: 6 novembre 2008 Segnala Inserita: 6 novembre 2008 PieroTermine , si è dimenticato di dire che tipo di CPU usa.Cosa non da poco , in quanto la EM223 è un modulo di ampliamento ingressi digitali per S7-200 , ma omettendo questo dettaglio hai indotto Livio a pensare che si trattasse di unS7-300.Il consiglio Livio rimane valido , almeno per quello che concerne l'anti-rebound.Non và bene la questione dell'interurpt a tempo solo nella questione formale dell'OB35 che non esiste nel 200.Si usa un procedura anddirittura più semplice.Ora appurato che si tratti di una S7-200 , confermo che il filtraggio degli ingressi di apliamento non è impostabile dalle proprietà della CPU , quindi bisogna agire tramite programmazione.Non hai inoltre detto che tipo di filtraggio intendi eseguire.Il filtraggio antirimbalzo , per cui devi leggere il primo fronte del primo segnale che ti arriva ignorando i successivi picchi , oppure attendere che l'ingresso si sia stabilizzato dopo un tempo di sicurezza?Quindi filtraggio contro eventuali disturbi.
pierotermine Inserita: 6 novembre 2008 Autore Segnala Inserita: 6 novembre 2008 Vi ringrazio per avermi risposto e nello stesso tempo mi scuso per la dimenticanza.Si tratta di un s7200 cpu 224. Modulo di espansione em 223.Grazie ancoraPiero
pierotermine Inserita: 6 novembre 2008 Autore Segnala Inserita: 6 novembre 2008 Rianalizzando il problema, mi servirebbe il filtraggio contro eventuali disturbi.GraziePiero
Livio Orsini Inserita: 6 novembre 2008 Segnala Inserita: 6 novembre 2008 (modificato) Non avevo letto la sigla del modulo di espansione. Comunque anche nel caso del 200 la tecnica non muta. Solo che cambia il modo di generare l'interrupt a tempo...per cui devi leggere il primo fronte del primo segnale che ti arriva ignorando i successivi picchi ..In questo caso basta usare l'apposita istruzione per rivelare i fronti di transizione e fa partire un temporizzatore, fino alla scadenza del tempo saranno ignorate tutte le variazioni di stato legate a quell'ingresso. Però prendere un fronte è sempre rischioso, non si sa se è un segnale o un disturbo. Modificato: 6 novembre 2008 da Livio Orsini
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