Vai al contenuto
PLC Forum


Esercizio testo Pirraglia


Impro

Messaggi consigliati

Buongiorno a tutti. Ho recentemente ripreso il testo di Pirraglia "Programmare con i nuovi PLC S7-1200 e S7-1500" perché ho intenzione di tornare a fare il programmatore PLC.

C'è un esercizio del secondo capitolo che so risolvere solo in modo macchinoso e poco modificabile, quindi vorrei chiedere il vostro aiuto per capire se c'è una soluzione più semplice ed immediata.

In un tunnel sotterraneo ci sono quattro ventilatori (V1, V2, V3 e V4) non controllati da programma, ma che mandano il segnale se sono in funzione. L'esercizio chiede di illuminare una luce diversa in base al numero di ventilatori in funzione:

-verde se sono in funzione 3 o 4 ventilatori

-gialla se ce ne sono 2

-rosso un ventilatore o nessuno.

 

Ci ho riflettuto parecchio e considerando le istruzioni che conosco al momento (è da risolvere in ladder) l'unica cosa che mi viene in mente è di fare segmenti ladder con tutte le combinazioni (ad esempio la luce verde si accende se sono a 1 V1, V2 e V3, o in parallelo se vanno V1, V3 e V4 ecc...).

Immagino (e spero!) ci sia una soluzione migliore che però non mi viene in mente.

Se qualcuno riuscisse a darmi una mano e insegnarmi qualcosa di nuovo (o magari mostrarmi qualcosa che avevo sotto al naso) gliene sarei molto grato!

Grazie

Link al commento
Condividi su altri siti


Scusate, come spesso accade, nel premere invia mi è venuta in mente una possibilità, e ho visto adesso che non si possono cancellare le discussioni.

Posso usare i fronti positivi per aggiungere 1 a un intero e quelli negativi per togliere 1, e in base al valore dell'intero decidere quale luce accendere,

Adesso non posso usare il Tia Portal, appena riesco ci provo.

Scusate ancora per il disturbo 😅

Link al commento
Condividi su altri siti

- Crei una variabile "NrVentilON" (può anche essere una variabile temporanea).

- Azzeri la variabile (con il 1200/1500 le variabili temporanee vengono azzerate in automatico ma, personalmente, preferisco rendere esplicito l'azzeramento).
- Se il ventilatore 1 è in marcia, incrementi la variabile.

- Se il ventilatore 2 è in marcia, incrementi la variabile.

- Se il ventilatore 3 è in marcia, incrementi la variabile.

- Se il ventilatore 4 è in marcia, incrementi la variabile.

- A questo punto, la variabile contiene il numero di ventilatori in marcia, indipendentemente da quali essi siano.

- Con tre comparazioni, accendi le luci.

 

Link al commento
Condividi su altri siti

Utilizzando solo ingressi digitali e bobine, considerando che hai 4 ventilatori e 2 stati possibili per ciascuno di essi, ci vogliono 16 righe in ladder...

Link al commento
Condividi su altri siti

11 ore fa, Impro ha scritto:

Posso usare i fronti positivi per aggiungere 1 a un intero e quelli negativi per togliere 1

Non farlo con i fronti.

Link al commento
Condividi su altri siti

22 ore fa, batta ha scritto:

- Crei una variabile "NrVentilON" (può anche essere una variabile temporanea).

- Azzeri la variabile (con il 1200/1500 le variabili temporanee vengono azzerate in automatico ma, personalmente, preferisco rendere esplicito l'azzeramento).
- Se il ventilatore 1 è in marcia, incrementi la variabile.

- Se il ventilatore 2 è in marcia, incrementi la variabile.

- Se il ventilatore 3 è in marcia, incrementi la variabile.

- Se il ventilatore 4 è in marcia, incrementi la variabile.

- A questo punto, la variabile contiene il numero di ventilatori in marcia, indipendentemente da quali essi siano.

- Con tre comparazioni, accendi le luci.

 


Mi associo a quanto detto da @batta. Questa è una delle soluzioni più funzionali e semplici da realizzare.

Link al commento
Condividi su altri siti

Il 7/3/2020 alle 12:46 , batta ha scritto:

- Crei una variabile "NrVentilON" (può anche essere una variabile temporanea).

- Azzeri la variabile (con il 1200/1500 le variabili temporanee vengono azzerate in automatico ma, personalmente, preferisco rendere esplicito l'azzeramento).
- Se il ventilatore 1 è in marcia, incrementi la variabile.

- Se il ventilatore 2 è in marcia, incrementi la variabile.

- Se il ventilatore 3 è in marcia, incrementi la variabile.

- Se il ventilatore 4 è in marcia, incrementi la variabile.

- A questo punto, la variabile contiene il numero di ventilatori in marcia, indipendentemente da quali essi siano.

- Con tre comparazioni, accendi le luci.

 

Grazie mille, alla fine meno male che ho chiesto lo stesso. Il mio problema era che aggiungendo e basta poi ad ogni ciclo aggiungesse, ma azzerandolo all'inizio il problema non si pone.

La tua soluzione è molto più semplice e corretta, ne devo mangiare ancora di panini!

So che come dice mc1988 sarebbero state solo 16 righe in ladder, ma ero sicuro ci fosse un metodo più veloce che non mi veniva in mente, e volevo scoprirlo per le prossime volte.

Grazie mille a tutti per l'aiuto, siete stati gentilissimi e questo forum è oro colato per uno come me che sta imparando.

Spero un giorno di diventare abbastanza esperto da aiutare a mia volta i principianti!

Link al commento
Condividi su altri siti

21 minuti fa, step-80 ha scritto:

Luce.thumb.png.5781bda32868196db1131a45871cf0ce.png

 

Anche se io forse lo farei cosi

 

LuceSt.png.71ce6803c4f84641ce8cbd3ee355e829.png

Grazie, in SCL l'uso del case è effettivamente molto intuitivo.

Link al commento
Condividi su altri siti

Di nulla. A volte ci spacchiamo tanto la testa quando la soluzione è a portata di mano. E soprattutto, ci scervelliamo per inventare sequenze dimenticando che il plc già di suo esegue le istruzioni in sequenza. 

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