Vai al contenuto
PLC Forum


ritardare serie di impulsi in ingresso


Humet69

Messaggi consigliati

Buongiorno a tutti e grazie in anticipo a chiunque mi aiuti a risolvere questo problema. Ho la necessità di ritardare  di 15 secondi circa degli impulsi (24volt 100 ms) che vengono generati in ingresso, in tempi variabili che vanno da 3 sec. a 15 sec. Praticamente me li devo trovare in uscita alla stessa frequenza in cui me li trovo in ingresso solo che ritardati del tempo che io desidero. Ho provato con i vari relè programmabili che esistono in commercio ma purtroppo non è possibile perchè sono in grado di gestire un impulso alla volta. Pensavo di utilizzare il logo8, ma leggendo il manuale mi sembra di riscontrare gli stessi problemi che ho riscontrato nei relè programmabili. Probabilmente mi sbaglio oppure bisogna utilizzare qualcosa di più potente del logo? 

Link al commento
Condividi su altri siti


Dumah Brazorf

Hai un problema e hai trovato una possibile soluzione, epperò è complicata.

Se puoi spiegare il problema forse si arriva ad una soluzione più semplice.

Link al commento
Condividi su altri siti

Cercherò di spiegarmi meglio. Arrivano degli impulsi da un plc (di cui è impossibile modificare nulla) che servono ad attivare un'altro plc il quale per aziona un dispositivo elettropneumatico. Purtroppo per permettere a questo dispositivo di azionarsi ogni volta al momento giusto, ho bisogno di ritardare questi impulsi di 15 secondi. Ora se gli impulsi  che arrivano dal primo plc avessero una cadenza superiore ai 15 secondi del mio ritardo, il problema sarebbe risolto facilmente, ma se l'impulso mi arriva prima, la soluzione non è affato semplice, perchè per come sto gestendo io la cosa questo nuovo impulso o andrebbe perso o farebbe ripartire il conteggio del ritardo dei 15 secondi da zero.

Link al commento
Condividi su altri siti

11 minuti fa, Humet69 ha scritto:

Ora se gli impulsi  che arrivano dal primo plc avessero una cadenza superiore ai 15 secondi del mio ritardo, il problema sarebbe risolto facilmente

Quindi non devi solo ritardarli di 15" e mantenere i relativi outputs per il tempo in cui stanno alti? Oggi sono un po' coccio e non capisco questa frase quotata.

Link al commento
Condividi su altri siti

Una cosa del genere l'avevo fatta con dei shift register con campionamento a 50ms, quindi il massimo errore era 50ms sull'attivazione e sulla durata dell'impulso.  Ho utilizzato degli HCF 4057 e un click quarzato. Puoi farlo anche con il plc, dipendedalla precisione altrimenti puoi memorizzare i fronti up e down in una tabella e rileggerli al tempo T+ritardo

Link al commento
Condividi su altri siti

Cerco di spiegarmi ancora meglio: Un lettore ottico legge un cubo nero in un foglio di carta e manda un segnale ad un plc il quale genera questo impulso alto. quindi ad ogni cubo letto un segnale alto. Quindi nella'arco di 5 minuti posso avere 30/40 segnali alti che devo ritardare così come sono e riportarli nel secondo plc. Quindi è chiaro che durante i 15 secondi in cui avviene il ritardo, in ingresso continueranno ad arrivare segnali alti generati dal lettore ottico. 

Link al commento
Condividi su altri siti

Dumah Brazorf

Cosa se ne fa il secondo plc di questi impulsi? Ci sono dei dati in questi impulsi o interessa solo il loro numero? O la distanza tra due impulsi?

Non si potrebbe spostare il lettore ottico in un punto più congeniale o metterne un'altro per il secondo plc?

Link al commento
Condividi su altri siti

La soluzione proposta da @max.bocca è quella che adotterei anch'io. Ti leggi i fronti positivi a cui aggiungi i 15" e quelli negativi per capire quanto tempo tenere alto l'output. Tutto questo deve entrare in una coda che ti memorizza le occorrenze e che si svuota man mano che queste operazioni si completano. Userei un Array a 3 colonne, una per l'input interessato, una per l'orario di partenza e uno per quello di spegnimento.  Non so se c'è la fai con un logo.

Link al commento
Condividi su altri siti

Se gli impulsi non arrivano con intervalli inferiore a 3 sec potrebbe funzionare questo, vedi se ho capito cosa ti serviva. I contatori sono impostati da 1 a 6, i timer a 15 sec e l'ultimo timer 100ms.

1652853246965.jpg

Link al commento
Condividi su altri siti

Vi ringrazio  tutti per le risposte, ma  purtroppo non sono in grado di fare il programma di Alfio63. A malapena riesco a fare dei semplici programmi con Logo8. Comunque mi avete dato un'altra idea per risolvere il problema. Ho visto che l'espulsore, che dovrebbe essere attivato dopo 15 sec dal segnale del lettore ottico, potrebbe essere attivato esattamente dopo 7 cicli macchina in questione. Parliamo di una macchina che mette il celefon e indirizzi nelle riviste. Quindi pensavo di mettere un sensore induttivo in un qualsiasi punto o camme che gira per prendermi il segnale ciclo macchina e poi utilizzare logo8 come contatore. l'inizio del conteggio me lo darebbe il segnale del lettore ottico e alla fine dei 7 cicli macchina farei uscire un senale alto della durata che voglio da mandare all'espulsore e così via. Qualcuno mi conferma che con Logo8 si può fare? Grazie

Link al commento
Condividi su altri siti

Un sistema ci sarebbe...metti uno spegnimento ritardato di 15 secondi, quando torna a zero attiva un emissione d'impulso che genera l'impulso di uscita.

Ora fai un numero di stadi uguali a tanti quanti sono gli impulsi da memorizzare in 15 secondi (anche 10).

Ogni stadio "blocca" se stesso e "apre" il successivo in questo modo:

l'uscita del primo spegnimento ritardato la usi negata su un and per bloccare l'ingresso dello stadio e dritta per abilitare l'ingresso del secondo stadio uguale al primo.

 

15 sec.png

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