Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Esercizio testo Pirraglia


Messaggi consigliati

Inserito:

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


Inserita:

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 😅

Inserita:

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

 

Inserita:

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

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

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

Inserita:

Ma Impro diceva di risolvere l'esercizio in KOP...

Inserita:

Un esercizio cosi lo si fa semplicemente anche in KOP.

Inserita: (modificato)

Luce.thumb.png.5781bda32868196db1131a45871cf0ce.png

 

Anche se io forse lo farei cosi

 

LuceSt.png.71ce6803c4f84641ce8cbd3ee355e829.png

Modificato: da step-80
Inserita:
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!

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

Inserita:

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. 

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