Vai al contenuto
PLC Forum


combinazioni ingressi (guasti)


Messaggi consigliati

Inserito:

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


Inserita:

Sinceramente non ho capito quello che vuoi fare.

Adelino Rossi
Inserita:

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.

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

Inserita:

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.   

 

Inserita:

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.

Inserita:
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?

Giuseppe Signorella
Inserita:

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.

ifachsoftware
Inserita:

Ti crei un FC nel seguente modo :

 

image.png.d47e7e0fb7f16abc0ad4fc5e96a7ebc5.png

 

image.png.44e759af6d9a53e384e5023be126104f.png

 

Poi lo richiami con parametri in ingresso delle tue condizioni di allarme

Inserita:

Grazie ragazzi, grazie a tutti. Siete stati gentilissimi

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