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

Ergebnis 1 bis 9 von 9

Thema: CSV Datei zyklisch erweitern auf SD Karte speichern und per FTP senden

  1. #1
    Registriert seit
    08.02.2012
    Beiträge
    71
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    ich steh vor einem Problem was mir unlösbar erscheint^^ aber sicherlich nur mir weil ich neuling bin bei dieser Programmiersprache.

    Ich habe eine Wago750-880 mit SD Card. Möchte nun Analogewerte die vom Datentyp REAL sind speichern. Und zwar zyklisch über ein neuen Task (das hab ich hinbekommen^^). Quasi soll immer der aktuelle Wert alle 60sec an die csv datei angehängt werden und auf die sd card speichern und jeden tag einmal per FTP versendet werden. Hat jmd eine Ahnung wie das funktioniert???


    Grüße
    Zitieren Zitieren CSV Datei zyklisch erweitern auf SD Karte speichern und per FTP senden  

  2. #2
    Registriert seit
    14.02.2012
    Beiträge
    21
    Danke
    3
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Hi, das abspeichern mit anhängen ist kein Problem. Beim Öffnen der Datei zwecks speichern geschieht mit dem Befehl SysFileOpen(Dateiname,Modus), wobei "Dateiname" ein String ist mit dem Namen der Datei und "Modus" in dem Fall 'a' für "append" was bedeutet, dass Informationen immer am Ende angehangen werden. Außerdem ist in dem Modus egal ob die Datei existiert, denn wenn sie es nicht tut, wird sie erstellt.

    Zum senden per FTP kann ich leider nichts sagen.

    Tante Edit meint: Im Dateinamen enhalten ist auch der Pfad. Entweder relativ (z.B. wenn man ihn ganz weg lässt) oder absolut soweit ich weiß.

    mfg altelulex

  3. #3
    carki ist offline Benutzer
    Themenstarter
    Registriert seit
    08.02.2012
    Beiträge
    71
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ja ok aber muss ich kein Pfad angeben und oder die Dateiart(txt,csv..o.ä) ? und nach open kommt dann SysWrite oder? ich bin verwirrt^^

  4. #4
    Registriert seit
    14.02.2012
    Beiträge
    21
    Danke
    3
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Jo da das Programm seinen Stammordner sicher nicht auf der SD-Card hat musst du einen pfad angeben. Die Endung .csv gehört bei Windows fest zum Dateinamen, muss also immer mit verwendet werden. Hier mal ein Beispiel:

    VAR
    FileNumber: DWORD; (*number of file (internal)*)
    WriteBuffer: STRING(250); (*buffer for writing to export*)
    END_VAR

    FileNumber := SysFileOpen(beispieldatei.csv, 'a'); (*open file for appending*)
    WriteBuffer := 'teststring';
    SysFileWrite(FileNumber, ADR(WriteBuffer), LEN(WriteBuffer)); (*writing to file*)
    SysFileClose(FileNumber); (*closing file*)
    Egal was du schreibst, du musst es vorher in einen string umwandeln. Das schreiben mit der Funktion "ADR()" ist nötig, da das Ende der Datei dynamisch im Speicher liegt.
    Am Ende das Schließen nicht vergessen und außerdem ist wichtig, dass das Öffnen, Schreiben und Schließen innerhalb eines Zykluses geschehen muss, da sonst Fehler entstehen.

    mfg altelulex

  5. #5
    carki ist offline Benutzer
    Themenstarter
    Registriert seit
    08.02.2012
    Beiträge
    71
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ah ja
    Danke danke es funktioniert endlich mal

    Gruß

  6. #6
    Registriert seit
    14.06.2011
    Ort
    Hansastrasse 27, 32423 Minden
    Beiträge
    109
    Danke
    9
    Erhielt 37 Danke für 25 Beiträge

    Standard

    Hallo,

    nur noch einmal zur Ergänzung: Will man auf die SD-Karte schreibend oder lesend zugreifen, ist dem Dateinamen der Laufwerksbuchstabe "s:\" voranzustellen. Wird dieser nicht angegeben, wird auf das interne Filesystem zugegriffen.

    Das Senden der Datei ist zudem in dem folgenden Anwendungshinweis gut beschrieben: http://www.wago.de/catalogue/downloa...ct=showAppnote

    Bei weiteren Fragen kannst Du uns auch gerne unter den unten genannten Adressdaten direkt kontaktieren.
    Ihr/Euer

    WAGO Support Team
    WAGO Kontakttechnik GmbH & Co. KG
    http://www.wago.com

    mailto:support@wago.com
    phone: +49 (0) 571 887 - 555

  7. #7
    Registriert seit
    13.09.2012
    Beiträge
    26
    Danke
    10
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Leute,

    Das gleiche möchte ich eigentlich auch Erreichen aber nur bis zur SD karte, aus Testgründen möchte ich nur mal schauen ob er die CSV datei erstellt. Leider geht es da nicht weiter, Er schreibt zwar den Wert in den Zwischenspeicher aber erstellt die Datei nicht.
    Könnt Ihr vieleicht helfen?

    Programmcode:

    VAR
    zaehler:INT;
    POSFLANK:BOOL;
    FLANKE:BOOL;
    POSFLANKE:BOOL;
    TONInst:TON;
    Timer_start:BOOL;
    Timer_signal:BOOL;
    FileName:STRING:='C:\Code.csv';
    FileMode:STRING:='w';
    SysFileOpenNumWORD;
    WriteBuffer:STRING;
    DWWrittenWORD;
    handleWORD;
    MODE:STRING;
    SIGNAL: BOOL;
    END_VAR



    IF SIGNAL= TRUE AND FLANKE = FALSE
    THEN POSFLANKE:= TRUE;
    FLANKE:=TRUE;
    ELSE
    POSFLANKE:=FALSE;
    END_IF

    IF SIGNAL = FALSE THEN FLANKE:=FALSE;
    END_IF

    IF POSFLANKE THEN zaehler:=zaehler+1;
    END_IF



    TONInst(IN:= NOT TONInst.Q,PT:=T#15s);
    Timer_signal:=TONInst.Q;

    IF Timer_signal
    THEN
    SysFileOpenNum:=SysFileOpen(Filename,FileMode);
    WriteBuffer:=INT_TO_STRING(zaehler);
    WriteBuffer:=CONCAT(WriteBuffer, ';');
    DWWritten:=SysFileWrite(SysFileOpenNum,ADR(WriteBuffer),LEN(WriteBuffer));
    SysFileClose(SysFileOpenNum);
    zaehler:=0;
    END_IF

    MFG

    newbie

  8. #8
    Registriert seit
    11.07.2004
    Beiträge
    1.597
    Danke
    10
    Erhielt 213 Danke für 183 Beiträge

    Standard

    die File Befehle brauchen teilweise sehr lange bis sie ausgeführt sind (vor allem das Schreiben), da kann sehr viel Zeit vergehen, eine Auswertung des Status ist unverzichtbar. Sinnvoll ist hier eine Schrittkette. Hier ein Auszug:

    Code:
    CASE stat OF
    
    100:
            Filename:='Setting.txt';
            Mode:='w';
            stat:=101;
    101:
            RGWW:=SysFileOpen(FileName, Mode);
            IF RGWW>0 THEN
                stat:=102;
            END_IF
    102:
            BytesDone:=    SysFileWrite(RGWW, ADR(G_HMI), SIZEOF(G_HMI));
            IF BytesDone = SIZEOF(G_HMI) THEN
                    stat:=103;
            END_IF
    103:
            SysFileClose(RGWW);
            Stat:=    104;

  9. #9
    Registriert seit
    19.06.2011
    Beiträge
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    Ich kann Dir da die Oscat Network lib empfehlen. Dort sind fertige Datenloggerbausteine enthalten. Du musst nur die network.lib etwas modifizieren, damit Du die Tcip von Beckhoff nicht benötigst. Die kostet nämlich etwas. Einfach so viel rausschmeißen, bis beim kompilieren keine Fehler mehr auftauchen. ist erst ne stunde arbeit. Läuft bei mir aber stabil. Ich lasse eine csv auf einen usbstick schreiben. Hardware Beckhoff cx9020 (ja, gerade frisch in der Auslieferung ... Alle 30 sek bei sieben tage Aufzeichnung Dateigröße ca 3mb... Auswertung mit Libreoffice als diagramm. Ausgewertet werden Strom, Spannung, Leistung, Arbeit.

    Gruß
    Frank

Ä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. Meldearchiv auf SD Karte speichern
    Von Starter im Forum HMI
    Antworten: 9
    Letzter Beitrag: 23.10.2010, 12:00
  3. Antworten: 0
    Letzter Beitrag: 21.03.2010, 07:56
  4. Antworten: 1
    Letzter Beitrag: 02.10.2009, 11:27
  5. Antworten: 10
    Letzter Beitrag: 18.10.2007, 19:54

Lesezeichen

Berechtigungen

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