Vai al contenuto
PLC Forum


combinazioni ingressi (guasti)


nemo85

Messaggi consigliati

Buongiorno,

dovrei scrivere le combinazioni di 5 ingressi in caso di guasto. Ho creato così 5 merker (1-2-3-4-5) che si accendono appena il valore è quello di guasto.

Per esempio:

 1-2-3-4-5 ( tutti gli ingressi sono guasti)

1-2-3-4 ( solo 4 ingressi sono guasti)

2-3-4-5 ( 4 ingressi guasti) ..... e così via.

Così all'uscita di questo ipotetico blocco ad ogni nuovo stato dovrei avere un "1" in uscita.

C'è secondo voi un metodo approssimato o comunque più veloce anzichè scrivere tutte le possibili combinazioni manualmente ?

Grazie

 

N.B: il linguaggio da utilizzare è il ladder

Link al commento
Condividi su altri siti


Adelino Rossi

Dovresti anche chiarire cosa intendi per ingresso guasto, un ingresso assume due valori, chiuso o aperto, e va al plc che esegue il programma.

in caso di guasto il plc legge o zero o uno a seconda del tipo di guasto ma lo vede come valore reale ed esegue, diversamente se per guasto intendi una anomalia hardware su una o più schede, ma per questo mi sembra che ci siano apposite funzioni previste all'interno del plc.

Link al commento
Condividi su altri siti

Quote

dovrei scrivere le combinazioni di 5 ingressi in caso di guasto. Ho creato così 5 merker (1-2-3-4-5) che si accendono appena il valore è quello di guasto.

Per esempio:

 1-2-3-4-5 ( tutti gli ingressi sono guasti)

1-2-3-4 ( solo 4 ingressi sono guasti)

2-3-4-5 ( 4 ingressi guasti) ..... e così via.

Non è che ti sia spiegato molto bene, ma mi pare di capire che vorresti controllare che uno solo degli ingressi sia attivo.
Se è così, potresti inizializzare una variabile con valore zero.
Poi, per ogni ingresso attivo, incrementi la variabile.
Alla fine la variabile indicherà il numero di ingressi attivi.
Basta poi una comparazione.

Link al commento
Condividi su altri siti

Per guasto intendo un valore di ingresso che scende sotto un certo valore. Per rendere più semplice il programma, per i valori di guasto ho creato delle merker.

Ho creato già le merker in questo modo: Supponiamo che un ingresso si chiami AT-101 che è un valore analogico, dopo la normalizzazione e la scalatura ho impostato dei valori di soglia  utilizzando un comparatore e ho creato per ogni soglia una merker.

Il primo ingresso si chiama AT-101, gli altri 4  sono  AT-102 AT-103 AT-104 e AT-105 ( naturalmente tutti già normalizzati e scalati)

La soglia è 1mA che corrisponde ad un certo count.

   

AT-101<1mA   

----- | < | -----------------------------------(M10.0)   

 

AT-102<1mA

----|< |--------------------------------------(M10.1)  e così via fino a AT-105

 

Quello che vorrei fare è che ad ogni nuova combinazione di guasto io abbia un'uscita pari a "1", ma non posso scrivere tutte le combinazioni dei guasti possibili.

Per esempio :

AT-101 AT-102 guasti ( quindi entrambi  <1mA)  in uscita ho 1

AT-101 AT-102 e si aggiunge AT-104 guasto devo avere un nuovo risultato che sarà "1".

 

Mi è venuto in mente di usare una porta or a 5 ingressi ma non posso utilizzare come ingressi del blocchetto or le merker che ho creato.   

 

Link al commento
Condividi su altri siti

5 ore fa, nemo85 scrisse:

Non ho utilizzato il blocco funzioni per la porta OR , ma l'ho creata mettendo tutti gli ingressi (AT-101 AT102...) in parallelo tra loro.

 

Solo questo ti serviva? Un cumulativo degli allarmi?

Link al commento
Condividi su altri siti

Giuseppe Signorella

Sarebbe stato sufficiente un array in uno  all'utilizzo di un costrutto (FOR). In  tal modo avresti potuto sapere con esattezza quanti allarmi in corso ci sono, se entra ed esce un nuovo allarme, e quali sono attivi.

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