Vai al contenuto
PLC Forum


Divisioni E Sottrazioni


Messaggi consigliati

Inserito:

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 = 1

VD60 = 5

Grazie


Inserita:

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

Inserita: (modificato)

condivido PIENAMENTE cio che dice fratello Diego B)

x fratello Cap4

impara una cosa fratello :

somma sempre gli stessi tipi di dato tra loro per esempio mele + mele e no mele + pere

e no avrai mai piu problemi di questo genere

i 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?

ciao

walter

p.s. non usare il TRUNC ma il ROUND , aumenti cosi la precisione approssimata per eccesso o difetto della meta'

Modificato: da walterword

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