mrdav83 Inserito: 14 maggio 2009 Segnala Inserito: 14 maggio 2009 Buongiorno a tutti! Dato che non riesco a trovarla da nessuna parte, volevo sapere se sapevate se in Step7 (AWL/KOP/FUP) esiste una funzione che trasforma una variabile di tipo REAL in una di tipo TIME.Per ora sono riuscito a trovarne solo una che trasforma INT in S5TIME (e da li poi lo trasformerei in TIME senza problemi), ma quella è adatta solo per tempi "non cosi accurati", dell'ordine dei secondi insomma. Il problema sorge quando ho ad esempio 4,5 secondi...Info su PLC: CPU414-4HThanks a lot!!!Dave
Matteo Montanari Inserita: 14 maggio 2009 Segnala Inserita: 14 maggio 2009 (modificato) Nel manuale di sistema viene riportato quanto segue:Il tipo di dati TIME viene memorizzato quale numero intero con segno in millisecondi col formato di complemento a due.di conseguenza dovresti convertire il tuo valore in virgola mobile (real) in doppio intero ed eseguire le operazioni necessarie per portare il valore (reale) in millisecondi.per il PLC quel valore è un doppio intero, solamente se utilizzi diversi tipi di visualizzazione (necessari a Noi per capire di cosa si tratta) lo stesso valore numerico assume significati diversi.il codice più semplice per fare quello richiesto è il seguente: L MD 0 L 1.000000e+003 *R TRUNC T MD 4dove MD0 è il valore in virgola mobile espresso in secondi esempio 4.5sil risultato MD4 è il valore "TIME" (o "TEMPO" ed equivale a 4500 -> quindi 4s500ms. Modificato: 14 maggio 2009 da Matteo Montanari
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