Vai al contenuto
PLC Forum


Timer S7 - Ritardare di 25h 15m 30S


Messaggi consigliati

Mauro Rubinetti
Inserito:

Salve a tutti, avrei bisogno di poter impstare un tempo su un timer SE di 25h 15m 30S 00mS e malgrado abbia letto l'. del simatic S7 non sono riuscito a trovare come fare.

Ho pensato di fare un contatore incrementato da un timer di 60 min arrivato a 25 conteggi faccio partire un timer di 15m e 30 s ed il gioco è fatto, ma mi chiedo e possibile che i timer siano al massimo di 2H_46M_30S_0MS .

P.S. Premetto che non posso utilizzare un timer esterno.

Grazie per un eventuale suggerimeno. ;)


Inserita:

Ciao. Sei come Marzullo.... si faccia una domanda e si dia una risposta.

Esatto i timer standard sono esattamente come hai detto tu.

In s7 ci sono altre tecniche (sfb e altro ) ma il contatore col clock a 60 minuti resta la soluzione più veloce ed affidabile

Inserita:

Salve delphiruby,

ma mi chiedo e possibile che i timer siano al massimo di 2H_46M_30S_0MS .

Si', e' cosi'.

S5T#2h46m30s => HEX W#16#3999 (BCD) => 9990 secondi

A punto S5TIME, ne usa un contenitore a 16 bits e accetta un valore in un intervallo 0 to 999 BCD lasciando gli ultimi 4 bits a sinistra per la base del tempo 0,1,2,3.

Ho pensato di fare un contatore incrementato da un timer di 60 min arrivato a 25 conteggi faccio partire un timer di 15m e 30 s ed il gioco è fatto

Si',potrebbe essere una delle tante soluzioni possibili. ;)

Saluti.

Inserita:

la soluzione piu' semplice e' un counter clockato a 10.000 msec. che conta fino a 9093

oltretutto hai l'opzione se usarlo ritentivo o non ritentivo

Inserita: (modificato)
la soluzione piu' semplice e' un counter clockato a 10.000 msec. che conta fino a 9093

Piu' che semplice direi piu' conveniente, visto che maggiore e' la discriminazione della base del Set per il tempo del clock che incrementa il contatore, minore sara' l'errore tra il totale elapsed Run time ed il totale elapsed Real time.

Purtroppo 10.000 ms non possono essere caricati come tale sulla base del timer se non 10 s.

Allora 9093 x 10 s = 25h 15m 30s

Ma tuttavia per decrementare questo tempo residuo si potrebbe settare il clock a 1 secondo e quindi contare fino a 90930.

Ed ancora, visto che il tuo contatore puo' essere contenuto su 32 bits, allora clock 100 ms fino a 909300.

Bye

Modificato: da Savino
Inserita: (modificato)

assolutamente corretto l'alaternativa piu' precisa e' pero' piu' complicata in quanto lo scan time non e' un multiplo esatto di (per esempio) 1 msec

se ogni 1000 msec sommi 1 a un Dint e poni una soglia a 90.930 la precisione aumenta ma l'uso di risorse e' enormemente piu' elevato

se lo scan time fosse esatto a 10 msec la precisione sarebbe [quasi] assoluta

se lo scan time e' (per esempio) 8,74 msec nasce un imprecisione, questo vuol dire che se abbassi il tempo di clock, enfatizzi l'effetto dell'asincronia, per questo l'errore non diminuisce anzi aumenta

considera che il registro di accumulo di un timer / counter (in generale sui plc, salvo eccezioni) e' un Int, non un Dint

Modificato: da Piero Azzoni
Inserita:

Si' Piero, e' soltanto cosi' come hai apena descritto B)

Saluti.

Inserita:

Altro metodo:

OB1 fornisce in una sua variabile locale il tempo di scansione (ms) del ciclo precedente, usala per incrementare una DINT e otterrai un timer che può contare (in ms) fino a oltre 500 ore.

Purtroppo però, la precisione del timer è inversamente proporzionale alla velocità di esecuzione del ciclo plc.

Il sistema più preciso (dell’ordine dei ms su 500 ore) sarebbe quello di usare un apposito SFC (non ricordo il numero) che ti fornisce il tempo di attività del plc , memorizzando questo valore e controllandolo ciclicamente si può stabilire quanto tempo è trascorso... unica avvertenza : bisogna gestire il passaggio per lo 0 che, ogni tanto, potrebbe avvenire!

Questo sistema praticamente è quello usato nel S7-200 con le nuove funzioni implementate per le temporizzazioni a partire dalla V4 (qui ci sono un paio di SBR preconfezionate che gestiscono automaticamente anche il “rollover”).

Mauro Rubinetti
Inserita:

Grazie dei suggerimenti, credo che utilizzerò il counter clockato a 10.000 msec. che conta fino a 9093.

P.S. Per Fabio66:

Lasciamo fare a Marzullo il presentatore.............................e anche se uno ha una propria soluzione non sempre dev'essere per forza la migliore, prorio come questo caso vuole dimostrare la soluzione proposta da Savino è sicuramente più performante e anche più elegante che non la mia iniziale.

Grazie a tutti ;)

Inserita:

Dico anche la mia

La cpu ha dei bit di sistema ( molto precisi )

scegli il byte nella configurazione HW

usi un byte e ogni bit del byte ha una cadenza predefinita ( c'e' anche il secondo )

in questa maniera sei piu' preciso e non usi nessun timer

ma solo i contatori per contare minuti e ore

Ciao

Luca

Inserita: (modificato)

Salve,

Dico anche la mia

Va benissimo, per la carita' :)

La cpu ha dei bit di sistema ( molto precisi )

scegli il byte nella configurazione HW

usi un byte e ogni bit del byte ha una cadenza predefinita ( c'e' anche il secondo )

in questa maniera sei piu' preciso e non usi nessun timer

ma solo i contatori per contare minuti e ore

Ma ce ne bisogno di un clock , non solo di una base di tempo veloce.

Poi, su quale CPU. <_<

Impostare un timer con una bassa discriminazione come 1 sec oppure 100 ms va gia' bene ed e'

portabile su qualunque sistema PLC.

Saluti.

Modificato: da Savino
Inserita:

Hai ragione anche tu

ma mi capita sempre piu' spesso di lottare contro i 128 timer disponibili sulle CPU che utilizzo

quindi con il merker di clock mi ritrovo 8 bit che lavorano cosi :

Bit 7 6 5 4 3 2 1 0

Periodo (s): 2 1,6 1 0,8 0,5 0,4 0,2 0,1

Frequenza (Hz): 0,5 0,625 1 1,25 2 2,5 5 10

e questi sono gratis

poi cominci a farti dei contatori

comunque gli sono state rilevate tutte le soluzioni possibili ( tutte altrttanto valide )

con i pro e i contro

non c'e' che da scegliere

Saluti

Luca

Inserita:

Si puo addoperare anche i temporizzatori a norma IEC che sono nella biblioteca e si chiamano SFC3 (temp. a impulso prolungato), SFC4 (TON) e SFC5 (TOF) che hanno tempi che vanno superiori a 240giorni con precisione dei ms

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