Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 9 von 9

Thema: Mittelwertberechnung

  1. #1
    Registriert seit
    22.03.2012
    Beiträge
    64
    Danke
    19
    Erhielt 2 Danke für 1 Beitrag

    Standard


    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 ?
    Zitieren Zitieren Mittelwertberechnung  

  2. #2
    Registriert seit
    14.06.2005
    Beiträge
    223
    Danke
    9
    Erhielt 15 Danke für 15 Beiträge

    Standard

    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.

  3. #3
    SUZI ist offline Benutzer
    Themenstarter
    Registriert seit
    22.03.2012
    Beiträge
    64
    Danke
    19
    Erhielt 2 Danke für 1 Beitrag

    Standard

    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

  4. #4
    Registriert seit
    04.07.2007
    Beiträge
    147
    Danke
    6
    Erhielt 13 Danke für 13 Beiträge

    Standard

    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,..
    Geändert von Hotsch (22.05.2012 um 07:44 Uhr)

  5. #5
    SUZI ist offline Benutzer
    Themenstarter
    Registriert seit
    22.03.2012
    Beiträge
    64
    Danke
    19
    Erhielt 2 Danke für 1 Beitrag

    Standard

    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

  6. #6
    Registriert seit
    04.07.2007
    Beiträge
    147
    Danke
    6
    Erhielt 13 Danke für 13 Beiträge

    Standard

    Meistens hilft es wenn Zwischenergebnisse kontrolliert werden können, deshalb dass mit dem Meldefenster.
    Mit dem Konvertierungsfunktion CDBL und CINT sollte das eigentlich funktionieren.

  7. #7
    SUZI ist offline Benutzer
    Themenstarter
    Registriert seit
    22.03.2012
    Beiträge
    64
    Danke
    19
    Erhielt 2 Danke für 1 Beitrag

    Standard

    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ß
    Zitieren Zitieren Mittelwert  

  8. #8
    Registriert seit
    04.07.2007
    Beiträge
    147
    Danke
    6
    Erhielt 13 Danke für 13 Beiträge

    Standard

    Aus der Hilfe von WinCC flex:
    Code:
    Dim MeinCurr, Mein DoubleMeinCurr = CCur(234.456784) ' MeinCurr ist eine vom Typ Currency (234,4567). MeinDouble = CDbl(MeinCurr * 8.2 * 0.01) ' Konvertiert das Ergebnis in einen Double-Typ (19,2254576).

  9. Folgender Benutzer sagt Danke zu Hotsch für den nützlichen Beitrag:

    SUZI (22.05.2012)

  10. #9
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard


    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.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  11. Folgender Benutzer sagt Danke zu volker für den nützlichen Beitrag:

    SUZI (22.05.2012)

Ähnliche Themen

  1. Mittelwertberechnung
    Von kpeter im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 29.12.2013, 12:50

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •