VINZENT Inserito: 11 febbraio 2011 Segnala Share Inserito: 11 febbraio 2011 Gentilissimi,non sono un grande esperto sulla famiglia 300.Nel mettere nel mio programma un temporizzatore tipo T5 trovo alcuni problemi del tipo:-devo perforsa impostare un tempo fisso tipo S5time#2s (ma se volessi mettere una variabile tipo una MW alla quale cambia il sua volore in riferimento ad un potenziometro..perche' i valori bassi me li prende e quelli piu' alti no?)-inoltre dovrei fare un confronto tra in temporizzatore T5 quando viene attivato e una variabile MW...ma noto che il valore del temporizzatore non esperesso in incremento ma in decremento..e cioe' mi fa' vedere il tempo che rimane e non quello che scorre..e per tanto trovo problemi nel far fare un confronto.-per ultimo ho un op177 che visualizzo dei pezzi..ma quando accendo e spengo la macchina perde il dato..in quale area di memoria devo appoggiare il contapezzi nella mia cpu per non perdere il valore?spero di non chiedere troppo.saluti. Link al commento Condividi su altri siti More sharing options...
84paolo Inserita: 11 febbraio 2011 Segnala Share Inserita: 11 febbraio 2011 per i dati ritentivi devi crearti una db e inserire i dati all'interno.per invece il valore del timer, basta che sulla stessa db aggiungi una variabile tipo s5time e poi sul timer scriviu condizionil dbxx.dbwxxse t0se vuoi la metti sul pannello, tieni conto che devi fare la scalatura di 1000 se vuoi vedere i secondi Link al commento Condividi su altri siti More sharing options...
VINZENT Inserita: 11 febbraio 2011 Autore Segnala Share Inserita: 11 febbraio 2011 non mi e' molto chiaro sul discorso del timer.io ci scrivo la sintassi che deve contare fino a 5 secondi...ma poi per cambiare lo stasso valore e visualizzare il valore di conteggio in incremento? Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 11 febbraio 2011 Segnala Share Inserita: 11 febbraio 2011 L'area M di default non è ritenitiva, volendo puoi renderla ritenitiva intervenendo nella configurazione dell'Hardware, ma non ti conviene.Segui il consiglio di 84Paolo e crea una o più DB (blocchi dati)All'interno di queste DB puoi aggiungere tutte le variabili che vuoi.Per esempio:- Crea la DB10 e dagli un nome simbolico "Dati"- Aggiungi una variabile di tipo S5TIME con nome "Set_T5"- Aggiungi una variabile di tipo DINT con nome "Contapezzi"A questo punto se in qualsiasi blocco del tuo programma richiami la prima word (DB1.DBW0) non appena confermi ti apparirà il nome simbolico "Dati".Set_T5, se richiami la seconda variabile (DB1.DBD2) ti apparirà il nome simbolico "Dati".Contapezzi.Nel blocchetto del timer T5 al posto di scrivere "S5time#2s" scrivi DB1.DBW0, oppure "Dati".Set_T5, nota bene che questa word ha il valore 0 (a meno che non indichi un valore iniziale in fase di creazione della DB).L'impostazione del valore la puoi fare da pannello operatore puntando a quella word, oppure puoi farla tramite istruzioni AWL o KOP.Tutto questo solo per cercare di spiegati meglio come funziona, per il problema dell'incremento invece dal mio punto di vista è più conveniente costruirsi un temporizzatore che fare calcoli sul conteggio di un temporizzatore S5 (il conteggio e il setpoint sono codificati in BCD dove la prima cifra è la base dei tempi, non puoi fare delle pure sottrazioni). Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 11 febbraio 2011 Segnala Share Inserita: 11 febbraio 2011 Dimenticavo:ma se volessi mettere una variabile tipo una MW alla quale cambia il sua volore in riferimento ad un potenziometro..perche' i valori bassi me li prende e quelli piu' alti no?Per questa ragione:(il conteggio e il setpoint sono codificati in BCD dove la prima cifra è la base dei tempiBase tempi = 0 : centesimi di secondoBase tempi = 1 : decimi di secondoBase tempi = 2 : secondiBase tempi = 3 : decine di secondiLe altre 3 cifre BCD sono il valore di conteggio da 0 a 999 Link al commento Condividi su altri siti More sharing options...
batta Inserita: 11 febbraio 2011 Segnala Share Inserita: 11 febbraio 2011 Per passare il valore di preset a un timer S5 con una variabile, il formato deve essere il seguente:bit da 0 a 11: contiene il valore di preset in BCD (quindi, da 0 a 999)bit 12 e 13: definiscono la base tempi. 00 = 10ms; 01 = 100ms; 10 = 1s; 11 = 10s.bit 14 e 15: riservatiLo stesso formato vale per il valore residuo.Nel caso di impostazione del valore da pannello operatore Siemens, devi dichiarare la variabile nel DB come S5Time. Questa variabile occupa 2 byte, ma il valore che tu andrai a scrivere sul pannello operatore sarà in millisecondi su 4 byte. Il pannello operatore si occupa però in automatico della conversione da millisecondi al formato S5Time.Esistono però anche altri timer. Per esempio, SFB4 "TON" e SFB5 "TOF" (li trovi nelle librerie Siemens).Con questi timer si imposta il preset in formato TIME (millisecondi) e, sempre in formato TIME, danno in uscita il tempo trascorso. 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