Vai al contenuto
PLC Forum


filtraggio ingressi digitali


famas

Messaggi consigliati

 

.. e rieccomi ad approfittare della vostra gentilezza e professionalità.

Come avrete capito sto cercando di scrivere il mio primo programma in ladder (prendendo spunto da un caso reale) ed ogni tanto mi imbatto in qualche ostacolo.

Ho letto altri post sul filtraggio ma che riguardavano più l'antirimbalzo, il mio problema invece è il seguente. 

Ho degli ingressi digitali collegati ad una sonda di livello, poichè immagino che il liquido possa arrivare in modo turbolento potrei avere che la sonda si attivi, segnalando un livello in modo occasionale, per poi spegnersi nuovamente. Vorrei evitare continui azionamenti della valvola a valle e implementare quindi una logica del tipo:

leggo un ingresso ogni secondo, se per dieci letture ho lo stesso valore allora considero valido l'ingresso.

Ho realizzato questo algoritmo con un sommatore: se ho dieci alla fine il valore di ingresso lo considero 1, se ho zero il valore è 0, per qualunque altro valore considero l'uscita uguale alla precedente.

Ho dovuto però usare un sommatore, un counter (che conta fino a 10), due comparatori ed un move per resettare la variabile somma ogni 10   ... mi sembra un po' troppo.

Per non parlare del fatto che il segnale di ingresso devo metterlo al bit0 di una word per fare la somma .....(AND + SHIFT)

Cosa mi suggerite ?

 

Grazie

F

 

Link al commento
Condividi su altri siti


  • Leggi l'ingesso
  • Se è 1 incrementi il contatore; se il contatore è >= 10 consideri valido lo stato "1"
  • Se l'ingresso è zero azzeri il contatore.

In questo modo solo se hai avuto 10 letture consecutive di valori alti consideri valida la lettura.

Link al commento
Condividi su altri siti

Per semplificarti la vita io fossi in te userei un timer ritardato all'eccitazione. Se il livello permane per n secondi attivi l'uscita. Se invece il livello oscilla resetta sempre il timer lasciando invariata l'uscita a "0".

Link al commento
Condividi su altri siti

Grazie veramente,

effettivamente, come immaginavo, il metodo più semplice (e non di poco) esiste.

Per tornare poi da 1 a 0 posso o

- considerare che un solo ingresso a 0 mi resetta l'uscita o

- duplico la logica con l'ingresso invertito in modo che solo se ho il valore 0 per n secondi commuto sullo 0, giusto?

 

Ciao 

F

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