Beckhoff CSV File, weitere Daten in bestehende Liste anhängen.

Wasabi85

Level-1
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Community,

Ich versuche nun schon seid geraumer Zeit weitere Daten in mein CSV File zu integrieren.

Eine Datei zu erstellen die ich mit Exel öffnen kann klappt wunderbar. Mein Problem ist nur das er bei jedem neuen Zyklus eine komplett neue Datei erstellt und dort wie vorher auch immer nur diese 1 Zeile mit Daten füllt.

Ich versuche das ganze mit den FB-Bausteinen von Twincat3 und einer CX9020 zu realisieren.

FB_FileOpen
FB-FileClose

etc.

Gibt es einen einfachen Trick oder einen Baustein damit er nicht jedesmal eine neue Datei eröffnet?

Er soll einfach immer in die gleiche Datei reinschreiben, einfach immer eine weitere Zeile unter der letzten, so das ich am Ende vll 500 Zeilen habe die man auslesen kann.

Freundliche Grüsse

Wasabi85
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das klappt soweit sehr gut. Danke dir :)

Nun meckert er nur noch wegen meiner Zeitangabe die ich für die Dateinamen mit eingestellt habe. Aber nur bei den Minuten? Wieso nicht bei den Sekunden Änderungen....

Jedesmal wenn eine neue Minute beginnt erstellt er ein neues Dokument, das soll er aber nicht machen sondern alles nur in diese eine Datei herein schreiben.

Ich lasse die Zeit mittels NT_GetTime Baustein erfassen und gebe sie dem Dateinamen und der Liste bei.

Wenn ich Ihm sage er soll die Zeitangabe nicht mehr zur Datei dazu schreiben gibt es jedoch eine Fehlermeldung und das ganze CSV Programm funktioniert nicht mehr.

Was kann ich da tun? Jemand ne Idee?

Freundliche Grüsse

Wasabi85


PS: Habe das Programm mal mit hochgeladen für die bessere Übersicht. Sind bestimmt noch viele Fragmente von meinen Versuchen drin, wenn Ihr noch was finden solltest was da gar nicht mehr von gebraucht wird bitte sagen :)
 

Anhänge

  • CSVFILE.txt
    7,4 KB · Aufrufe: 60
Zuletzt bearbeitet:
Wenn Du die Zeit in den Dateinamen einträgst, kriegst Du logischerweise eine neue Datei, weil es ja ein anderer Dateiname ist.
Ich nehme an, dass Du für das Weglassen der Zeit statt
Code:
   sFilePathWr:= CONCAT(sFilePath, sTimeFile);
   sFilePathWr:= CONCAT(sFilePathWr, sFileName);
dies geschrieben hast.
Code:
   sFilePathWr:= CONCAT(sFilePath, sFileName);
Ich kenne die Funktionen nicht, mit denen die Zeit in Strings umgewandelt wird, aber da sonst nichts davon zu sehen ist, muss der Zeitstring auch den Backslash "" enthalten, der zwischen Pfad und Dateiname stehen muss. Ich schätze, der wird Dir fehlen, wenn Du nur Pfad und Name zusammenfügst.
 
Das hat geholfen :) Danke dir

Könnte ich sonst noch etwas an dem Programm verbessern/löschen oder kann ich das so lassen?

Freundliche Grüsse

Wasabi85
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sieht doch ganz gut aus.
Bool-Abfragen kannst Du aber auch einfacher schreiben:
Statt IF (BoolVar=True)
IF BoolVar
Statt IF (BoolVar=False)
IF NOT BoolVar
Und für die Schrittnummern würde ich Konstanten oder Enumerationen verwenden, die aussagen, was in dem Schritt getan wird.
 
Meine unscharfe Phantasie meint, daß das (selbstgeschriebene?) Functions sind, die mit den Aufgaben SysTime-To-FileName und SysTime-To-String was zu tun haben könnten.

Harald
 
Zurück
Oben