Mittelwertberechnung

SUZI

Level-1
Beiträge
98
Reaktionspunkte
6
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallole,
im Prinzip ganz einfach, doch habe ich ein Formatierungsproblem:
Mein Messwert, Summenwert und Mittelwert sind jeweils Realzahlen,
der Stückzähler ist ein int.
Die Berechnung soll in einem WinCC Flexible Script wie folgt stattfinden (ist noch einiges drum herum) :

Wie kann ich den Teilezähler Q3 ("Q3_TEILE") innerhalb des Skriptes in eine Real-Zahl wandeln?
Dim IVar_00,IVar_01,IVar_02,IVar_03

'Mittelwertberechnung
IVar_00 = SmartTags("Q3_MWE") ' MITTELWERT Format REAL(Double)
IVar_01 = SmartTags("Q3_SUMME") ' SUMMENWERT Format REAL(Double)
IVar_02 = SmartTags("Q3_MESS") ' MESSWERT Format REAL(Double)
IVar_03 = SmartTags("Q3_TEILE") ' STUECKZAHL FORMAT INT

IVar_01 = IVar_01 + IVar_02 ' akt. Summe Mittelwert = akt. Summe Mittelwert + EINZELWERT
IVar_00 = IVar_01 / IVar_03 ' akt. Summe Mittelwert = akt. Summe Mittelwert / Anzahl
SmartTags("Q3_MWE") = IVar_00
SmartTags("Q3_SUMME") = IVar_01


Kennt jemand eine Abhilfe ?
 
Gute Frage. Wieso legst du den Wert nicht als REAL an? Nimmst in der Visu die Kommastellen raus und schon sieht es aus wie eine Ganzzahl.

Servus.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Paula, danke, das wäre sicherlich das einfachste gewesen.
Aber leider waren die Werte in der SPS schon so angelegt und aus Speichergründen von der vorherigen Visu schon so durchgeführt. In der S7 wäre die Berechnung ja kein Problem. Ich kann blos nicht rein sehen in die alte Visu.
Gruß Suzi
 
Bei sowas hilft der Befehl ShowSystemAlarm. Wenn z.B.
Code:
ShowSystemAlarm "IVar_01:" & IVar_01
unter der Berechnung für IVar_01 eingeben wird. Dann wird das Ergebnis in dem Meldefenster angezeigt.
Ausserdem gibt es noch die Konvertierungsfunktionen CDBL, CLNG, CINT,..
 
Zuletzt bearbeitet:
Das verstehe ich jetzt nicht,
ich will ja kein Meldefenster sondern einen Mittelwert berechnen mit der Problematik dass ein Teil der Werte in REAL vorgegeben sind und ein anderer als integer.
Meine Frage ist "wie kann ich mittels VBS den integer zu einer Real" wandeln und dann meine Berechnungen siehe ganz oben ausführen .

Was hat das mit einem Meldefenster zu tun?

Gruß
Suzi
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Meistens hilft es wenn Zwischenergebnisse kontrolliert werden können, deshalb dass mit dem Meldefenster.
Mit dem Konvertierungsfunktion CDBL und CINT sollte das eigentlich funktionieren.
 
Mittelwert

Hallo Hotch,

demnach müsste dies dann so sein:

Dim IVar_00,IVar_01,IVar_02,IVar_03

'Mittelwertberechnung
IVar_00 = SmartTags("Q3_MWE") ' MITTELWERT Format REAL(Double)
IVar_01 = SmartTags("Q3_SUMME") ' SUMMENWERT Format REAL(Double)
IVar_02 = SmartTags("Q3_MESS") ' MESSWERT Format REAL(Double)

IVar_03 = CDbl SmartTags("Q3_TEILE") ' STUECKZAHL FORMAT INT

IVar_01 = IVar_01 + IVar_02 ' akt. Summe Mittelwert = akt. Summe Mittelwert + EINZELWERT
IVar_00 = IVar_01 / IVar_03 ' akt. Summe Mittelwert = akt. Summe Mittelwert / Anzahl
SmartTags("Q3_MWE") = IVar_00
SmartTags("Q3_SUMME") = IVar_01

wenn das klappt wäre Super

Gruß
 
Aus der Hilfe von WinCC flex:
Code:
[FONT=Verdana][SIZE=2][INDENT][INDENT]
[FONT=Courier New][SIZE=3]Dim MeinCurr, Mein
DoubleMeinCurr = CCur(234.456784)               ' MeinCurr ist eine vom Typ Currency (234,4567).
MeinDouble = [COLOR=#ff0000]CDbl([/COLOR]MeinCurr * 8.2 * 0.01[COLOR=#ff0000])[/COLOR]  ' Konvertiert das Ergebnis in einen Double-Typ (19,2254576).[/SIZE][/FONT][/INDENT]
[/INDENT]
[/SIZE][/FONT]
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich verstehe dein problem nicht so ganz?
in vb-script werden die typen nicht unterschieden.
du kannst problemlos eine real durch eine int teilen, oder auch eine int durch eine real.
 
Zurück
Oben