Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




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


Messaggi consigliati

Giancarlo Foresi Noia
Inserito:

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


Inserita: (modificato)

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

 

 

Modificato: da beppeconti
Giancarlo Foresi Noia
Inserita:

Grazie Beppe, sono un principiante, quando hai tempo puoi farmi un'esempio?

Inserita:

in AWL  scrivi

 

TRUNC oppure RND

ed hai in Accu 1 il numero inter a 32 bit

 

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

Inserita: (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: da Cialtrone
Inserita:
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.

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