# Umwandlung eines Sensorwertes von INT in REAL



## dmarco (25 Oktober 2012)

Hallo,

ich verwende einen Ultraschallsensor, der mit 16 Bit arbeitet, also Abstandswerte von 0-32767 liefert. Um diese Werte in einen Abstand in mm umzuwandeln habe ich folgende Formel erstellt, jedoch ist der Wert für die Distanz ein INT und ich hätte gerne einen REAL:

Distanz:= (Abstand + 7000)/201;

Distanz habe ich als REAL deklariert und soll der Abstandswert in mm sein
Abstand ist der Sensorwert von 0-32767

ich habe auch schon folgenden Versuch ohne Erfolg ausprobiert, aber Distanz ist weiterhin ganzzahlig:

Distanz:= INT_TO_REAL((Abstand + 7000)/201);

Vielen Dank schon einmal für die Antworten


----------



## Ralle (25 Oktober 2012)

Erst die INT in Real wandeln und dann die Berechnungen durchführen. Wenn du mit INT rechnest, wird natürlich kein Wert hinter dem Komma stehen.


----------



## PN/DP (25 Oktober 2012)

Hallo,

wenn Du in Ganzzahl rechnest, dann erhältst Du natürlich keine Nachkommastellen. Du mußt schon in REAL rechnen:

```
Distanz:= (INT_TO_REAL(Abstand) + 7000.0)/201.0;
```

Harald


----------



## MSB (25 Oktober 2012)

Was ist nun also der Messwert,  und was der berechnete Wert?
Rein laut obiger Formel ist Distanz der zu berechnende, und Abstand der Messwert, was aber irgendwie nich zu deinem Text passen will.

Mfg
Manuel


----------



## Fx64 (25 Oktober 2012)

Vielleicht mit einem Real-Typ rechnen? Abstand -> LREAL oder 

Distanz:= ((Abstand + 7000.0)/201); ?

Viele Grüße


----------



## dmarco (25 Oktober 2012)

Danke,

ich habs jetzt so ausprobiert wie PN/DP es oben gesagt hat und es funktioniert
Und Sorry, Distanz ist die zu berechnende Größe


----------

