# Real zahl in INT umwandeln



## bacardischmal (20 März 2009)

HAllo,
ich habe hier eine Profibus FMS Ankoplung an ein Leitsystem. Dort findet der Datenaustausch über Datenbausteine statt.

Ich schicke von der Leitstelle an die SPS Sollwerte ab (z.B. 0-100%) diese werden als Real zahlen (Floating Point) mit 4Byte übertragen sobald ich diesen Wert im DB stehn habe möchte ich aber eine Rückmeldung bekommen das dieser Wert angekommen ist, diese Rückmeldung muss aber jetzt im Intagerformat mit 2Byte vorliegen (0-27647). Gibt es da eine möglichkeit die Werte zu skallieren?

Gruß
bacardi


----------



## Mangokind (20 März 2009)

REAL zur Ganzzahl runden? z.b. mit RND oder TRUNC, durch SRD16 den wert im akku (sollte er größer, als 2^16 sein) runden durch abschneiden und das ergebnis in nem integer speichern und diese zahl dann ggf. noch mit dem maximalwert skalieren?

oder so in der art


----------



## Astralavista (20 März 2009)

Sucher mal in der Bibliothek nach dem Baustein "Scale"
Der erfüllt genau das was du suchst.


----------



## JesperMP (20 März 2009)

FC106 UNSCALE ist was Du suchst.
FC105 SCALE nimmt ein INT und wandelt es in ein REAL.


----------



## Astralavista (20 März 2009)

Richtig ... sorry!
Habe da zu schnell geschrieben!


----------



## bacardischmal (20 März 2009)

Hallo,
danke für die schnelle Antwort, werde es am Montag gleich mal testen. Hätte da noch was bei Profibus fms gehn doch nur 76 Strukturelemente (nennt man das so?) bzw wie muss ich das verstehen also 76einträge im DB?
oder 76 x 2 oder 4 Byte?


----------

