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

Ergebnis 1 bis 7 von 7

Thema: Anzahl Variablen in WinCCflex2007 gering halten

  1. #1
    Registriert seit
    09.03.2006
    Beiträge
    137
    Danke
    19
    Erhielt 4 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    an einer Maschine in welcher ein Produkt nach Gewicht abgefüllt wird, nehme ich zu einer bestimmten Zeit während des Befüllvorgangs gleichzeitig 6 Messwerte (Real) auf, die ich in einem DB speichere. Diese 6 Messwerte speichere ich für die 20 letzten Befüllungen (FIFO-Speicher). D.h. ich habe in diesem DB 6x20=120 Messwerte gespeichert. Diese 120 Messwerte möchte ich in einer Tabelle auf einem MP377B auf einem Bild darstellen. Ich könnte für alle 120 Werte in der Tabelle eine eigene Variable anlegen und in dazugehörigen Ausgabefeldern in der Tabelle anzeigen. Das geht sicherlich, finde ich aber irgendwie zu "aufgebläht".

    Nun meine Frage:
    - Gibt es irgend eine Möglichkeit die Variablenanzahl zu verringern?
    - Kann ich irgendwie auf WinCCflex-Seite mit sowas wie Pointer arbeiten?
    - Da die Daten wie in einem Ringspeicher gespeichert werden, würde es reichen, das immer nur die aktuellen (6) Messwerte aus der CPU eingelesen werden, und die älteren Werte nur (WinCCflex intern) weitergeschoben werden. Kann man sich so etwas vorstellen?

    Bin für jeden Hinweis dankbar!

    Gruß HarryH
    Zitieren Zitieren Anzahl Variablen in WinCCflex2007 gering halten  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.263
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    Sie dir mal das Thema Multiplexvariablen in der Flexible-Hilfe an, das wäre genau das Richtige dafür, denke ich mal.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  3. #3
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Hier ist einmal ein Programmbeispiel für einen FIFO-Speicher in WinCC flexible:

    Zwei Messwerte werden als externe Variablen in WinCC flexible eingelesen und in zwei FIFO-Speichern als interne Variablen gespeichert.

    Die Funktion der zwei FIFO-Speicher wird durch das folgende VBScript in WinCC flexible nachgebildet.

    Ein Trigger als externe Variable ruft das VBScript auf.

    Code:
    Dim i
     
    If SmartTags("Trigger") = True Then
     
        For i = 3 To 0 Step - 1 
     
            SmartTags("Speicher_1")(i + 1) = SmartTags("Speicher_1")(i)
     
            SmartTags("Speicher_2")(i + 1) = SmartTags("Speicher_2")(i)
     
        Next
     
        SmartTags("Speicher_1")(0) = SmartTags("Messwert_1")
     
        SmartTags("Speicher_2")(0) = SmartTags("Messwert_2")
     
    End If
    Gruß Kai
    Angehängte Grafiken Angehängte Grafiken

  4. Folgende 2 Benutzer sagen Danke zu Kai für den nützlichen Beitrag:

    HarryH (15.10.2008),justbql (28.06.2012)

  5. #4
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Und noch ein paar Bilder.

    Gruß Kai
    Angehängte Grafiken Angehängte Grafiken

  6. Folgender Benutzer sagt Danke zu Kai für den nützlichen Beitrag:

    HarryH (15.10.2008)

  7. #5
    Avatar von HarryH
    HarryH ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.03.2006
    Beiträge
    137
    Danke
    19
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Das mit dem Skript gefällt mir gut und ich habe es auch so realisiert. Nur wird das Skript nicht abgearbeitet. Es passiert nichts.
    So hab ichs gemacht:

    Code:
    Dim i
     
    If SmartTags("VV1_MP_Data.Befuellzeiten_speichern") = True Then
      
        For i = 19 To 1 Step - 1 
     
            SmartTags("Befüllzeiten.Befuellzeit")(i + 1) = SmartTags("Befüllzeiten.Befuellzeit")(i)
            SmartTags("Befüllzeiten.Gewicht_Sollwert")(i + 1) = SmartTags("Befüllzeiten.Gewicht_Sollwert")(i)
            SmartTags("Befüllzeiten.Gewicht_Istwert")(i + 1) = SmartTags("Befüllzeiten.Gewicht_Istwert")(i)
            SmartTags("Befüllzeiten.Behaelter")(i + 1) = SmartTags("Befüllzeiten.Behaelter")(i)
            SmartTags("Befüllzeiten.Leitung")(i + 1) = SmartTags("Befüllzeiten.Leitung")(i)
            SmartTags("Befüllzeiten.Stutzen")(i + 1) = SmartTags("Befüllzeiten.Stutzen")(i)
     
        Next
     
        SmartTags("Befüllzeiten.Befuellzeit")(1)       = SmartTags("VV1_Befüllzeiten.Sack01.Befuellzeit")
        SmartTags("Befüllzeiten.Gewicht_Sollwert")(1)  = SmartTags("VV1_Befüllzeiten.Sack01.Gewicht_Sollwert")
        SmartTags("Befüllzeiten.Gewicht_Istwert")(1)   = SmartTags("VV1_Befüllzeiten.Sack01.Gewicht_Istwert")
        SmartTags("Befüllzeiten.Behaelter")(1)   = SmartTags("VV1_Befüllzeiten.Behaelter")
        SmartTags("Befüllzeiten.Leitung")(1) = SmartTags("VV1_Befüllzeiten.Leitung")
        SmartTags("Befüllzeiten.Stutzen")(1)     = SmartTags("VV1_Befüllzeiten.Stutzen")
      
    ' Zum Testen ob Skript abgearbeitet wird
        SmartTags("Befüllzeiten.Stutzen")(10)     = 10.0
    
     
    End If
    Muss ich irgend eine generelle "Freigabe" für das Skript noch geben?

  8. #6
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    In meinem Programmbeispiel wird das Skript Speichern bei einer Wertänderung von False/True oder True/False der Variablen Trigger aufgerufen.

    Durch die Abfrage der Bedingung Trigger = True in der ersten Zeile des Skriptes werden die folgenden Anweisungen im Skript jedoch nur bei einer Wertänderung von False/True ausgeführt.

    Gruß Kai
    Angehängte Grafiken Angehängte Grafiken

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

    HarryH (16.10.2008)

  10. #7
    Avatar von HarryH
    HarryH ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.03.2006
    Beiträge
    137
    Danke
    19
    Erhielt 4 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @Kai

    genau das hat mir gefehlt. Ich hatte das Skript keiner Variablen zum Ausführen zugewiesen. Nun funktioniert alles. Danke an alle!

    Gruß HarryH

Ähnliche Themen

  1. Begrenzung von anzahl variablen bei 314C-2PN/DP
    Von JesperMP im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 01.03.2011, 08:18
  2. WinCCflex2007
    Von slk230-power im Forum HMI
    Antworten: 5
    Letzter Beitrag: 02.06.2010, 20:24
  3. Anzahl Variablen eines FU
    Von Georgius im Forum HMI
    Antworten: 2
    Letzter Beitrag: 28.05.2008, 14:11
  4. WinCCflex2007
    Von Kleissler im Forum HMI
    Antworten: 5
    Letzter Beitrag: 14.09.2007, 19:03
  5. MMC, was ist von diesem Programm zu halten
    Von lorenz2512 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 26.05.2006, 13:01

Lesezeichen

Berechtigungen

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