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

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

Thema: Trendkurve archivieren

  1. #1
    Registriert seit
    06.10.2009
    Ort
    Hessen
    Beiträge
    560
    Danke
    24
    Erhielt 43 Danke für 40 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo leute,

    ich habe mir eine bitgetriggerte Trendkurve im WinCC flexible 2008 programmiert.
    Das funktioniert auch alles wunderbar, habe mir die Themen hier im Forum durchgelesen und es irgendwie hinbekommen!

    Mein Problem ist jetzt...

    Wie exportiere ich diese Daten wieder in eine CSV-Datei ?

    Ich hab das ganze gemacht weil mir die Archivierung von WinCC Flexible zu langsam ist... in einem DB weggespeichert... kann diese Kurve auch wieder ins Flexible aufrufen.

    Brauch sie aber auch als File um sie auszuwerten!

    Weiss jemand wie das geht?


    MFG CHW
    Das, was man weiß, hat doppelten Wert, wenn man zugleich das, was man nicht weiß, nicht zu wissen eingesteht.
    Zitieren Zitieren Trendkurve archivieren  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    Hallo,
    hattest du den Beitrag hier schon gelesen : http://www.sps-forum.de/showthread.p...-mit-VB-Script

  3. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    c.wehn (06.07.2012)

  4. #3
    Avatar von c.wehn
    c.wehn ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.10.2009
    Ort
    Hessen
    Beiträge
    560
    Danke
    24
    Erhielt 43 Danke für 40 Beiträge

    Standard

    Ja so etwas habe ich schonmal gemacht,
    Allerdings mit einzelnen Wörter, hier habe ich allerdings mehrere Arrays mit vielen vielen Doppelworten...
    Ich dachte eigentlich da gäbe es noch was einfacheres mit den vorhandenen Flexible Funktionen.
    Kann ich denn im VB Script die Arrays einfach auflösen lassen und in's Excel schreiben oder muss ich dann jede Variable im Array anlegen?
    Wenn ich das mit dem VB Script lösen muss bräuchte ich aufjedenfall etwas hilfe. Allein würde ich mich da glaube ich zeitlich total verrennen.
    Das, was man weiß, hat doppelten Wert, wenn man zugleich das, was man nicht weiß, nicht zu wissen eingesteht.

  5. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    Eine Variable, die Flex als Array kennt (also Anzahl der Elemente > 1), kannst du im Script auch so verwenden.

    Helfen wäre auch nicht so das Thema. Leg' doch einfach mal los, steck den Rahmen ab und poste dein Script. Dann wird dir hier schon geholfen ...

    Gruß
    Larry

  6. #5
    Avatar von c.wehn
    c.wehn ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.10.2009
    Ort
    Hessen
    Beiträge
    560
    Danke
    24
    Erhielt 43 Danke für 40 Beiträge

    Standard

    Hallo, habe mich jetzt einfach mal versucht.
    Leider bin ich in VB absolut kein Profi...
    Die Datei erstellt er mir...

    Jetzt dachte ich das ich mit dem Part For i=..... den Pointer hochsetzen kann und die Variablen einfach von Excel nach A 0-400 reinladen kann... das würde mir erstmal genügen... Nur finde ich keine beispiele wie ich das anstellen kann...

    jemand eine idee?

    Code:
    On Error Resume Next
     
    Dim appExcel , fs , wbExcel , wsExcel
    Dim Verzeichnis , Datei
    Dim Zeile
    Dim Niederhalterdruck
    Dim i
    '------------------------------------------------------------------------------
    ' Variablen-Zuweisungen ...
    Verzeichnis = "c:\Archiv\"
    Datei = "1.xls"
    '------------------------------------------------------------------------------
    ' Pointer auf Tabelle laden
    Set appExcel = CreateObject ("EXCEL.Application")
    Set fs = CreateObject ("Scripting.FileSystemObject")
    '------------------------------------------------------------------------------
    ' Objekte erzeugen
    ' prüfe ob datei existiert. wenn nicht erzeugen.
    If Not fs.FileExists (Verzeichnis + Datei) Then
        appExcel.Workbooks.Add
        appExcel.ActiveWorkbook.SaveAs(Verzeichnis + Datei)
    End If
     
    Set wbExcel = appExcel.Workbooks.Open (Verzeichnis + Datei)
    Set wsExcel = wbExcel.Worksheets("Tabelle1")
     
    ' Zelle lesen und um 1 erhöhen
    'Zeile = wsExcel.Range("D1") = SmartTags("Kurvebübertragung.Kurvenuebertragung_1")
     
    ' Zelle beschreiben
    'wsExcel.Cells (Zeile , 1) = Niederhalterdruck
    'wsExcel.Cells (Zeile , 2) = Time
    'wsExcel.Range("D1") = Zeile 
     
     For i=0 To 400 Step +4
         Niederhalterdruck="Kurvenpuffer.P_Niederhalter("&CStr(i)&")"
         wsExcel.Cells (Zeile , 1)= Niederhalterdruck
    Next
     
    ' Tabelle abspeichern
    wbExcel.Close True 'false
    appExcel.Quit ()
     
    '------------------------------------------------------------------------------
    ' verwendeten Speicher wieder freigeben
    Set wsExcel = Nothing
    Set wbExcel = Nothing
    Set fs = Nothing
    Set appExcel = Nothing
    Set Verzeichnis = Nothing
    Set Datei = Nothing
    Das, was man weiß, hat doppelten Wert, wenn man zugleich das, was man nicht weiß, nicht zu wissen eingesteht.

  7. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    Ich fände es so ganz schick :
    Code:
    For i=0 To 400 Step +4 
       Niederhalterdruck=SmartTags("Kurvenpuffer.P_Niederhalter")(i)
       wsExcel.Cells (Zeile , 1) = Niederhalterdruck
    Next
    ... unter der Voraussetzung, dass "Kurvenpuffer.P_Niederhalter" deine Array-Variable ist.

    Du solltest aber bitte auch noch Folgendes beachten : Ein in Flex deklariertes hat als erstes Index-Feld immer (0). Um es für deine Schleife passend zu habe müßte dass Array in Flex also 401 Elemente haben - ist das so ?

    Willst von dem Array wirklich nur jedes 4. Element abspeichern ?

    Gruß
    Larry

  8. #7
    Avatar von c.wehn
    c.wehn ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.10.2009
    Ort
    Hessen
    Beiträge
    560
    Danke
    24
    Erhielt 43 Danke für 40 Beiträge

    Standard

    Hallo, danke erstmal... bin leider nichtmehr im Büro weil ich mal wieder um 13.00 gesagt bekomme das ich das Wochenende eine IBN machen muss...

    Nein, ich wollte eigentlich jedes Element des Arrays abspeichern...

    In den Variablen stehen die Arrayelemente tatsächlich mit 401 dort.
    Im DB ist es eben von 0 - 400 und dann gehts eben weiter mit 404 - ...

    Dieses Kurvenpuffer.P_Niederhalter ist einer meiner Arrayelemente, es liegt in einem DB auf der SPS ab... es sind in diesem fall REAL werte.
    Das, was man weiß, hat doppelten Wert, wenn man zugleich das, was man nicht weiß, nicht zu wissen eingesteht.

  9. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    Also dann sollte der Code so aussehen :
    Code:
    For i=0 To 400    wsExcel.Cells (Zeile , i) = SmartTags("Kurvenpuffer.P_Niederhalter")(i) Next
    Die von dir ursprünglich eingebaute Schrittweite in der Schleife (Step) hat nichts mit der Breite Variablen von Step7 her zu tun - da kümmert sich Flex (bei richtiger Deklaration - in deinem Fall ja REAL) schon selber drum ...



    Dann ein schönes In-Betrieb-nehmen ...

    Gruß
    Larry
    Geändert von Larry Laffer (07.07.2012 um 13:51 Uhr)

  10. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    c.wehn (07.07.2012)

  11. #9
    Avatar von c.wehn
    c.wehn ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    06.10.2009
    Ort
    Hessen
    Beiträge
    560
    Danke
    24
    Erhielt 43 Danke für 40 Beiträge

    Standard

    Also, bis jetzt erstellt er mir nur immer die Datei, leider ohne Inhalt.
    Trotzdem danke, ich guck mal ob ichs irgendwie hinbekomme.
    Das, was man weiß, hat doppelten Wert, wenn man zugleich das, was man nicht weiß, nicht zu wissen eingesteht.

  12. #10
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ... und die Zellen deines Excel-Sheet sind mit Nullen gefüllt ?

    Ist die von mir editierte Variable denn überhaupt die Kurven-Variable ?
    Zeigst du die auch an und wenn ja, hast du in der Anzeige dann sinnvolle Werte drin stehen ?
    Wenn du sie nicht anzeigst, wie hast du die Aktualisierung eingestellt ? Wie kommt dann die Kurve von der SPS zur Visu ?
    Hast du, wenn du dir den DB in der SPS anschaust, darin sinnvolle Werte stehen ?
    Welchen Wert hat "Zeile" in deinem Script ? Läßt du die Schleifenvariable (i) mit in die Zellenadressierung einfliessen ? In deinem Codebeispiel, dass ich einfach so übernommen habe (mein Fehler, sorry), geht die gar nicht mit ein ...

    Vielleicht doch noch mal so :
    Code:
    Zeile = 4
    For i=0 To 400 
       wsExcel.Cells (Zeile , 1+i) = SmartTags("Kurvenpuffer.P_Niederhalter")(i)
    Next
    Gruß
    Larry

  13. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    c.wehn (08.07.2012)

Ähnliche Themen

  1. Trendkurve funktioniert nicht
    Von Turbohesse im Forum HMI
    Antworten: 11
    Letzter Beitrag: 30.11.2011, 09:18
  2. Umfang Trendkurve MP277
    Von MRose im Forum HMI
    Antworten: 4
    Letzter Beitrag: 07.06.2011, 21:08
  3. Trendkurve aus Archiv
    Von TMaroni im Forum HMI
    Antworten: 4
    Letzter Beitrag: 26.01.2011, 14:28
  4. Trendkurve aus Archivvariable
    Von LFMR im Forum HMI
    Antworten: 0
    Letzter Beitrag: 25.06.2010, 10:38
  5. Trendkurve drucken
    Von Pinguino im Forum HMI
    Antworten: 0
    Letzter Beitrag: 25.03.2009, 15:46

Lesezeichen

Berechtigungen

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