# csv Datei auf einer Wago PFC200 speichern



## Etty (28 März 2017)

Hallo zusammen,

ich bin absoluter Anfänger in der SPS Programmierung und will eine csv Datei auf der SD-Karte einer Wago 750-8203 speichern. Leider bin ich mir nicht sicher welchen Pfad ich dafür angeben muss. Bisher habe ich gelesen das der interne Speicher auf A:/ liegt und die SD-Karte auf S:/. Mit meinem Code kann ich ohne Probleme auf meinem Computer eine Datei erstellen doch leider nicht auf der SPS.

als sFileName habe ich: 's:\Datalog\test1.csv'

FileOpen(xExecute:= TRUE, sFileName:= sFileName, xExclusive:= FALSE, eFileMode:= File.MODE.MWRITE);


Das Web-Based Management zeigt mir bei der SD-Karte folgendes an: 
Memory Card
Device: /dev/mmcblk0
Volume Name: Datalog_1

Vielen Dank im voraus für jede Idee, wie ich den Dateipfad oder Namen abändern muss damit eine Datei erstellt wird.

Etty


----------



## wat84 (29 März 2017)

Hallo,

Pfad ist "/media/sd/...".
Kennst du eigentlich Datalogger und Plotter von Wago? (http://www.wago.de/suche/index.jsp?...neral_cms_de&lang=de-de&q=dataplotter&x=0&y=0)


----------



## Etty (29 März 2017)

Vielen Dank wat84, mein Programm funktioniert jetzt. 

Mit dem Datalogger von Wago habe ich bisher noch nichts gemacht, da bei der Installation immer eine Fehlermeldung von "CoDeSys 2.3 to 3.0 Converter" erscheint:"Cannot find 7 of 7 libraries"  und ich leider nicht weiß woher ich diese Librarys bekomme (SysLibTime.lib, SysLibFile.lib, ..., Standard.lib, Iecsfc.lib, SYSLIBCALLBACK.LIB). Nach meinem Verständnis müssten diese Bibliotheken eigentlich schon vorhanden sein, die "Standard.lib" ist ja auch schon in meinem Projekt vorhanden.

Etty


----------



## wat84 (29 März 2017)

Hallo,

wenn du eCockpit nutzt, ist die Lib bereits vorhanden und heißt "WagoAppDatalogger". Du hast wahrscheinlich versucht die Lib für Codesy 2.3 in eCockpit einzufügen.


----------



## Etty (29 März 2017)

Hallo wat84,

Ich nutze Codesys 3.5 SP10 und soll damit das Projekt erstellen und kann dies leider nicht ändern.

Etty


----------



## HausSPSler (29 März 2017)

hm... nicht so schlimm ;-)
also entweder http://store.codesys.com/csv-utility.html verwenden...
oder selber über Sysfile implementieren.
Grüße


----------



## Biffi (14 Februar 2019)

Hallo zusammen, 

ich möchte eine CSV Datei auf eine SD Karte in der Wago 8203 speichern, aber es Funktioniert leider nicht.
Hat jemand eine Idee was ich Falsch mache?


FUNCTION_BLOCK Daten_auf_SD_Karte_speichern

VAR

    FileNumber: DWORD; (*number of file (internal)*)
    WriteBuffer: STRING(250); (*buffer for writing to export*)
    FileMode:STRING(1):='a';

    Speichern: BOOL;

    Trennzeichen: STRING(1):= '_';

    Drehzahl2_string: STRING;
    DREHZAHL_string: STRING;

END_VAR

DREHZAHL_string:=INT_TO_STRING(DREHZAHL);
Drehzahl2_string:=INT_TO_STRING(Drehzahl2);


sStringausgabe20 := CONCAT(Echtzeit_String,Trennzeichen);
sStringausgabe20 := CONCAT(sStringausgabe20,RTC_MS_String);
sStringausgabe20 := CONCAT(sStringausgabe20,Trennzeichen);
sStringausgabe20 := CONCAT(sStringausgabe20,DREHZAHL_string);
sStringausgabe20 := CONCAT(sStringausgabe20,Trennzeichen);
sStringausgabe20 := CONCAT(sStringausgabe20,Drehzahl2_string);
sStringausgabe20 := CONCAT(sStringausgabe20,'$R'); 

IF  Speichern
THEN
FileNumber := SysFileOpen ('media/sd:/beispieldatei.csv', FileMode);
WriteBuffer := sStringausgabe20;
SysFileWrite(FileNumber, ADR(WriteBuffer), LEN(WriteBuffer)); (*writing to file*)
SysFileClose(FileNumber); (*closing file*)
END_IF


----------



## PN/DP (14 Februar 2019)

Du brauchst eine Schrittkette (für die Schritte: Datei öffnen - in die Datei schreiben - Datei schließen), die immer erst weiterschaltet wenn der Vorgang "fertig" meldet.

Harald


----------



## Biffi (14 Februar 2019)

Wie kann man überprüfen ob die Datei geöffnet wurde bzw. ob das schreiben in die Datei abgeschlossen ist um jeweils in den nächsten Schritt weiter schalten zu können? 

Schonmal vielen Dank für die Hilfe.
Biffi


----------



## CPI (11 März 2019)

Biffi schrieb:


> Wie kann man überprüfen ob die Datei geöffnet wurde bzw. ob das schreiben in die Datei abgeschlossen ist um jeweils in den nächsten Schritt weiter schalten zu können?



Schau dir mal die Hilfe an, da ist das relativ gut erklärt.
Beim Schreiben erhält man als Rückgabewert der Funktion SysFileWrite z.B. die Anzahl der erfolgreich geschriebenen Bytes.
Um die einzelnen Schritte zu Trennen eignet sich z. B. eine Switch-Case Anweisung sehr gut.


----------



## Biffi (29 Juni 2021)

Hallo zusammen,

ich habe eine CSV auf eine Wago SD karte geschrieben soweit klappt alles.
Jetzt meine Frage ich hab noch eine NO-Name SD-Karte hier und auf diese kann ich nicht schreiben.
Funktioniert das mit Ecockpit und dem Datenlogger nur mit einer Wago-SD-Karte oder muss man bei einer anderen SD Karte 
evt. zusätzlich etwas beachten?


----------



## oliver.tonn (29 Juni 2021)

Ich meine das sich WAGO da nicht so anstellt wie Siemens.
Stimmt das Dateisystem denn? Ist die Speicherkapazität der Karte eventuell zu groß?


----------



## Biffi (29 Juni 2021)

Von der Programmierung her ist alles gleich geblieben, wie bei dem Versuch mit der Wago karte, bei welcher alles geklappt hat. 
Die andere Karte hab ich über das wbm neu formatiert und sd genannt, wie auch die wago karte. Es ist eine 32GB sd karte.


----------

