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

Ergebnis 1 bis 5 von 5

Thema: Datenlogger WinCC´f Skript

  1. #1
    Registriert seit
    28.01.2009
    Beiträge
    29
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute, ich bastle mir gerade einen Datenlogger für einen Versuchsaufbau.

    hierbei soll 40.000 mal ein Druck an eine Membran angelegt werden.
    Hierzu hab ich mir ein kleinens Skript "wissenstransferiert", da ich selbst mit VB so ziemlich nichts am hut habe.

    Die Aufzeichnungen erfolgt kontinueierlich, und es werden ca. alle halbe sekunde (einstellbar) Messpunkte ermittelt und gespeichert.

    Mein Skript speichert alles in einer csv Datei.

    Plöd ist nur, dass Excel nur 65.636 zeilen darstellen kann.

    Jetzt möchte ich aber, dass mein Skript eine neue CSV datei erstellt, wenn die 65.636 zeilen gefüllt sind.

    Hat wer da einen Kniff?

    Code:
    Dim fs, f, FName, Header
     
     ' Archivierung nur bei Wertänderung von 'FALSE' auf 'TRUE'
    If SmartTags("m_archiv_start")And SmartTags("Archivierung_Ein/Aus") = True Then
     
     ' Archivierungspfad und Dateiname zusammensetzen 
     FName = StoragePath & "\Drucktest_Stopfen" & CStr(DatePart("d",Date)) & "_" & CStr(DatePart("m",Date)) & "_" & CStr(DatePart("yyyy",Date)) & ".csv"
     
     ' Tabellenkopf zusammenstellen 
     Header = "Storage time;Druck_Zelle_1;Druck_Zelle_2;Druck_Zelle_3;Druck_Zelle_4;Druck_Zelle_5;Druck_Zelle_6" &  Chr(10)
     
     ' FileSystemObject erstellen
      Set fs = CreateObject("FileCtl.FileSystem") 
     
     ' FileObject erstellen
     Set f = CreateObject("FileCtl.File")
     
     ' Datei öffnen bzw. erstellen, wenn sie noch nicht existiert
     f.open FName, 8         
     
     ' Wenn Datei 0 Byte groß, dann ist sie neu
      If fs.FileLen(FName) = 0 Then       
        f.lineprint(Header)
     
    '  =0 => Tabellenkopf muss eingefügt werden
      End If 
     
     ' Werte der Variablen in die Archivdatei schreiben (VAR_1)
     f.lineprint(CStr(Now) & ";" & CStr(SmartTags("DB_TP177.Druck_sensor_1"))& ";" & CStr(SmartTags("DB_TP177.Druck_sensor_2"))& ";" & CStr(SmartTags("DB_TP177.Druck_sensor_3"))& ";" & CStr(SmartTags("DB_TP177.Druck_sensor_4"))& ";" & CStr(SmartTags("DB_TP177.Druck_sensor_5"))& ";" & CStr(SmartTags("DB_TP177.Druck_sensor_6"))) 
     
     ' Datei wieder schließen
     f.Close
     
     ' Verwendeten Speicher wieder freigeben
     Set f  = Nothing
     Set fs = Nothing
     
    End If
    ResetBit(SmartTags("m_archiv_start"))
    Geändert von michal (29.08.2011 um 13:31 Uhr)
    Zitieren Zitieren Datenlogger WinCC´f Skript  

  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,
    du könntest du eine Flex-interne Variable zur Zähl-Variablen machen. Diese müßte vom Typ Long (DINT) sein.
    Wird die Datei neu angelegt setzt du sie auf "0" - ansonsten erhöhst du sie mit jedem Schreiben in die Datei.
    Bist du über 40000 so hängst du an deinen Datei-Namen z.B. ein "-1" mit dran. Hat der Dateiname schon dieses "-1" erhöhst du die Zahl nach dem "-" um eins.

    Gruß
    Larry

  3. #3
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.746
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Zitat Zitat von michal Beitrag anzeigen
    Plöd ist nur, dass Excel nur 65.636 zeilen darstellen kann.

    Excel 2007 kann 1048576 Zeilen!
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  4. #4
    michal ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.01.2009
    Beiträge
    29
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    noch immer zu wenig.

    kann mir wer mein skript umschreiben? kenn mich bei vb gar nicht aus

  5. #5
    michal ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.01.2009
    Beiträge
    29
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hab mir folgendes noch zusammengeschustert:
    Code:
    'Speicherzeilen begrenzen
    SmartTags("datenspeicher") = SmartTags("datenspeicher") + 1
    If SmartTags("Datenspeicher") > 10 Then SmartTags("Print_NR") = SmartTags("Print_NR") + 1 End If
    If SmartTags("datenspeicher") > 10 Then SmartTags("datenspeicher") = 0  End If
    und der

    archivierungspfad wurde noch mit folgendem erweitert

    [HTML] ' Archivierungspfad und Dateiname zusammensetzen
    FName = StoragePath & "\Drucktest_Stopfen" & CStr(DatePart("d",Date)) & "_" & CStr(DatePart("m",Date)) & "_" & CStr(DatePart("yyyy",Date))& "_" & "Tabelle" &"_" & CStr(SmartTags("Print_NR"))& ".csv"[/HTML]
    Geändert von michal (30.08.2011 um 12:46 Uhr)

Ähnliche Themen

  1. Zeilenumbruch in einem Skript im Wincc
    Von PeterGötz im Forum HMI
    Antworten: 13
    Letzter Beitrag: 16.04.2014, 07:33
  2. frage zu WinCC Skript
    Von Gadget im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 14.06.2011, 19:45
  3. Skript WinCC Flexible
    Von Ruud im Forum HMI
    Antworten: 7
    Letzter Beitrag: 23.05.2011, 08:27
  4. WinCC C-Skript
    Von cordon-sport im Forum HMI
    Antworten: 6
    Letzter Beitrag: 12.08.2010, 07:35
  5. WinCC flexible und VB-Skript
    Von herdi im Forum HMI
    Antworten: 3
    Letzter Beitrag: 26.07.2008, 09:02

Lesezeichen

Berechtigungen

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