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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: WinCC flex Variableninhalte summieren skript

  1. #1
    Registriert seit
    02.12.2008
    Beiträge
    58
    Danke
    35
    Erhielt 4 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich würde gerne in WinCC flexible jeweils 8 Variablen (Typ Int)
    zusammenrechnen und die Summe in einer "internen Variable" ablegen.
    Diese soll dann im RT angezeigt werden.

    Es dabei um Tagesstückzähler
    Die Variablen hierzu sind in "Ordner" mit dem Tag bezeichnet abgelgt.

    Je nach eingestelltem Tag der angezeigt wird sollen auch entsprechend
    diese Stückzahlen zusammengezählt werden.

    Könnte man die Variablen auch indirekt adressieren??

    wie z.B.

    Bei Tag = 1

    Sollen die Variablen aus dem Ordner "Stueck_Tage\Stueck_Tag1" verwendet werden.

    Leider sind meine Skript Kenntnisse nicht besonders gut.

    Habe es mit folgendem Code versucht, aber leider nicht funktioniert.

    Code:
    If SmartTags("Intern\stueck_Tag_aus") = 1 Then
    SmartTags("hilfs_skript\Variable_1")=SmartTags("Stueck_Tage\Stueck_Tag1\22-23")+SmartTags("Stueck_Tage\Stueck_Tag1\23-0")
    SmartTags("hilfs_skript\Variable_2")=SmartTags("hilfs_skript\Variable_1")+SmartTags("Stueck_Tage\Stueck_Tag1\0-1")
    SmartTags("hilfs_skript\Variable_3")=SmartTags("hilfs_skript\Variable_2")+SmartTags("Stueck_Tage\Stueck_Tag1\1-2")
    SmartTags("hilfs_skript\Variable_4")=SmartTags("hilfs_skript\Variable_3")+SmartTags("Stueck_Tage\Stueck_Tag1\2-3")
    SmartTags("hilfs_skript\Variable_5")=SmartTags("hilfs_skript\Variable_4")+SmartTags("Stueck_Tage\Stueck_Tag1\3-4")
    SmartTags("hilfs_skript\Variable_6")=SmartTags("hilfs_skript\Variable_5")+SmartTags("Stueck_Tage\Stueck_Tag1\4-5")
    SmartTags("Intern\stueck_ges_NS")=SmartTags("hilfs_skript\Variable_6")+SmartTags("Stueck_Tage\Stueck_Tag1\5-6")
    End If
    Vielen Dank
    im Vorraus.

    Gruß
    roadrunner
    Zitieren Zitieren WinCC flex Variableninhalte summieren skript  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.326
    Danke
    932
    Erhielt 3.332 Danke für 2.690 Beiträge

    Standard

    Hallo roadrunner,

    ich habe mal versucht, 6 INT-Werte der PLC im Panel zu addieren und die Summe im Panel anzuzeigen.
    Die INT-Werte konnten am Panel auch geändert werden (Ein/Ausgabefeld).

    Ich habe es aufgegeben, weil es immer wieder vorkam, daß die vom Panel "errechnete" Summe nicht stimmt.
    Ich lasse nun die PLC die Summen-Berechnung durchführen.

    Gruß
    Harald
    Zitieren Zitieren Berechnung auf Panel nicht zuverlässig  

  3. #3
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    @Harald:
    die Erfahrung kann ich nicht unbedingt teilen ... Wenn die Aktualisierungsrate der Einzel-Variablen passt und die kommunikation nicht überfordert ist, dann sollte das klappen.
    Das ist aber (glaube ich) nicht das Problem von Roadrunner.

    @Roadrunner:
    Ist "hilfs_skript\Variable_1" (z.B.) wirklich der name deiner Variablen in Flex ?

    Gruß
    LL

  4. #4
    Registriert seit
    02.12.2008
    Beiträge
    58
    Danke
    35
    Erhielt 4 Danke für 3 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    @Harald:
    die Erfahrung kann ich nicht unbedingt teilen ... Wenn die Aktualisierungsrate der Einzel-Variablen passt und die kommunikation nicht überfordert ist, dann sollte das klappen.
    Das ist aber (glaube ich) nicht das Problem von Roadrunner.

    @Roadrunner:
    Ist "hilfs_skript\Variable_1" (z.B.) wirklich der name deiner Variablen in Flex ?

    Gruß
    LL

    Ja die Variable heißt so.
    Ich hab einen Ordner mit dem Namen "hilfs_skript" erstellt, und darin sind dann die Variablen_1 bis 8.
    Zur besseren Übersichtlichkeit.

    Zuerst habe ich versucht die Variablen einfach hintereinander mit + zusammenzuzählen, was aber auch nicht funktionierte.

    Also einfach SmartTags(Summe)= Var1 + Var2 + Var3 + Var4 .....

    Ich hatte Anfangs auch überlegt die Summe in der PLC zu bilden.

    Da ich die aber nur im RT Anzeigen will, dachte ich mir ich könnte Zykluszeit sparen, und das in der Visu mit einem Skript lösen.

    Gruß
    roadrunner

  5. #5
    Registriert seit
    13.10.2007
    Beiträge
    12.066
    Danke
    2.795
    Erhielt 3.288 Danke für 2.168 Beiträge

    Standard

    So ein paar zahlen werden besser in der Steuerung summiert,
    da macht eigendlich keine CPU schlapp. Im Gegenteil, kann
    es dazu kommen das das script mal nicht sauber abgearbeitet
    wird wenn das Ereigniss das das Script aufruft zu schnell hinter-
    einander kommt, oder gerade andere scripte aktiv sind.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  6. #6
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.326
    Danke
    932
    Erhielt 3.332 Danke für 2.690 Beiträge

    Standard

    Das Problem ist nicht das Script zum Summieren, sondern die Ereignisse, die das Script aufrufen sollen.
    Da hat mir damals das MP277 10" Touch unter WCCf2007 zu unzuverlässig gearbeitet und manchmal Ereignisse
    unterschlagen bzw. das Script einfach nicht aufgerufen.

    Ich will jetzt roadrunner nicht unbedingt von dem Script abhalten, weil er ja dabei eine Menge lernen kann.
    Ich empfehle ihm aber, seine Anwendung ausgiebig und akribisch zu testen.

    Gruß
    Harald

  7. #7
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.326
    Danke
    932
    Erhielt 3.332 Danke für 2.690 Beiträge

    Standard

    @roadrunner

    Wenn Du noch an der Scriptlösung interessiert bist, dann solltest Du uns mal mitteilen, was genau bei
    Deinen bisherigen Versuchen "nicht funktioniert" hat. Gab es Compiler- oder Runtime-Fehlermeldungen?
    Wie lauteten die genau? Wie sind Deine Variablen "Stueck_Tage\Stueck_Tag1\xxx" in WCCflex angelegt?
    Welches Panel willst Du einsetzen & kann das überhaupt Scripte?

    Ich kann mir nicht vorstellen, was an diesem Script "nicht funktionieren" sollte (habe es jetzt aber auch
    nicht getestet):
    Code:
    SmartTags("Intern\stueck_ges_NS") = SmartTags("Stueck_Tage\Stueck_Tag1\22-23") _
                                      + SmartTags("Stueck_Tage\Stueck_Tag1\23-0") _
                                      + SmartTags("Stueck_Tage\Stueck_Tag1\0-1") _
                                      + SmartTags("Stueck_Tage\Stueck_Tag1\1-2") _
                                      + SmartTags("Stueck_Tage\Stueck_Tag1\2-3") _
                                      + SmartTags("Stueck_Tage\Stueck_Tag1\3-4") _
                                      + SmartTags("Stueck_Tage\Stueck_Tag1\4-5") _
                                      + SmartTags("Stueck_Tage\Stueck_Tag1\5-6")
    Noch ein Tip:
    Für Zwischenergebnisse gibt es im VBS-Script lokale temporäre Variablen. Stichwort: "Dim"

    Gruß
    Harald
    Zitieren Zitieren Details erforderlich  

  8. #8
    Registriert seit
    02.12.2008
    Beiträge
    58
    Danke
    35
    Erhielt 4 Danke für 3 Beiträge

    Standard

    Die Variablen werden in einem Bild angezeigt und über einen Button starte ich das Skript das dann die Summe berechnen soll und das Ergebnis in einer internen Variable ablegt die im Bild dann untern als Summe angezeigt wird.


    Die Variablen die ich Zusammenzählen möchte haben im schnitt Werte von ca. 2000
    Es sind 8 Variablen (1 Schicht mit 8 Stunden ) also müsste ungefähr 16000 als Summe da stehen.

    Hatte da aber nur 2705 als Summe stehen.

    Das ganze läuft auf einer PC-RT flex 08

    Muss ich im Skript mit Zwischenergebnissen rechnen oder kann ich gleich alles mit + zusammenzählen.

    Wie kann ich da einen "Zeilensprung" machen damit nicht alles in einer Zeiler steht?


    Gruß
    roadrunner
    Geändert von roadrunner (04.03.2010 um 19:38 Uhr)

  9. #9
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.326
    Danke
    932
    Erhielt 3.332 Danke für 2.690 Beiträge

    Standard

    Zitat Zitat von roadrunner Beitrag anzeigen
    Muss ich im Skript mit Zwischenergebnissen rechnen oder kann ich gleich alles mit + zusammenzählen.

    Wie kann ich da einen "Zeilensprung" machen damit nicht alles in einer Zeiler steht?
    1. Nein, Du mußt keine Zwischenergebnisse machen, Du kannst gleich alle 8 Werte addieren.
    2. Wenn eine lange Anweisung in der nächsten Zeile fortgesetzt werden soll, dann schreibe am Zeilenende einen Unterstrich "_".
    Das alles siehe mein Scriptbeispiel in #7.

    OK, wenn Du einen extra Button zum Aufruf des Scriptes machst, dann funktioniert das Summieren auf dem Panel. Du und der Bediener wissen ja,
    daß die Summe nicht automatisch berechnet wird, sondern erst auf Knopfdruck. Da gibt es dann auch keine Probleme mit fehlenden Ereignissen.

    Gruß
    Harald

  10. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    roadrunner (05.03.2010)

  11. #10
    Registriert seit
    02.12.2008
    Beiträge
    58
    Danke
    35
    Erhielt 4 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Vielen Dank.

    Es funktioniert. Ich hatte falsche Variablen zusammengezählt.

    Eines würde mich noch interessieren.
    Ist es möglich die Variablen indirekt anzusprechen?

    Code:
    Dim tag
    Select Case SmartTags("Intern\stueck_Tag_aus")
     Case "0"
      tag = "Stueck_Tag1"
     Case "1"
      tag = "Stueck_Tag2"
     Case "2"
      tag = "Stueck_Tag3"
     Case "3"
      tag = "Stueck_Tag4"
     Case "4"
      tag = "Stueck_Tag5"
     Case "5"
      tag = "Stueck_Tag6"
     Case "6"
      tag = "Stueck_Tag7"
    End Select
     
    SmartTags("Intern\stueck_ges_NS") = SmartTags("Stueck_Tage\Stueck_Tag1\22-23") _
                                      + SmartTags("Stueck_Tage\Stueck_Tag1\23-0") _
                                      + SmartTags("Stueck_Tage\Stueck_Tag1\0-1") _
                                      + SmartTags("Stueck_Tage\Stueck_Tag1\1-2") _
                                      + SmartTags("Stueck_Tage\Stueck_Tag1\2-3") _
                                      + SmartTags("Stueck_Tage\Stueck_Tag1\3-4") _
                                      + SmartTags("Stueck_Tage\Stueck_Tag1\4-5") _
                                      + SmartTags("Stueck_Tage\Stueck_Tag1\5-6")
    Statt dem Stueck_Tag1 -> Stueck_Tag2
    Wie setzte ich die interne Variable "Tag" da ein?

    Gruß
    roadrunner

Ähnliche Themen

  1. WinCC flex skript lange codezeile ...
    Von erzteufele im Forum HMI
    Antworten: 2
    Letzter Beitrag: 21.07.2011, 08:02
  2. skript test mit Runtimesimu Wincc flex
    Von andy0909 im Forum HMI
    Antworten: 4
    Letzter Beitrag: 19.11.2010, 09:31
  3. WinCC Flex 2005 - Skript
    Von eYe im Forum HMI
    Antworten: 1
    Letzter Beitrag: 05.03.2009, 17:50
  4. Antworten: 2
    Letzter Beitrag: 25.02.2009, 22:07
  5. WinCC flex VB Skript aus SPS starten
    Von figo80 im Forum HMI
    Antworten: 5
    Letzter Beitrag: 16.01.2008, 11:39

Lesezeichen

Berechtigungen

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