Giancarlo Foresi Noia Inserito: 20 agosto 2020 Segnala Inserito: 20 agosto 2020 CPU 319-3 e Step7 versione 5.6. Come posso convertire una variabile Real 32 bit in variabile Int 16 bit? Potrebbe essermi utile sia in SCL che in KOP. Ringraziamenti anticipati, e buon lavoro a tutti.
beppeconti Inserita: 20 agosto 2020 Segnala Inserita: 20 agosto 2020 (modificato) In SCL hai l'istruzione "REAL_TO_INT" , dovrai fare attenzione ai fondoscala dell'INT che sono -32768 ... +32767 Modificato: 20 agosto 2020 da beppeconti
Giancarlo Foresi Noia Inserita: 20 agosto 2020 Autore Segnala Inserita: 20 agosto 2020 Grazie Beppe, sono un principiante, quando hai tempo puoi farmi un'esempio?
STEU Inserita: 20 agosto 2020 Segnala Inserita: 20 agosto 2020 in AWL scrivi TRUNC oppure RND ed hai in Accu 1 il numero inter a 32 bit
beppeconti Inserita: 21 agosto 2020 Segnala Inserita: 21 agosto 2020 19 ore fa, Giancarlo Foresi Noia ha scritto: Grazie Beppe, sono un principiante, quando hai tempo puoi farmi un'esempio? Var1 := REAL_TO_INT(Var2) ;
Cialtrone Inserita: 21 agosto 2020 Segnala Inserita: 21 agosto 2020 (modificato) L DB123.DBD0 (VARIABILE REAL) RND (ARROTONDA, ALTRIMENTI PUOI USARE "TRUNC" CHE TOGLIE I DECIMALI) T DB123.DBD4 (DOPPIO INTERO) L DB123.DBW6 (PARTE DELLA DOPPIA PAROLA PRECEDENTE CHE PUOI USARE COME INTERO, SE SEI SICURO DI NON ECCEDERE LA WORD) T MW QUELLOCHETIPARE io ho sempre visto fare così col 300, anche con S5, sono poche righe di AWL. Scusate il maiuscolo. Modificato: 21 agosto 2020 da Cialtrone
batta Inserita: 21 agosto 2020 Segnala Inserita: 21 agosto 2020 5 ore fa, Cialtrone ha scritto: T DB123.DBD4 (DOPPIO INTERO) L DB123.DBW6 (PARTE DELLA DOPPIA PAROLA PRECEDENTE CHE PUOI USARE COME INTERO, SE SEI SICURO DI NON ECCEDERE LA WORD) Si può anche scrivere semplicemente: L DB123.DBD0 (VARIABILE REAL) RND (ARROTONDA, ALTRIMENTI PUOI USARE "TRUNC" CHE TOGLIE I DECIMALI) T DB123.DBW4 Il risultato dell'operazione RND ( o TRUNC) viene messo nell'accumulatore, che è a 32 bit. Trasferendo l'accumulatore in una variabile a 16 bit, vengono trasferiti solo i bit da 0 a 15. Ovviamente, il valore in REAL deve essere compreso tra -32768 e +32767, ma questo vale anche con l'appoggio sulla DWord.
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