Vai al contenuto
PLC Forum


Salvare E Gestire L'ordine Di Arrivo Dei Segnali


luca1979

Messaggi consigliati

ciao a tutti ho il seguente problema..ho 4 finecorsa di 4 utenze diverse. all'arrivo di uno qualsiasi devo far aprire una certa elettrovalvola e un compressore per la sua pulizia...il problema è che mentre sto usando il compressore per la pulizia di una elettrovalvola non posso gestire un altro arrivo di un finecorsa quindi devo ritenenere il suo arrivo e gestirlo non appena il compressore ha finito il lavoro...però potrei anche avere 3 finecorsa assieme in attesa della lavorazione...il problema è che deve gestire l'arrivo dei finecorsa in modo da andare a servire per primo il primo che è arrivato e cosi via.....qualche suggerimento?? mi sono venute in mente solo idee molto complicate...grazie

Link al commento
Condividi su altri siti


Potresti fare così

Utilizza du e variabili

In

In1

Prima di ogni lettura ingressi fai

In1 = In

In = nuova lettura ingressi

A questo punto applichi la logica

FrontUp = (In1 xor In) and In

(prima lo xor poi and)

in FrontUp hai i bit a 1 di tutti gli ingressi cambiati ( valore 0-->1) tra le due letture.

A questo punto puoi ordinare gli arrivi. Se Tra due letture cmbaino due ingressi stabilisci una priorità interna (es. dal bit meno significativo al più significativo).

Se ti serve il fornte di discesa fai

FrontDn (In1 xor In) and In1 hai i bit a 1 di tutti gli ingressi cambiati 1-->0 tra le due letture

Modificato: da accacca
Link al commento
Condividi su altri siti

personalmente userei il blocco FIFO con lunghezza 4 visto che hai 4 diverse chiamate ....

il blocco gestisce in automatico le chiamate che arrivano e restituisce( in base alla tua programm. la sequenza delle chiamate nell'ordine in cui sono arrivate)...

Link al commento
Condividi su altri siti

<_<

però potrei anche avere 3 finecorsa assieme in attesa della lavorazione...il problema è che deve gestire l'arrivo dei finecorsa in modo da andare a servire per primo il primo che è arrivato e cosi via.....qualche suggerimento?? mi sono venute in mente solo idee molto complicate...grazie

Quanto è grande il buffer eventi da gestire?

Potresti crearti un array di dati (interi) circolare a cui assegnare 1-2-3-4-in funzione del Fn attivato..

Link al commento
Condividi su altri siti

ragazzi la soluzione che ho adottato è la seguente...ogni volta che mi arriva un certo finecorsa mi fa partire il relativo timer e pooi con un confronto sui tempi decido chi è il primo ad essere arrivato e poi gestisco le varie partenze.....grazie comunque per i consigli

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