Mauro Rubinetti Inserito: 18 febbraio 2006 Segnala Inserito: 18 febbraio 2006 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.
Fabio66 Inserita: 18 febbraio 2006 Segnala Inserita: 18 febbraio 2006 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
Savino Inserita: 18 febbraio 2006 Segnala Inserita: 18 febbraio 2006 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 secondiA 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.
Piero Azzoni Inserita: 18 febbraio 2006 Segnala Inserita: 18 febbraio 2006 la soluzione piu' semplice e' un counter clockato a 10.000 msec. che conta fino a 9093oltretutto hai l'opzione se usarlo ritentivo o non ritentivo
Savino Inserita: 18 febbraio 2006 Segnala Inserita: 18 febbraio 2006 (modificato) la soluzione piu' semplice e' un counter clockato a 10.000 msec. che conta fino a 9093Piu' 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: 18 febbraio 2006 da Savino
Piero Azzoni Inserita: 18 febbraio 2006 Segnala Inserita: 18 febbraio 2006 (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 msecse 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' elevatose lo scan time fosse esatto a 10 msec la precisione sarebbe [quasi] assolutase 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 aumentaconsidera che il registro di accumulo di un timer / counter (in generale sui plc, salvo eccezioni) e' un Int, non un Dint Modificato: 18 febbraio 2006 da Piero Azzoni
Savino Inserita: 18 febbraio 2006 Segnala Inserita: 18 febbraio 2006 Si' Piero, e' soltanto cosi' come hai apena descritto Saluti.
JumpMan Inserita: 19 febbraio 2006 Segnala Inserita: 19 febbraio 2006 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: 20 febbraio 2006 Autore Segnala Inserita: 20 febbraio 2006 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
Luca Bab Inserita: 20 febbraio 2006 Segnala Inserita: 20 febbraio 2006 Dico anche la miaLa cpu ha dei bit di sistema ( molto precisi )scegli il byte nella configurazione HWusi 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 timerma solo i contatori per contare minuti e oreCiaoLuca
Savino Inserita: 20 febbraio 2006 Segnala Inserita: 20 febbraio 2006 (modificato) Salve,Dico anche la miaVa benissimo, per la carita' La cpu ha dei bit di sistema ( molto precisi )scegli il byte nella configurazione HWusi 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 timerma solo i contatori per contare minuti e oreMa 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: 20 febbraio 2006 da Savino
Luca Bab Inserita: 21 febbraio 2006 Segnala Inserita: 21 febbraio 2006 Hai ragione anche tuma mi capita sempre piu' spesso di lottare contro i 128 timer disponibili sulle CPU che utilizzoquindi con il merker di clock mi ritrovo 8 bit che lavorano cosi :Bit 7 6 5 4 3 2 1 0Periodo (s): 2 1,6 1 0,8 0,5 0,4 0,2 0,1Frequenza (Hz): 0,5 0,625 1 1,25 2 2,5 5 10e questi sono gratispoi cominci a farti dei contatoricomunque gli sono state rilevate tutte le soluzioni possibili ( tutte altrttanto valide )con i pro e i contronon c'e' che da scegliereSalutiLuca
ar.mont Inserita: 25 febbraio 2006 Segnala Inserita: 25 febbraio 2006 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
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