# WinCC V7 Dezimalstelle verschieben



## golfsiew (5 März 2010)

Hallo, 
ich möchte z.B. den Wert der Ausentemperatur von einer S7 317 einlesen.
Dieser Wert steht im DB 1 Wort 20 als 47 für 4,7 °C.
Wie kann ich den Wert in WinCC umrechnen, das z.B. für die 47 eine 4,7 erscheint??? Habe schon ein Script geschrieben in dem ich die 47 durch 10 teile. Da kommt dann 4 raus. Die Nachkommastelle wurde weggelassen. Bei einer negative Zahl kommt 0 raus.

Vielen Dank im vorraus.


----------



## Larry Laffer (5 März 2010)

Hallo,
ich weiß jetzt nicht, on WinCC eine "lineare Skalierung" kann. Das wäre eventuell ein Ansatz.
Ansonsten solltest du bei deiner Division den Variablentyp berücksichtigen. Wenn deine 47 ein INT sind (und das nehme ich stark an), dann ergibt das bei der Division durch 10 dann 4. Der Variablentyp für den umgerechneten Wert muß dann natürlich ein REAL sein. Dann funktioniert das auch in dem Script.
Diese Division mit der anschließenden Übermittlung des umgerechneten Wertes kannst du natürlich genausogut in der SPS machen - vielleicht hättest du dann den Fehler auch schneller bemerkt ... 

Gruß
LL


----------



## golfsiew (5 März 2010)

ok, die Zahl ist im INT Format als vorzeichenbehaftetes 16bit Zahl.
ich bräuchte also REAL vorzeichenbehaftete 32 bit Zahl mit Nachkommastelle. Es in der SPS zu ändern ist kein Problem. Ich Visualisiere mit WinCC eine Gebäudeleittechnik, wo ich mir die Daten von einer Fremd SPS hole und wollte deswegen nicht auf diese irgendetwas hin und her rechnen. Probiere aber das mit dem skalieren. 
Vielen Dank...schönes Wochenende.


----------



## Thomas_v2.1 (5 März 2010)

Hi,
mit der Skalierung und Nachkommastelle ist bei WinCC etwas konfus.

Du legst eine Variable vom Typ 32-Bit Float an.
Dann gibt es bei Formatanpassung eine Möglichkeit wie "FloatToWord", ich kann das im Moment nicht nachschauen.
Danach noch die Skalierung aktivieren, und bei Prozess z.B. 0-100 und bei Variable 0-10 einstellen. Somit hast du im WinCC aus deiner SPS Integervariable eine Gleitpunktvariable mit einer Nachkommastelle im WinCC gemacht

Gruß
Thomas


----------



## virtualdirk (6 März 2010)

> Habe schon ein Script geschrieben in dem ich die 47 durch 10 teile. Da kommt dann 4 raus. Die Nachkommastelle wurde weggelassen. Bei einer negative Zahl kommt 0 raus.


 
Hallo,

hast du mal versucht in diesem Script statt durch 10 durch 10.0 zu teilen?
Also ungefähr so

float xy = 0;
xy = intvariable / 10.0;

Sollte eigentlich funktionieren.

Gruß Dirk


----------



## Kai (6 März 2010)

golfsiew schrieb:


> ich möchte z.B. den Wert der Ausentemperatur von einer S7 317 einlesen.
> Dieser Wert steht im DB 1 Wort 20 als 47 für 4,7 °C.
> Wie kann ich den Wert in WinCC umrechnen, das z.B. für die 47 eine 4,7 erscheint???


 
Siehe die folgenden Siemens-FAQ:



> *WORD-Prozesswert mit Nachkommastellen in WinCC darstellen*
> 
> *FRAGE:*
> Wie kann ich einen WORD-Wert aus der CPU in WinCC mit zwei Nachkommastellen darstellen?
> ...


ID9396564 WORD-Prozesswert mit Nachkommastellen in WinCC darstellen

Gruß Kai


----------



## Bender25 (8 März 2010)

wichtig wäre vieleicht noch zu sagen das im EA Feld die Nachkommastelle auch eingetragen ist z.B. 99,99 bzw s99,99 fürs vorzeichen


----------



## golfsiew (10 März 2010)

Habe den Tipp von Kai ausprobiert und es funzst.

Vielen Dank


----------

