Maurizio Colombi Inserita: 14 novembre 2022 Segnala Inserita: 14 novembre 2022 Almeno due parole a corredo dell'immagine...
batta Inserita: 14 novembre 2022 Segnala Inserita: 14 novembre 2022 Certo che sei riuscito a complicare non poco una cosa semplice 😉 In ladder, il sistema che mi piace di più è il seguente: Pulsante FS_Pulsante --------|p|--------------------( ) FS_Pulsante PassoPasso PassoPasso --------| |----------------|/|--------+------------( ) | FS_Pulsante PassoPasso | --------|/|----------------| |--------+
G.esse Inserita: 15 novembre 2022 Autore Segnala Inserita: 15 novembre 2022 (modificato) 8 ore fa, batta ha scritto: Certo che sei riuscito a complicare non poco una cosa semplice 😉 In ladder, il sistema che mi piace di più è il seguente: Pulsante FS_Pulsante --------|p|--------------------( ) FS_Pulsante PassoPasso PassoPasso --------| |----------------|/|--------+------------( ) | FS_Pulsante PassoPasso | --------|/|----------------| |--------+ Sinceramente fatico più con questo ladder, consideriamo due cicli cpu con pressione pulsante. Primo ciclo passo passo rimane su grazie al fronte. Il secondo ciclo per rimanere su legge lo stato del ciclo precedente di passo passo e si autoritiene? Un nuovo fronte p determina la caduta di out passo passo? Modificato: 15 novembre 2022 da G.esse
max.bocca Inserita: 15 novembre 2022 Segnala Inserita: 15 novembre 2022 Ci sono diversi metodi, il risultato non cambia al limite uno può essere più facile da identificare. A me non dispiace usare una funzione, la richiami con un fronte e la utilizzi in più punti. Quella del contatore mi sembra complicata e senza senso.
acquaman Inserita: 15 novembre 2022 Segnala Inserita: 15 novembre 2022 Mamma mia se ti sei complicato la vita, ci sono altri 1000 modi per fare un Flip Flop, basta usare la logica, ma fatto con il contatore non si può guardare. 9 ore fa, batta ha scritto: In ladder, il sistema che mi piace di più è il seguente: Pulsante FS_Pulsante --------|p|--------------------( ) FS_Pulsante PassoPasso PassoPasso --------| |----------------|/|--------+------------( ) | FS_Pulsante PassoPasso | --------|/|----------------| |--------+ é un segmento che devi capire una volta solo, poi è sempre uguale, è a rappresentazione dell'istruzione XOR. Secondo me è il metodo più elegante per fare un Flip Flip, in testo strutturato resta una sola riga a parte il fronte bello pulito, infatti è una cosa che ho copiato a @batta e che usa anch'io.
G.esse Inserita: 15 novembre 2022 Autore Segnala Inserita: 15 novembre 2022 14 minuti fa, acquaman ha scritto: Mamma mia se ti sei complicato la vita, ci sono altri 1000 modi per fare un Flip Flop, basta usare la logica, ma fatto con il contatore non si può guardare. é un segmento che devi capire una volta solo, poi è sempre uguale, è a rappresentazione dell'istruzione XOR. Secondo me è il metodo più elegante per fare un Flip Flip, in testo strutturato resta una sola riga a parte il fronte bello pulito, infatti è una cosa che ho copiato a @batta e che usa anch'io. Intendi due righe in scl? Non saprei a me il contatore piace sono due numeri che mi restituiscono un uscita alta al corrispondente numero ma a voi programmatori proprio non va giù 🤣
acquaman Inserita: 15 novembre 2022 Segnala Inserita: 15 novembre 2022 27 minuti fa, G.esse ha scritto: Intendi due righe in scl? Si
leleviola Inserita: 15 novembre 2022 Segnala Inserita: 15 novembre 2022 Quella del contatore non capisco cosa abbia di controindicato, è che sprechi un contatore, tutto li
G.esse Inserita: 15 novembre 2022 Autore Segnala Inserita: 15 novembre 2022 11 ore fa, acquaman ha scritto: Si Forse un po troppo per me l scl , sto svolgendo degli esercizi su un libro ; ad esempio questo che ho allegato con due foto credo di averlo risolto sfruttando la tecnica di misura di tensione concatenata -L1 +L2 ecc ecc e l ho riportata come combinazione nel secondo segmento. L esercizio può essere risolto così? Non credo ci siano altre combinazioni
84paolo Inserita: 15 novembre 2022 Segnala Inserita: 15 novembre 2022 Sul punto 2 c'é segnato se ogni rubinetto é aperto singolarmente fa accendere la segnalazione. come lo hai fatto tu si accende anche se ne apri 2 o 3
G.esse Inserita: 15 novembre 2022 Autore Segnala Inserita: 15 novembre 2022 (modificato) 13 minuti fa, 84paolo ha scritto: Sul punto 2 c'é segnato se ogni rubinetto é aperto singolarmente fa accendere la segnalazione. come lo hai fatto tu si accende anche se ne apri 2 o 3 Non ho capito, però ho notato che dice se piu di un rubinetto e aperto si deve accendere solo la q0.0 quindi va aggiunto un contatto negato di q0.0 in serie a ogni segmento del segmento 1. Intendevi questo? Modificato: 15 novembre 2022 da G.esse
batta Inserita: 16 novembre 2022 Segnala Inserita: 16 novembre 2022 12 ore fa, leleviola ha scritto: Quella del contatore non capisco cosa abbia di controindicato, è che sprechi un contatore, tutto li Sarà perché ho iniziato a programmare quando ottimizzare le risorse era indispensabile, ma trovo assurdo usare un contatore per un flip-flop. Come prendere un camion per spostare 20 chili di ghiaia. Oltre allo spreco di risorse, è anche inutilmente macchinoso. Sono d'accordo con @acquaman: un passo passo fatto con un contatore, non si può guardare. Ci sono altri sistemi che richiedono solo un bit di appoggio, perché usare un contatore? Non è una critica nei confronti di @G.esse, lui sta imparando e chiede consigli. Diamogli i consigli giusti.
batta Inserita: 16 novembre 2022 Segnala Inserita: 16 novembre 2022 12 ore fa, G.esse ha scritto: L esercizio può essere risolto così? Non credo ci siano altre combinazioni. A parte ciò che ti ha fatto notare Paolo (se è aperto più di un rubinetto non si deve accendere la lampada del rubinetto aperto, ma solo quella di allarme), ancora prima di guardare la logica, ti dico questo: abituati assolutamente, subito, immediatamente, senza perdere un solo secondo, ad assegnare i nomi alle variabili! Se io fossi un insegnante, un programma con "Tag_1", "Tag_2", "Tag-3", lo giudicherei insufficiente, senza nemmeno perdere il tempo di esaminarlo. Ti assicuro che la mia non è cattiveria, ma se parti con brutte abitudini rischi di non perderle più. Tornando all'esercizio, a parte non far accendere la spia del singolo rubinetto se sono aperti anche altri rubinetti, è corretto. Questo sistema però va bene solo fino a quando hai poche cose (rubinetti, nel tuo caso) da controllare. Pensa a cosa diventerebbe il programma fatto a logica booleana se i rubinetti fossero 10, o 20. In questo caso, si potrebbe adottare una diversa strategia. - Utilizzi una variabile per contare i rubinetti aperti. - Azzeri la variabile. - Successivamente, per ogni rubinetto aperto incrementi la variabile di una unità. - A questo punto sai quanti rubinetti aperti ci sono.
G.esse Inserita: 16 novembre 2022 Autore Segnala Inserita: 16 novembre 2022 42 minuti fa, batta ha scritto: Tornando all'esercizio, a parte non far accendere la spia del singolo rubinetto se sono aperti anche altri rubinetti, è corretto. Questo Basta utilizzare in serie alle bobine dei singoli rubinetti il contatto negato del out q0.0 per risolvere giusto? Grazie dei consigli li metterò in pratica.
max.bocca Inserita: 16 novembre 2022 Segnala Inserita: 16 novembre 2022 Condivido @batta per i reference, i tag devono essere più precisi possibili come pure i commenti (nel segmento 2 vedo che hai scritto > in realtà e =>). Sugli i/o a volte è anche utile specificare quando si ha un 0 oppure un 1. Come esercizio cerca di trovare altre soluzione alla rilevazione di due o più....
acquaman Inserita: 16 novembre 2022 Segnala Inserita: 16 novembre 2022 13 ore fa, G.esse ha scritto: Forse un po troppo per me l scl Il mio era solo un esempio di com'è il il segmento postato da Batta in scl. Il flip flop è secondo me l'esercizio principale da dare ad un neofita per fa apprendere bene il funzionamento del ciclo del plc, utilizzo dei fronti di salita e cicli scansione, oltre ad imparare a ragionare con la logica digitale. Se vuoi un consiglio prima di risolvere quegli esercizi banali del libro, senza guardare l'esempio di Batta, fatti un tuo flip flop solo con dei bit, postacelo che lo analizziamo insieme ma vedrai che il problema non è banale. Quando mi è capitato di tenere un corso di plc, ho lanciato una sfida che chi lo risolveva con il minor numero di istruzioni e e memorie, ed è ancora la sfida che lancio ad ogni stagista che ciclicamente arriva in ufficio.
batta Inserita: 16 novembre 2022 Segnala Inserita: 16 novembre 2022 1 ora fa, G.esse ha scritto: Basta utilizzare in serie alle bobine dei singoli rubinetti il contatto negato del out q0.0 per risolvere giusto? Grazie dei consigli li metterò in pratica. Sì, giusto. Visto poi che le uscite delle spie dei singoli rubinetti sono tutte nello stesso segmento, puoi anche usare il contatto dell'uscita una sola vola, mettendolo all'inizio, e facendo dopo le diramazioni. Poi, al di là del fatto che funzioni ugualmente, io preferisco non usare le uscite come memorie interne. Per esempio, potresti mettere il segmento della spia di allarme prima del segmento con le spie dei rubinetti. Dove comandi l'uscita della spia di allarme metti anche un'altra bobina. In questa seconda bobina, se rispetti l'ordine che ti ho suggerito, potresti usare anche una variabile locale, per esempio #tmpAllarme, ed usare questa variabile locale per non far accendere le altre spie. Aggiungi un'istruzione, ma eviti di usare l'uscita sparsa in giro per il programma. Ripeto, usare l'uscita (che poi, in realtà, non è l'uscita fisica ma l'immagine dell'uscita) non è sbagliato, qui entrano in ballo preferenze personali. Io sono abituato a fare largo uso di variabili di appoggio. Nei miei programmi è raro trovare un ingresso richiamato più di una volta, ed ancora più raro trovare uscite richiamate più di una volta. Ma su questo troverai pareri contrastanti.
batta Inserita: 16 novembre 2022 Segnala Inserita: 16 novembre 2022 1 ora fa, acquaman ha scritto: Il mio era solo un esempio di com'è il il segmento postato da Batta in scl. Pensa che nemmeno me lo ricordavo. E devo dire che lo scriverei con una piccola modifica: #PassoPasso := #PassoPasso XOR (#Pulsante AND NOT #FpPulsante); #FpPulsante := #Pulsante; Le parentesi in realtà non servono, ma rendono più chiara l'interpretazione.
acquaman Inserita: 16 novembre 2022 Segnala Inserita: 16 novembre 2022 2 ore fa, batta ha scritto: Le parentesi in realtà non servono, ma rendono più chiara l'interpretazione Ci sta.
Claudio F Inserita: 16 novembre 2022 Segnala Inserita: 16 novembre 2022 6 hours ago, G.esse said: Basta utilizzare in serie alle bobine dei singoli rubinetti il contatto negato del out q0.0 per risolvere giusto? Ni. Il calcolo dell'uscita q0.0 viene effettuato dopo aver già calcolato le uscite q0.1 q0.2 q0.3. Questo vuol dire che il contatto di q0.0 negato verrà "sentito" solo al prossimo ciclo di esecuzione. In sostanza per un solo ciclo le uscite q0.1 q0.2 q0.3 potrebbero risultare accese assieme a q0.0
leleviola Inserita: 16 novembre 2022 Segnala Inserita: 16 novembre 2022 9 ore fa, batta ha scritto: Pensa che nemmeno me lo ricordavo. E devo dire che lo scriverei con una piccola modifica: #PassoPasso := #PassoPasso XOR (#Pulsante AND NOT #FpPulsante); #FpPulsante := #Pulsante; Le parentesi in realtà non servono, ma rendono più chiara l'interpretazione. Se ne impara sempre di nuove, grazie batta, è che con l'andar del tempo si perde sempre di più l'uso delle istruzioni basilari come si faceva un tempo tipo XOR che io tra l'altro uso in altri contesti, l'uso di tali istruzioni daltronde dipende molto dalle abitudini e dalla propria provenienza formativa
G.esse Inserita: 16 novembre 2022 Autore Segnala Inserita: 16 novembre 2022 5 ore fa, Claudio F ha scritto: Ni. Il calcolo dell'uscita q0.0 viene effettuato dopo aver già calcolato le uscite q0.1 q0.2 q0.3. Questo vuol dire che il contatto di q0.0 negato verrà "sentito" solo al prossimo ciclo di esecuzione. In sostanza per un solo ciclo le uscite q0.1 q0.2 q0.3 potrebbero risultare accese assieme a q0.0 Basta invertire i segmenti?Significa che per un ciclo plc non so quanti ms il programma sarà sbagliato ma non rilevabile da occhio umano penso. Ma immagino in altri contesti non sia sottovalutabile
ifachsoftware Inserita: 16 novembre 2022 Segnala Inserita: 16 novembre 2022 Io mi creerei un FC come il seguente Poi quando devo fare il passo passo lo richiamo tutte le volte che mi serve nel seguente modo Come vedete ad ogni fronte di salita del pulsante cambia di stato Ritengo questa versione molto più leggibile ed aderente alla programmazione strutturata
max.bocca Inserita: 17 novembre 2022 Segnala Inserita: 17 novembre 2022 @ifachsoftware è quello che ho scritto io, volevo vedere se ragionandoci riusciva farlo lui... @leleviola io ragiono ancora con or and xor ecc per via che ho sempre progetto con TTL e CMOS e questo era il modo operandis, poi si cercava anche di razionalizzare le porte. Ora con plc sembra più performanti secondo me si scrive il programma senza pensare all'ottimizzazione. Una volta un contatore o timer ci si pensava due volte se era indispensabile utilizzarlo......
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