Vai al contenuto
PLC Forum


Tempo Ciclo


wolfwlf

Messaggi consigliati

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


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: da Livio Orsini
Link al commento
Condividi su altri siti

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

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

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: da JumpMan
Link al commento
Condividi su altri siti

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

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