wolfwlf Inserito: 10 settembre 2013 Segnala Share Inserito: 10 settembre 2013 Buongiorno, sono alle prime armi con la programmazione awl in step7 e data l'inesperienza chiedo consiglio a voi. Ho la necessità di verificare tramite plc la durata del tempo ciclo di lavoro delle nostre apparecchiature. Per cui ho bisogno di effettuare un conteggio incrementale in secondi dal momento in cui premo lo start ciclo fino alla fine del ciclo di lavoro. Ho trovato nel forum alcune discussioni ma non sono riuscito a sfruttarle bene. Qualcuno e' già stato alle prese con un tema simile. Grazie in anticipo degli eventuali suggerimenti. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 10 settembre 2013 Segnala Share Inserita: 10 settembre 2013 (modificato) C'è una funzione ben precisa che tui permette di fare qaunto di serve facilmente ed ad elavata precisione: l'orologio di sistema. Associ la lettura dellorologio allo strat, rileggi l'orologio alla fine del ciclio ed hai la differenza in secondi e frazioni di secondo. Come leggere l'orologio l'ottimo Batta lo ha spiegato alcune volte in varie discussioni. Modificato: 10 settembre 2013 da Livio Orsini Link al commento Condividi su altri siti More sharing options...
wolfwlf Inserita: 10 settembre 2013 Autore Segnala Share Inserita: 10 settembre 2013 Probabilmente non sono stato chiarissimo. Io avrei la necessità oltre che verificare il tempo ciclo totale anche visualizzare in real time lo scorrere dello stesso magari appoggiando il valore in secondi incrementali su una DB. Grazie Livio Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 10 settembre 2013 Segnala Share Inserita: 10 settembre 2013 L'alternativa è settare un clock , di sistema, 100ms per esempio, nella configurazione Hw del PLC. Leghi il timer all'interrupt dello OB35 conti 10 interruzioni ed hai 1"; fai un contatore per i secondi e lo visualizzi. Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 10 settembre 2013 Segnala Share Inserita: 10 settembre 2013 (modificato) In OB1 c'è la variabile OB1_PREV_CYCLE che riporta sempre il tempo di scansione del ciclo precedente (in millisecondi). E' molto semplice in un FC o FB incrementare una variabile DINT sommando questo tempo (che ovviamente dovrai passare come parametro IN) Con un incresso dell'FC (flag di ciclo) abiliti l'incremento, con il fronte di discesa dello stesso ingresso memorizzi il valore dove vuoi tu e azzeri la DINT. C'è sicuramente qualcosa di simile qui sul forum, e c'è anche un blocco pronto che funziona in maniera simile nella biblioteca di step7 (ma viene usato come timer) Modificato: 10 settembre 2013 da JumpMan Link al commento Condividi su altri siti More sharing options...
wolfwlf Inserita: 13 settembre 2013 Autore Segnala Share Inserita: 13 settembre 2013 Grazie a tutti dei consigli Link al commento Condividi su altri siti More sharing options...
amed Inserita: 13 settembre 2013 Segnala Share Inserita: 13 settembre 2013 Nella finestra di configurazione HW apri la scheda Schedulazione orologio. Imposta la sua esecuzione ad interrupt ogni 1000ms. Inserisci in Blocchi OB35 una istruzione di somma che incrementa di 1 (ogni 1000ms) il contenuto di una word o doppia word di una DB. In OB1 inserisci i richiami di SFC39 ed SFC40 per attivare e disattivare lo'interrupt atempo. I richiami li trovi nella Biblioteca a sinista dello schermo in fondo alla lista delle istruzioni. Ciao 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