csv Datei auf einer Wago PFC200 speichern

Etty

Level-1
Beiträge
25
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
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.
 
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
 
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
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
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.
 
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?
 
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.
 
Zurück
Oben