Normierung und Datenwörter.

Tigerkroete

Level-1
Beiträge
245
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute.
Ein Analogausgang soll angesteuert werden.
Der Maschinenbediener kann Werte von 0-100 (%) in sein Eingabefeld im Touchpanel (TP 177A WinCC Flexible) eingeben, diese werden dann in einem Datenwort gespeichert.

Die Normierung würde ich dann so machen:
Code:
L   DB1.DBW0    //Bedienerwert im Datenwort
L   100
/R
L   27648
*R
T   PAW 288

Ich denke und hoffe, dass das soweit richtig ist.

Meine Frage ist mehr, wie mein eingegebener Zahlenwert im Touchpanel im Datenwort gespeichert wird.
Der Bediener gibt ja einen Dezimalwert ein (0-100) und wird nun dieser Dezimalwert als Hexzahl interpretiert ins Datenwort gelesen?
Falls ja, ist das ein Problem? Wie kann ich es ggf. ändern? Wie würdet Ihr es machen?

Vielen Dank und viele Grüße,
Tigerkroete
 
Also pauschal würde ich den Bediener den Wert als REAL eingeben lassen,
und dann den FC106 (aus der StdLib) benutzen.


Wenn du es aber schon so machen willst dann muss deine Rechnung so sein:

L DB1.DBW0
DTR
L 276.48
*R
Edit: RND
T PAW288


Wie der Zahlenwert in der SPS interpretiert ist egal, jeder Zahlenwert ist ja nur irgendein Bitmuster welches sich als HEX oder DEZ darstellen lässt.

Mfg
Manuel
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Kommt drauf an, wie du die Nachkommastellen berücksichtigen willst (Rundungsfehler). Grundsätzlich ist dein Ansatz OK.

Bei MSB wird ein REAL-Wert auf den Ausgang geschrieben, das Signal muss auf irgendeine Art und Weise auf 32Bit Int gewandelt werden. Z.B. RND


pt
 
Anscheinden denke ich viel zu kompliziert.
Habe ich das jetzt so richtig verstanden, dass es nach meiner Weise zwar geht, aber es zu Rundungsfehlern kommt, wenn ich durch den Befehl DTR den Wert nicht real mache?

Bin grad ganz durcheinander. Wenn mein Datenwort erstmal im Hex-Format vorliegt, dann darf ich doch nicht einfach durch 100 (dezimal) teilen?!

Sorry, aber kriegs nicht ganz auf die Reihe.
 
OK, ich habe auch nicht richtig hingeschaut

Angenommen Bediener gibt 2% Soll vor

2 / 100 = 0 (da INT)

Also besser in REAL rechnen.

Ob du in HEX oder nicht rechnest, gibst du ja vor Bsp. W#16#12 = HEX


pt
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok ich gebe es vor, aber es würde so oder so richtig gerechnet?

Und noch eine dumme Frage:
Was muss ich statt W#16#2 eingeben, damit ich dezimal rechne?

Vielen Dank,
Tigerkroete
 
Was würdest Du mir denn Raten? Momentan stehen meine Datenwörter aud "Word". Was soll ich für diesen Fall am ehesten benutzen?

Vielen Dank,
Tigerkroete
 
Zuviel Werbung?
-> Hier kostenlos registrieren
das musst du schon selbst entscheiden. kommt drauf an wie genau du das haben willst. vorteil bei real wäre, dass der bediener auch 2,5% eingeben könnte.

wenn du mit int arbeitest, multiplzierst du den wert mit 276. das ist eine abweichung von 0,174%

L wert
L 276
*I
T PAW

für real, so wie msb das geschrieben hat
 
Zuletzt bearbeitet:
Zurück
Oben