Vai al contenuto
PLC Forum


Operazione Reali!


Messaggi consigliati

Inserito:

BUON GIORNO

DOPO AVER RISOLTO BUONA PARTE DEI PROBLEMI DURANTE L'ESECUZIONE DEL MIO PROGETTO ORA MI TROVO DIFRONTE A UN NUOVO PROBLEMA......

UNA VOLTA IMPORTATO IL VALORE DI HSC0 (IL NUMERO DEGLI IMPULSI DEVO FAR ESEGUIRE DELLE OPERAZIONI AL PLC PER CALCOLARE LA POSIZIONE DEL PRRACCIO:

DEVO DIVIDERE E MOLTIPLICARE IL VALORE HC0 PER DELLE VARIABILI!!!

DURANTE LA COMPILAZIONE NON SCRIVE NESSUN TIPO D'ERRORE!!! MA POI SE VADO A VEDERE LA COMPILAZIONE DEL PROGRAMMA IL BLOCCO DELLA DIVISIONE REALE DIVENTA ROSSO E NON BLU!!! SCRIVENDO IN USCITA NAN!!!

COSA VUOL DIRE ??

IL SIGNIFICATO DA GUIDA DICE CHE IL VALORE NON è VALIDO!!!

MA PERCHE SONO VADIABILI REALI PERCIO.. DOVREBBE FUNZIONARE!!!!


Luca Bettinelli
Inserita:
Regolamento PLCForum+-->
CITAZIONE(Regolamento PLCForum)

Grazie

Gianmario Pedrani
Inserita:

Prima di tutto scrivi in minuscolo (senza gridare ) seconda cosa hsc0 è un numero a 32 bit intero e non reale.... quindi prima devi salvare il valore in una variabile a 32 bit poi la trasformi in reale e da li fai le tue operazioni....

ciaoooooo

Inserita: (modificato)

scusate per il maiuscolo!!

non ci ho fatto caso !!!

è che stavo disegnano e normalmente inserisco il look per le maiuscole!!

per quanto riguarda il mio problema io ho copiato il valore di hc0 in vd8..

questo valore lo devo dividere per 4 e qui se si genera l'errore!!!!!

e non capisco a cosa è dovuto!!!

Modificato: da silvio83mn
Inserita:

ciao,

Hai usato il comando "DIV_DI" (divisione a 32 bit di numeri INTERI)oppure "DIV_R" (divisione a 32 bit di numeri REALI)? Se hai usato il primo hai fatto giusto.

Come detto da Gianmario Pedrani, il contatore utilizza numeri INTERI a 32 bit

Inserita:

per essere più preciso ho trasferito il valore di hc0 in vd0.....

poi poi ho fatto la divisione!!!

un numero intero diviso un altro numero intero non sempre da come risultato numeri interi per questo ho usato div_r!!

perchè avrei sbagliato

Inserita: (modificato)

segui le spiegazioni date da gianmario prima devi convertire da doppio intero in reale

Modificato: da puntalino
Inserita:
un numero intero diviso un altro numero intero non sempre da come risultato numeri interi per questo ho usato div_r!!

Per effettuare una divisione tra numeri reali, i numeri, appunto, devono essere reali e non interi.

Inserita:

Se ti serve anche la virgola dopo la divisione hai ragione, devi usare i numeri reali.

L'hsc ha un numero intero a 32 bit quindi, prima di dividere, devi convertirlo in reale usando il comando "DI_R". fai tutti i tuoi calcoli con numeri reali e se devi riconvertirlo in numero intero devi usare il comando "round"

Inserita:

ok avevate gagione ....

dividevo numeri interi a 32bit con operazioni reali...

comunque risolto....

questo broblema.... almeno

aprirò un altro post per spiegarmi meglio.....

grazie

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