Vai al contenuto
PLC Forum


Conversione di variabile Real 32 bit in variabile Int 16 bit.


Giancarlo Foresi Noia

Messaggi consigliati

Giancarlo Foresi Noia

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. :)

Link al commento
Condividi su altri siti


In SCL hai l'istruzione "REAL_TO_INT" , dovrai fare attenzione ai fondoscala dell'INT che sono -32768 ... +32767

 

 

Modificato: da beppeconti
Link al commento
Condividi su altri siti

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) ;

Link al commento
Condividi su altri siti

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: da Cialtrone
Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...