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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 14 von 14

Thema: WinCC flex: DB archivieren

  1. #11
    SeSi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    07.09.2007
    Beiträge
    12
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hab den Fehler gefunden. Mein DB entsprach wohl net ganz der Größe der Schleife.....

    Hab mir jetzt nen super Archiv programmiert und festgestellt, das ich es garnicht in die Kurvengrafik einbinden kann(siehe Quelleinstellung+Kurventyp Kurve).

    Muss mir wohl was anderes einfallen lassen...am besten ne eigene Kurvengrafik anfertigen...nur wie...egal

    Herzlichen dank für deine Hilfe, Volker!!!

    MfG

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

    Standard

    du kannst dir deine cvs so aufbauen, das es einem kurvenarchiv entspricht.
    was man wissen muss ist wie der timestring aufgebaut ist. der rest sollte kein problem darstellen.

    hier mal ein script um den zu berechnen
    Code:
    'zu testen anfang
    datum = InputBox("datum",,datum1)
    zeit = InputBox("zeit",,zeit1)
    'zu testen ende
    
    'extrahieren
    stunden=left(zeit,2)
    'minuten=right(zeit,2)
    minuten=mid(zeit,4,2)
    sekunden=right(zeit,2)
    
    'berechnen
    tage_bis_datum=datediff("d","31.12.1899",datum)
    nach_dem_komma3=(sekunden/60)
    nach_dem_komma2=(minuten + nach_dem_komma3) / 60
    nach_dem_komma1=(stunden + nach_dem_komma2) / 24
    archivdatum=(tage_bis_datum + 1 + nach_dem_komma1) *1000000
    
    msgbox archivdatum
    gehe in etwa so vor
    erstelle eine kurvengrafik mit zeitachse.
    datenquelle archiv (z.b. kurve1)
    laden wie in deinem script die daten und wandel die entsprechend um und speicher die in die datei kurve10.csv. (0.csv hängt ptp bzw flex automatich an)
    um die kurve dann darzustellen, ohne evtl kilometerweit zurückzuscrollen musst du für die zeitachse eine variable nehmen. (habe ich noch nie getestet).
    diese beschreibst du auch in dem script.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation
    Zitieren Zitieren Timestring für eine Archivdatei berechnen  

  3. #13
    SeSi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    07.09.2007
    Beiträge
    12
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    So hatte ich mir das auch gedacht, mit der Archivdatei.
    Erst die datei im WinCC "Archivdateiformat"
    (in *.csv "VarName";"TimeString";"VarValue";"Validity";"Time_ms")
    aufbauen, dann im Kurvenmodul Archiv auswählen und die eigene Archivdatei = Archiv auswählen.
    Die Datei hab ich ja auch schon erstellt.

    Mir is nur net klar gewesen das man WinCC in dem Sinne austricksen kann,
    werd es morgen mal versuchen. (siehe nächsten Schritte)?!?!

    1. Variablenarchiv erstellen Kurve1
    -> Ablageort Datei und Pfad auswählen
    -> Archivierung blockieren (Da im Kurvenmodul ja ne Variable zum archivieren angegeben werden muss)

    2. Eigenschaften -> Kurven ...neue Kurfe erstellen
    -> Kurventyp Archiv
    -> Quelleinstellungen Archiv Kurve1
    Archiveintrag ??? (irgent eine Variable wird ja
    eh net archiviert)

    eine andere Variante währe die Archivdatei wieder aus zulesen und die werte nach einander an eine interne Var zu übergeben und anzeigen zu lassen.
    Aber mit dem ... VBS und dem ... Kompiler von WinCC bekommt ich hier nochmal ne ..... sry!

    hier mal meine andere Idee, die aber nicht funktionniert, irgentwie, ka

    Code:
    Set fso = CreateObject("Scripting.FileSystemObject")  
    Datei = "D:\DBArchiv01.csv"         
     
    If Archiv = True Then
     
    'Auslesen und aufspalten zwischen ;----------------------------------
     Set csvFile = fso.OpenTextFile(Datei) 
     Auslesen = Split(csvFile.ReadAll, ";", -1, 1) 
     csvFile.Close 
     
    'Akt. Sekunde einlesen----------------------------------------------- 
     RealSec = Second(Now)
     
    'mit alter Sekunde vergleichen---------------------------------------- 
     If StartSec < RealSec Then 
     
    'Index i verwalten----------------------------------------------------
         If i = 9 Then 
            i = 0
         End If
         Archiv_Value = Auslesen(i)   
         i = i + 1
         StartSec = RealSec  
     End If
    End If
    Konnte den Inhalt der Datei schon anzeigen doch die CPU ließt natürlich schneller aus als die Grafik das dastellt. Daher wollte ich zur Probe mal jede Sekunde eine Wert aus dem "TextfileArray" auslesen aber naja....bin wohl zu unerfahren...bin ja erst zwei drei Wochen an VBS dran.

    zählt net...heut morgen hab ich mal (is ja easy) die sekunden durchzählen lassen aber seit 10Uhr kein Mugs mehr!!!!!! Hab mir auch mal die StartSec anzeigen lassen alles ok aber irgent wo macht er mir mein i zu 0 und dann gehts wieder von vorne los.

    Und was mich am meißten ärgert...probiere das immer gleich in Runtime aus....es geht einfach net und ich seh net warum, stocher nur wie wild in meinem eigenen Code rum.
    Man heut bin ich echt geladen wegen dem Zeugs^^


    MfG
    Geändert von SeSi (18.09.2007 um 16:14 Uhr)

  4. #14
    SeSi ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    07.09.2007
    Beiträge
    12
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hiho,
    habe den Fehler gerade gefunden, kann ihn mir nur nicht erklären...so richtig.

    Für die erprobung meiner Skripte habe ich mir ein Mainskript geschafen, welches in einer while-Schleife die Skripte abarbeitet(damit ich nicht ständig Tasten und Knöpfe drücken muss).

    Main:
    Code:
    Dim TWert, Uhr, x
     
    While (SmartTags("Sp_Start") = True)
     
     TWert = Umrechnung (SmartTags("ArraySp1")) 
      ' SchreibeInDatei   SmartTags("ArraySp1"),SmartTags("ArraySp2"), TWert 
     Call VisuArchiv 
     
    Wend
    Das Problemprogramm ist VisuArchiv.

    Ich hatte es erst als Funktion geschrieben und aufgerufen und aber keine Parameter deklariert.
    Code:
    Function VisuArchiv()
    dim x
    VisuArchiv = x
    End funktion
    und der Aufruf dazu:
    Code:
    Dim TWert, Uhr, x
     
    While (SmartTags("Sp_Start") = True)
     
     TWert = Umrechnung (SmartTags("ArraySp1")) 
      ' SchreibeInDatei   SmartTags("ArraySp1"),SmartTags("ArraySp2"), TWert 
    x = VisuArchiv '<--ist das Richtig????????
     
    Wend
    Oder die andere Möglichkeit, deklaration als Sub und Aufruf über Call, geht das?

    Code:
    Dim TWert, Uhr, x
     
    While (SmartTags("Sp_Start") = True)
     
     TWert = Umrechnung (SmartTags("ArraySp1")) 
      ' SchreibeInDatei   SmartTags("ArraySp1"),SmartTags("ArraySp2"), TWert 
     Call VisuArchiv <---ist das Ok?????
     
    Wend

Ähnliche Themen

  1. WinCC Projekt archivieren
    Von Move im Forum HMI
    Antworten: 1
    Letzter Beitrag: 01.08.2011, 14:47
  2. WinCC flex 08 Zähler archivieren
    Von deltafox1002 im Forum HMI
    Antworten: 5
    Letzter Beitrag: 22.01.2011, 23:58
  3. Antworten: 7
    Letzter Beitrag: 22.10.2010, 09:51
  4. WinCC Daten archivieren
    Von Sonic.pn im Forum HMI
    Antworten: 4
    Letzter Beitrag: 27.01.2010, 00:26
  5. Extern Archivieren mit WinCC Flex
    Von Tommy1981 im Forum HMI
    Antworten: 4
    Letzter Beitrag: 03.12.2009, 15:39

Lesezeichen

Berechtigungen

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