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

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

Thema: WINCCFlex Exceldatei mit Datum schreiben

  1. #1
    Registriert seit
    25.02.2008
    Ort
    Bayern
    Beiträge
    611
    Danke
    64
    Erhielt 27 Danke für 23 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    Ich möchte ein Excel - file in WINCCFlex Script erstellen mit den Namen "Datum+ Zeitstempel.
    Mit den Zeitstempel alleine wird die Datei richtig erstellt. Aber mit den Datum aus Now wird die Datei nicht erstellt.


    Verzeichnis = "D:\Eigene Dateien\Desktop\"
    Datei = CStr(Now)+Hex(CStr(SmartTags("Werte\Zeitstempel")(0)))

    Wer weiss, warum?
    Gruß
    Sailor
    Always look on the bright side of life
    Zitieren Zitieren WINCCFlex Exceldatei mit Datum schreiben  

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

    Standard

    Hallo,
    ich kann dir da auch nur mit einer Spekulation dienen :
    NOW ist ja ein zusammengesetztes Format, das Datum- und Uhrzeit-Informationen beinhaltet. Ich könnte mir vorstellen, dass das der Grund ist.
    Versuch es doch mal mit DATE - das sollte eigentlich auch schon ein String sein ...

    Gruß
    Larry

  3. #3
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.639
    Danke
    377
    Erhielt 803 Danke für 644 Beiträge

    Standard

    Datum ist einfach zu zerteilen mit Datepart.
    Hier ein Beispiel mit Format YYYY_M_D, z.B. "2012_3_13":
    Code:
    strPathAndFilename = "D:\Eigene Dateien\Desktop\" & CStr(DatePart("yyyy",Date)) & "_" & CStr(DatePart("m",Date)) & "_" & CStr(DatePart("d",Date)) & ".csv"
    Uhrzeit weiss ich nicht.

    N.B. Strings fügen man zusammen mit "&", nicht "+".
    Jesper M. Pedersen

  4. #4
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.639
    Danke
    377
    Erhielt 803 Danke für 644 Beiträge

    Standard

    Nach ein wenig nachlesen.
    Stunde und Minuten Zeit bekommt mant mit Hour(Now) und Minute(Now).
    Wenn du einfach Now verwendest, bekommst du ein string mit irgendeinen Format wie es in Windows Regionaleigenschaften eingestellt ist. "2012-03-13 1:45PM" z.B.

    Also dies sollte Datum und Uhrzeit in den Dateiname einbetten:
    Code:
    strPathAndFilename = "D:\Eigene Dateien\Desktop\" & CStr(DatePart("yyyy",Date)) & "_" & CStr(DatePart("m",Date)) & "_" & CStr(DatePart("d",Date)) & "_" & CStr(Hour(Now)) & "_" & CStr(Minute(Now)) & ".csv"
    Jesper M. Pedersen

  5. Folgender Benutzer sagt Danke zu JesperMP für den nützlichen Beitrag:

    sailor (13.03.2012)

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

    Standard

    Zitat Zitat von sailor Beitrag anzeigen
    Ich möchte ein Excel - file in WINCCFlex Script erstellen mit den Namen "Datum+ Zeitstempel.
    Soll das VB-Script in WinCC flexible auf einem Panel oder auf einem PC in der Runtime laufen?

    Verstehst Du unter Excel-File eine CSV-Datei?

    Gruß Kai

  7. #6
    Avatar von sailor
    sailor ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.02.2008
    Ort
    Bayern
    Beiträge
    611
    Danke
    64
    Erhielt 27 Danke für 23 Beiträge

    Standard

    @Jesper: Danke, das wars.

    @Kai: Auf einen PC. Warum? Es sol eine .xslx werden, da jede Menge diverse Werte drin sind.

    Mal ne andere Frage: Ich teste das Script unter WINCCFlex nur mit PLCSim von S7.
    Da braucht das Script ca. 5 sek., um die Datei zu erstellen und 6000 Werte aus der Steuerung (hinterlegt in 3 WINCCFlex Arrays) abzuholen und in die .xslx-Datei zu schreiben.
    Was meint ihr, wie lange es dauert, wenn ne "lebendige" CPU 315 dranhängt?

    Es grüßt
    Sailor
    Geändert von sailor (13.03.2012 um 15:15 Uhr)
    Always look on the bright side of life

  8. #7
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.639
    Danke
    377
    Erhielt 803 Danke für 644 Beiträge

    Standard

    Ich schreibe zu .csv Dateien und dann nur eine Zeile pro Schreibvorgang. Dies funktioniert zuverlässig.
    Keine Erfahrung mit .xslx. 6000 Werte ist schon etwas. Kann auch bei Kommunikationsbegrenzungen liegen. Ein S7 CPU hat eine Grenze bei 244 Bytes das man auf einmal lesen kann.
    edit: Und ob es eine Ähnliche Grenze bei PLCSIM gibt, keine Ahnung.
    Jesper M. Pedersen

  9. #8
    Avatar von sailor
    sailor ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.02.2008
    Ort
    Bayern
    Beiträge
    611
    Danke
    64
    Erhielt 27 Danke für 23 Beiträge

    Standard

    Du meinst, das ich ein Array mit 2000 Werten gar nicht auslesen kann?
    Ich lese auch in einer Schleife immer 3 Werte in eine Zeile allerdings eben 2000 mal.
    .xslx ist Excel 2010.
    Gruß
    Sailor
    Always look on the bright side of life

  10. #9
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.639
    Danke
    377
    Erhielt 803 Danke für 644 Beiträge

    Standard

    Man kann mehr als 244 bytes auslesen.
    Aber dann wandelt WinCC Flex es in mehrere lesevorgänge.
    Z.B. wenn man ein gepufferte Trendkurve aktualisert, dann sieht man aber wie der Kurve aufzeichnet in Teilen von 120 INTs jede Sekunde (oder wie Schnell man den Tag aktualiserzeit eingestellt hat).

    Was passiert wenn man ein ARRAY grösser als 244 Bytes in ein Skript einlest ?
    Ich vermute das die erste 244 Bytes werden auf einmal eingelest, egal ob man nur 3 Werte addressiert in den Skript.
    Die nachfolgene Werte behalten die alten Werte von den vorigen mal das den ARRAY addresiert wurde.
    Ich wurde dies sorgfältig testen auf eine reale CPU.
    Bitte das Ergebnis hier melden. Es wurde mich interessieren.
    Jesper M. Pedersen

  11. #10
    Avatar von sailor
    sailor ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.02.2008
    Ort
    Bayern
    Beiträge
    611
    Danke
    64
    Erhielt 27 Danke für 23 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Sorry, ich hab derzeit keine CPU am Tisch.
    Vielleicht gibts ja ein paar Zaungäste, die das Ding auf ne CPU laden könnten.
    Jasper, vielleicht wird das Arrayelement ja jedesmal aktualisiert, wenn mann es direkt (SmartTags...) anspricht und nicht über den Umweg über eine Script-Variable.

    Hier die Schleife:

    Do Until b >=2000

    'Schleifenindex
    b= b+1

    'Wert schreiben aus 3 WINCCFlex-Arrays: Werte_weg, Werte_FU, Werte_Zeitstempel mit je 2000 Elementen
    val_a = SmartTags("Werte\Werte_weg")(b)
    val_b = SmartTags("Werte\Werte_FU")(b)
    val_c = Hex(SmartTags("Werte\Zeitstempel")(b))

    ' Zelle beschreiben
    wsExcel.Cells (b, 1) = val_a
    wsExcel.Cells (b, 2) = val_b
    wsExcel.Cells (b, 3) = val_c

    Loop


    Gruß
    Sailor
    Always look on the bright side of life

Ähnliche Themen

  1. Antworten: 10
    Letzter Beitrag: 12.10.2015, 13:08
  2. Aktuelle Zeit und Datum in Array schreiben
    Von JanMichael im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 25.02.2011, 13:04
  3. Antworten: 7
    Letzter Beitrag: 11.09.2009, 14:01
  4. 840D Datum im NC Programm schreiben
    Von Guste im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 28.10.2007, 14:15
  5. Exceldatei öffnen
    Von uz71 im Forum HMI
    Antworten: 1
    Letzter Beitrag: 27.09.2006, 05:11

Lesezeichen

Berechtigungen

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