cap4 Inserito: 23 agosto 2004 Segnala Inserito: 23 agosto 2004 salve io eseguo un blocco DIV tra VW18 e +2 il risultato lo metto in VD74, a sua volta VD74 è l'ingresso di un blocco SUB_DI insieme a VD60 e il risultato finisce in VD48.A questo punto avendo i seguenti dati cosa mi ritrovo in VD48? Perche non riesco a capire bene la storia del resto del blocco DIV!Dati:VW18 = 1VD60 = 5Grazie
rddiego Inserita: 23 agosto 2004 Segnala Inserita: 23 agosto 2004 scusa ma se fai una divisione con un dato a 16 bit e ti aspetti un risultato in virgola mobile sarà dura...cioè 1 / 2 = 0,5 ma 0,5 può essere solo un floating point 32 bit. Fai attenzione coi formati o tutti 16 bit o 32bit INT o 32bit floating. Prova a vedere se ti ho acceso una qualche lampadina...
walterword Inserita: 23 agosto 2004 Segnala Inserita: 23 agosto 2004 (modificato) condivido PIENAMENTE cio che dice fratello Diego x fratello Cap4 impara una cosa fratello :somma sempre gli stessi tipi di dato tra loro per esempio mele + mele e no mele + peree no avrai mai piu problemi di questo generei casi sono 2 :o dividi e metti il risultato in un 16 bit (word ) e perdi il resto e la risoluzione oppure converti l'intero in reale (ITD->DTR) e poi fai le tue operazioni col massimo della precisione Al limite se poi la precisione e' "troppa" sei sempr in tempo a tagliarla col trunc che ti restituisce la parte intera del reale in formato DI (doppio intero )da reale a intero la faccenda si complica un po di piu , intanto devi cintrollare che il valroe non superi la capienza del numero intero e poi al limite convertire in intero a 16 bit con un afunzione che farai manualmente perche la libreria Step7 non dispone di funzione da reale a intero la funzione sara la conversione da reale a doppio intero e poi dovrai copiare sul tuo intero i 2 byte piu significativi di tale DI (visto che siemens inverte le word nella dword )mascherare quindi con DW 16#FFFF8000 e verificare col salto SPZ se il risultato e' 0 altrimenti vuol dire che fuori dalla portata dell'intero a 16 bit non so se ho reso l'idea?ciaowalterp.s. non usare il TRUNC ma il ROUND , aumenti cosi la precisione approssimata per eccesso o difetto della meta' Modificato: 23 agosto 2004 da walterword
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