Impro Inserito: 7 marzo 2020 Segnala Share Inserito: 7 marzo 2020 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 More sharing options...
Impro Inserita: 7 marzo 2020 Autore Segnala Share Inserita: 7 marzo 2020 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 More sharing options...
batta Inserita: 7 marzo 2020 Segnala Share Inserita: 7 marzo 2020 - 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 More sharing options...
mc1988 Inserita: 7 marzo 2020 Segnala Share Inserita: 7 marzo 2020 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 More sharing options...
batta Inserita: 7 marzo 2020 Segnala Share Inserita: 7 marzo 2020 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 More sharing options...
step-80 Inserita: 8 marzo 2020 Segnala Share Inserita: 8 marzo 2020 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 More sharing options...
mc1988 Inserita: 8 marzo 2020 Segnala Share Inserita: 8 marzo 2020 Ma Impro diceva di risolvere l'esercizio in KOP... Link al commento Condividi su altri siti More sharing options...
acquaman Inserita: 8 marzo 2020 Segnala Share Inserita: 8 marzo 2020 Un esercizio cosi lo si fa semplicemente anche in KOP. Link al commento Condividi su altri siti More sharing options...
step-80 Inserita: 8 marzo 2020 Segnala Share Inserita: 8 marzo 2020 (modificato) Anche se io forse lo farei cosi Modificato: 8 marzo 2020 da step-80 Link al commento Condividi su altri siti More sharing options...
Impro Inserita: 8 marzo 2020 Autore Segnala Share Inserita: 8 marzo 2020 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 More sharing options...
Impro Inserita: 8 marzo 2020 Autore Segnala Share Inserita: 8 marzo 2020 21 minuti fa, step-80 ha scritto: Anche se io forse lo farei cosi Grazie, in SCL l'uso del case è effettivamente molto intuitivo. Link al commento Condividi su altri siti More sharing options...
step-80 Inserita: 8 marzo 2020 Segnala Share Inserita: 8 marzo 2020 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 More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora