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

Ergebnis 1 bis 8 von 8

Thema: Wago: CSV Datei auf FTP Server schreiben

  1. #1
    Registriert seit
    11.09.2013
    Beiträge
    1
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen

    Wir möchten auf einem FTP Server eine .csv Datei mit Messwerten erstellen. Diese sollen nach 50 Messungen gesendet werden. Die Wago stellt die Verbindung her, das File wird erstellt, allerdings ist es nicht lesbar(Nur wirre Zeichen :-S)

    Die Messwerte werden als REAL erfasst und sollten auch als REAL (wenn möglich) abgelegt werden können. Als Trennzeichen für die .csv Datei werden STRING's benutzt.
    Abgelegt wird das ganze als ARRAY OF STRUCT:

    TYPE Erfassung :
    STRUCT
    dt_zeit : DT;
    re_spannung : REAL;
    st_Trennzeichen01 : STRING := ';';
    re_strom : REAL;
    st_Trennzeichen02 : STRING := ';';
    re_energie : REAL;
    st_Trennzeichen03 : STRING := ';';
    st_neue_zeile : STRING := '/n';

    END_STRUCT
    END_TYPE

    Wir versuchten die Daten ebenfalls schon als BYTE,STRING,INT etc. abzulegen, allerdings immer mit dem selben "Erfolg".

    Im Anhang ist das komplette File. Als Grundlage diente die Vorlage "Filewritesend" von Wago.

    http://www.wago.com/wagoweb/document...a114100d_f.htm

    Als Hardware benutzen wir eine Wago 750-849.

    Dank und Gruss.
    Angehängte Dateien Angehängte Dateien
    Zitieren Zitieren Wago: CSV Datei auf FTP Server schreiben  

  2. #2
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    749
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard

    Eine CSV-Datei ist eine reine Textdatei, Du musst die DT/REAL-Werte in Strings umwandeln. Aber nicht als einzelne Strings in dem Struct, sondern so, dass jede Textzeile ein zusammenhängender String ist (Stichwort "Concat"). Wenn Du so weit bist, würde ich mal in der WAGO-Lib nach einem FB suchen, der einzelne Strings in die Datei schreibt. Das wäre von der Programmierung her einfacher als mehrere Strings in ein Bytearray zu packen. Dabei müsstest Du nämlich noch, je nach WAGO-String-Speicherformat, das ich nicht kenne, das führende Längenbyte oder die Null am Stringende entfernen.

  3. #3
    Registriert seit
    03.08.2010
    Beiträge
    48
    Danke
    2
    Erhielt 15 Danke für 13 Beiträge

    Standard

    Hier mal ein kleines Beispiel wie wir eine Datei erstellen:

    Code:
    SysFileOpenNum:=SysFileOpen(Filename,FileMode);
    	WriteBuffer:=Datum;
    	WriteBuffer:=CONCAT(WriteBuffer, ';');
    	WriteBuffer:=CONCAT(WriteBuffer, Uhrzeit);
    	WriteBuffer:=CONCAT(WriteBuffer, ';');
    	WriteBuffer:=CONCAT(WriteBuffer, sTagesmenge);
    	WriteBuffer:=CONCAT(WriteBuffer, ';');
    	WriteBuffer:=CONCAT(WriteBuffer, '$R$N');
    	DWWritten:=SysFileWrite(SysFileOpenNum,ADR(WriteBuffer),LEN(WriteBuffer));
    	SysFileClose(SysFileOpenNum);

  4. #4
    Registriert seit
    06.05.2004
    Beiträge
    51
    Danke
    20
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo zusammen das schreiben hat geklappt, nun ist das Problem, dass die geschriebene .csv ungültige Zeichen enthält. Im Anhang seht ihr den Array, welcher in die Datei geschrieben wird und daneben eine csv Datei. In der Csv werden 0 und auch $n geschrieben, welche gar nicht im Array enthalten sind. Ich habe auch schon versucht das Array mit Leerschlägen zu überschrieben, auch dies half nicht. Weiss jemand an was das liegen kann? Besten Dank und Grüsse
    Angehängte Dateien Angehängte Dateien
    Zitieren Zitieren Ein weiteres Problem, die csv Datei enthält ungültige Zeichen  

  5. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.186
    Danke
    923
    Erhielt 3.291 Danke für 2.660 Beiträge

    Standard

    Ich weiß nicht, wo Du das mit dem $n her hast (und was das überhaupt für ein (nicht genormtes? oder nicht genau dokumentiertes) Zeichen ist).
    Doch ersetze mal alle $n durch die zwei Zeichen $R$L (0x0D 0x0A).

    Wenn man unbekannte Dateiformate erzeugen will, dann macht es großen Sinn, sich eine Original-Datei des Ziel-Dateitypes und die selbst erzeugten Dateien mit einem Hexeditor anzuschauen und zu vergleichen.

    Was Excel versucht automatisch aus einem unbekannten Dateiformat herauszuinterpretieren kann man nicht beeinflussen. Man muß halt einfach normgerechte Dateiformate erzeugen.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  6. #6
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.186
    Danke
    923
    Erhielt 3.291 Danke für 2.660 Beiträge

    Standard

    Es könnte auch sein, daß Du die Zeichenfolge $R$N verwenden mußt. Auf jeden Fall müssen es die Zeichen 0x0D 0x0A sein. Um ganz sicher zu gehen kann man auch $0D$0A schreiben.

    Anscheinend gibt es keine vernünftige Dokumentation, welche Zeichen genau CoDeSys bzw. ST unter $L, $N und $R meint. Ich finde auf die Schnelle nichts.
    Selbst die Bücher über die 61131 sind sich da anscheinend uneins. Beispiel

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  7. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    Mathias (30.09.2013)

  8. #7
    Registriert seit
    06.05.2004
    Beiträge
    51
    Danke
    20
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Besten Dank für die Antwort, es war der Befehl '$l' der funktioniert. Grüsse Mathias
    Zitieren Zitieren Es hat geklappt  

  9. #8
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.186
    Danke
    923
    Erhielt 3.291 Danke für 2.660 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Nochmal ganz deutlich formuliert: es müssen die zwei Zeichen $R $L ($0D $0A) zusammen sein, damit die CSV-Datei ganz kompatibel wird.
    Nur eines von beiden ist nicht genug.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. B&R Kopieren einer Datei auf einen FileZilla FTP-Server
    Von gaiskasimir im Forum Sonstige Steuerungen
    Antworten: 21
    Letzter Beitrag: 20.03.2015, 19:14
  2. Antworten: 8
    Letzter Beitrag: 26.12.2012, 15:56
  3. Antworten: 3
    Letzter Beitrag: 16.11.2012, 12:55
  4. Prüfe, ob Datei auf FTP Server vorhanden ist (Wago 750-849)
    Von Tenobaal im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 16.04.2012, 18:34
  5. FTP-Server Datei Operationen
    Von Christian Schröder im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 23.03.2012, 11:12

Lesezeichen

Berechtigungen

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