smsmsms Inserito: 4 gennaio 2005 Segnala Inserito: 4 gennaio 2005 Tramite un OP7 l'operatore inserisce dei tempi (es. 100 = 100 msec ecc...)Ora, mi interesserebbe convertire tale valore intero in S5T per associarlo ad un timer.Ho provato a definire il DB su cui vado a scrivere di tipo S5T e da pannello (utilizzando il simbolico)mi crea una variabile di tipo timer ma quando scrivo ottengo un valore non conforme a quello da me atteso.Qualcuno ha qualche idea? La conversione deve essere effettuata sul pannello o sul plc? Sto utilizzando una 314e non ho trovato alcun FC/FB di sistema per convertire un valore INT in S5T?Grazie
SuperD Inserita: 4 gennaio 2005 Segnala Inserita: 4 gennaio 2005 Ti consiglio di guardare il manuale di programmazione di S7, e noterai di come è composto la variabile S5T, mi sembra che i primi 12 bit sono il valore del timer in bcd, gli ultimi due bit indicano il formato del tempo. Comunque per essere sicuro di questo guarda nel manualeCiao
jumpier Inserita: 4 gennaio 2005 Segnala Inserita: 4 gennaio 2005 Prova a guardare questa discussionehttp://www.PLCForum.it/forums/index.php?sh...esso+analogico#Ciao
Matteo Montanari Inserita: 4 gennaio 2005 Segnala Inserita: 4 gennaio 2005 (modificato) Ho provato a definire il DB su cui vado a scrivere di tipo S5T e da pannello (utilizzando il simbolico)mi crea una variabile di tipo timer ma quando scrivo ottengo un valore non conforme a quello da me atteso.dipende dal valore che ti attendi tu? e diepnde se il valore che ti attendi è quello che "gusta" anche al PLC.la procedura che hai descritto è corretta e normalmente si utilizza quella per scrivere un valore al timer. conta che la variabile è "definita" in millisecondi.in alternativa utilizza quello che è scitto nel post che ti hanno suggerito:L valore tempo (INT dal tuo pannello) ITB // converti intero in BCDL w#16#2000 // base tempo in secondi (in questo caso)( oppure L w#16#0000 // base tempo in secondi * 0.01 (centesimi di secono)L w#16#1000 // base tempo in secondi * 0.1 (decimi di secondo)L w#16#2000 // base tempo in secondi * 1 (secondi)L w#16#3000 // base tempo in secondi * 10 i timer non hanno una risoluzione inferiore ai 10 millesimi di secondo)OW // esegui l'OR di wordT preset temporizzatore // otterrai il tuo preset Modificato: 4 gennaio 2005 da keosmm
oiuytr Inserita: 4 gennaio 2005 Segnala Inserita: 4 gennaio 2005 Se definisci la variabile come "TIMER" anziche' INT, ci pensa l'OP7 a scrivere la variabile in modo corretto. La cosa che non poi cambiare e' la rappresentazione sul display, che e' sempre in secondi; per immettere 100ms devi scrivere 0.1, per immettere 1 ora deviscrivere 3600
smsmsms Inserita: 5 gennaio 2005 Autore Segnala Inserita: 5 gennaio 2005 Grazie per le info. Ho guardato il links di jumpier e seguito i suggerimenti postati dopo ed ho risolto.Il DB lo lascio in INT e poi mi faccio la conversione in BCD.Grazie e ciao
dakka Inserita: 31 agosto 2006 Segnala Inserita: 31 agosto 2006 Scusate l'ignoranza,mi trovo nella condizione di visualizzare su un OP7 il valore di un tempo s5t da un acpu s7-315.Che tipo di conversione formato devo utilizzare?Avevo pensato di prendere il valore del s5t e fare una or ex a word x rimuovere il valore base tempi e poter visualizzare almeno il numero da 32nnn a zero che scorre.Qualcuno mi puo' dare qualche dritta?Grazie in anticipo.
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