simofanti Inserito: 13 giugno 2009 Segnala Share Inserito: 13 giugno 2009 ciao ragazzi, ho finito i temposizzatori di una cpu s7-300, so che esiste un blocco che fa da temporizzatore ritardo all'eccitazone....qualcono sa dirmi quale è???? grazie Link al commento Condividi su altri siti More sharing options...
azzolini Inserita: 13 giugno 2009 Segnala Share Inserita: 13 giugno 2009 Ciao buongiorno,io personalmente quando non dispongo piu di timer,un uso il blocco che dici tu ( tanto vero che non so neanche come si chiama e se esiste)ma attraverso l'utilizzo dei merker di clock incremento una word di una db poi la comparo con: o valore fisso o valore di un'altra word della stessa db o di un'altra db,in questo modo il tuo numero di timer (in queto caso) e illimitato..ciaobuon lavoroArnaldo Link al commento Condividi su altri siti More sharing options...
batta Inserita: 13 giugno 2009 Segnala Share Inserita: 13 giugno 2009 L'argomento è già stato trattato parecchie volte. Perché la funzione "cerca" è così poco (o male) usata?Avresti sicuramente trovato QUESTO, che potrebbe fare al caso tuo.Se invece vuoi utilizzare le funzioni di sistema del Simatic, apri la biblioteca "Standard Library" --> "System Function Block" e trovi SFB4 (TON) e SFB5 (TOF).Anche a questo ci si poteva arrivare soltanto aprendo Step7 e con un po' di buona volontà.Io sono ben lontano dal conoscere a memoria tutti i blocchi disponibili nella varie biblioteche. Se ho bisogno di qualcosa, cerco. Le funzioni sono suddivise con un certo criterio e, di solito, la ricerca dà buoni frutti con sforzo limitato. Link al commento Condividi su altri siti More sharing options...
simofanti Inserita: 13 giugno 2009 Autore Segnala Share Inserita: 13 giugno 2009 IL PROBLEMA E CHE NA DEVO GENERARE CIRCA 50....NON POSSO CREARE 50 DB DI ISTANZA....COME SI FA???? CIAO GRAZIE Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 13 giugno 2009 Segnala Share Inserita: 13 giugno 2009 Link al commento Condividi su altri siti More sharing options...
batta Inserita: 13 giugno 2009 Segnala Share Inserita: 13 giugno 2009 (modificato) IL PROBLEMA E CHE NA DEVO GENERARE CIRCA 50....NON POSSO CREARE 50 DB DI ISTANZA....COME SI FA???? CIAO GRAZIEPrima cosa: scrivere in maiuscolo nei forum equivale ad urlare. Non mi pare proprio ci sia il motivo per alzare la voce Tu hai chiesto cosa potevi utilizzare al posto dei normali timer, e mi pare di averti dato risposta.Se poi non vuoi creare 50DB, questo è un'altra questione.In ogni caso, sembra che tu non ti sia nemmeno preso la briga di guardare cosa trovavi cliccando sul link al mio post con il download di "Esempio Timer.zip".Se l'avessi fatto, ti saresti accorto che quella funzione non ha bisogno di DB. Tutto ciò di cui necessita è una variabile INT per ogni timer e di un merker di clock (o richiamo in OB a tempo) che può anche essere unico per tutti.Altra soluzione (ma la funzione è un po' più pesante della mia), la trovi (e torniamo al discorso che spesso basterebbe cercare) sempre nelle librerie Siemens in "Standard Library" --> "TI-S7 Converting Blocks" --> FC80 (TONR). Modificato: 13 giugno 2009 da batta Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 14 giugno 2009 Segnala Share Inserita: 14 giugno 2009 Ho messo quelle faccine anche perchè la discussione che hai linkato non l'ha proprio letta!Lì si parla anche del problema delle molteplici DB ! Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 17 luglio 2009 Segnala Share Inserita: 17 luglio 2009 costruiscitelo tu .Prendi dall OB1 la temporanea che ti da l'ultimo tempo di ciclo scansione , lo trasformi da intero a reale Poi usi lo scan time per incrementare i tuoi accumulatori di timer , in base alle condizioni di strart o reset .Il timer sarà sincrono e l'errore non supera il tempo di scansione stesso Poi esiste anche una funzione tick che permette di leggere un timer di sistema , ma comunque la musica e' medesima Link al commento Condividi su altri siti More sharing options...
Gapo Inserita: 21 luglio 2009 Segnala Share Inserita: 21 luglio 2009 IL PROBLEMA E CHE NA DEVO GENERARE CIRCA 50....NON POSSO CREARE 50 DB DI ISTANZA....COME SI FA???? CIAO GRAZIEInfatti non devi generare 50 DB... basta una DB che li contenga tutti...Inoltre, non ci vuole molto ingegno ad utilizzare anche altri metodi: se sono timer "grossolani" che devono contare secondi (e non decimi o centesimi) puoi crearti dei clock con l'orologio di sistema e utilizzare i contatori con un impulso di 1 secondo; con lo stesso impulso puoi utilizzare anche delle semplici merker word, se non degli interi memorizzati in una DB.ciao Link al commento Condividi su altri siti More sharing options...
Gne Inserita: 8 agosto 2009 Segnala Share Inserita: 8 agosto 2009 Prova con questo (e' un sorgente)FUNCTION "TON" : VOIDTITLE = TIMER ON DELAYAUTHOR : NAME : S_EVERZVERSION : 1.0VAR_INPUT TMR_EN : BOOL ; // Enables timer to accumulate time PresetVal : DINT ; // Preset value ScanTime : INT ; // OB scan time for previous cycleEND_VARVAR_OUTPUT Q : BOOL ; // Set to 1 if timer has timed outEND_VARVAR_IN_OUT ElapsTim : DINT ; // Elapsed timeEND_VARBEGINNETWORKTITLE =//// SET ; U #TMR_EN; SPB RESE; L 0; T #ElapsTim; RESE: NOP 0; //* L #ElapsTim; L #PresetVal; <D ; SPBN SUM; CLR ; O #TMR_EN; SPBN SUM; L #ScanTime; L #ElapsTim; +D ; T #ElapsTim; SUM: NOP 0; //* U( ; L #ElapsTim; L #PresetVal; >=D ; ) ; U #TMR_EN; = #Q; SAVE ; END_FUNCTION 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