Dateien auf externe Festplatte speichern

RonnyF
2009-08-13
2009-09-02
<< < 1 2 (Page 2 of 2)
  • gravieren - 2009-08-31

    Hi

    WHILE SysDirRead(Dir_Handle,strTemp,0) <> 0 DO

    i := i+1;

    eintraege[i]:= strTemp;

    END_WHILE;

    Du solltest mindestens die Arrays begrenzen ! ! !

    Was macht du, wenn i den Wert 8 hat ?

    Schreibst du dann in einträge[8] hinein ?

    Wo ist dieser Speicherplatz im Speicher

     

    Related

    Talk.ru: 8

  • RonnyF - 2009-08-31

    Hallo,

    lasse ich die Abfrage, ob ein Verzeichnis existiert weg, dann hängt sich die Wago nicht auf.

    Problem was weiterhin besteht:

    i läuft bis 3 in plc\daten und bis 16 in \plc. Jedoch werden in dem Array eintraege keine strings angezeigt.

    Da ich nun die Verzeichnisabfrage weggelassen habe, wie soll ich dann ein Verzeichnis anlegen in dem ich meine Daten speichere? Wenn ich nur \plc\daten\test.csv als Speicherpfad angebe ohne zuvor das Verzeichnis \daten angelegt zu haben werden meine Dateien nicht gespeichert.

    Gruß

    Ronny

     
  • gravieren - 2009-08-31

    Hi Ronny

    Nimm es NICHT Persönlich, nur ein Tip von mir.

    -Du kannst kein Schnellläufer werden, wenn du noch nicht einmal gehen kannst !

    lasse ich die Abfrage, ob ein Verzeichnis existiert weg,

    dann hängt sich die Wago nicht auf.

    O.K. Erstes Teilproblem gelösst.

    i läuft bis 3 in plc\daten und bis 16 in \plc.

    Bis 16 --> Schön, und wo glaubst du, werden die Daten hingespeichert ?

    Dein Array hat doch nur Platz für 5 "Zeichenketten".

    Du überschreibst möglicherweise Speicherplatz, der nicht "dir" gehört.

    Stelle sicher, das du NICHT auf falschnen Speicherplatz schreibst ! ! !

    (Arrays vergrössern, auf Grenzwerte abfragen)

    Jedoch werden in dem Array eintraege keine strings angezeigt.

    Siehe einige Zeilen höher, möglicherweise dein Problem.

    Da ich nun die Verzeichnisabfrage weggelassen habe,

    wie soll ich dann ein Verzeichnis anlegen in dem ich

    meine Daten speichere?

    Speichere doch woanders hin.

    Wenn ich nur \plc\daten\test.csv als Speicherpfad

    angebe ohne zuvor das Verzeichnis \daten angelegt

    zu haben werden meine Dateien nicht gespeichert.

    Logisch. Nimm doch mal als Test --> \plc\test.csv

    FRAGE:

    Was willst du eigentlich machen

    Willst du ein Verzeichnis erzeugen ?

    Willst du den inhalt der Dateien anzeigen.

    WICHTIG:

    Programmiere einen Schritt nach dem anderen.

    Jedoch der nächste Schritt erst, nachdem die erste aufgabe "sauber" gelöst ist.

     
  • gravieren - 2009-08-31

    Hi RonnyF

    Zwischenergebnisse sind willkommen.

    (Naturlich auch fragen)

     
  • gravieren - 2009-08-31

    Hi

    ergebnis:=SysDirOpen(verzeichnis); 
    IF ergebnis=0 THEN 
    result := SysDirCreate(verzeichnis); 
    END_IF; 
    (*Verzeichnis auslesen*) 
    Dir_Handle := SysDirOpen('\plc\daten'); 
    

    Du rufst hier 2 x SysDirOpen auf !

    Das ist NICHT optimal.

    Das "handle" sollte geschlossen werden, bevor es erneut geöffnet wird.

    oder du verwendest das erste geöffnete handle.

    Ich hoffe du weisst was ich meine.

    Frage zu SysDirCreate bei dir.

    Öffnest du das zyklisch oder nur mit steigender flanke ?

    ( Wird SysDirOpen bei einer Zykluszeit von 10ms bei dir 100 x pro Sekunde aufgerufen ?)

    Denke mal kurz darüber nach.

     
  • RonnyF - 2009-09-01

    Hallo gravieren,

    Zitat: "FRAGE:

    Was willst du eigentlich machen"

    Ich möchte meine gespeicherten Daten auf einen FTP senden. Dies funktioniert auch super. Aber was ist, wenn der FTP-Server einmal ausfällt. Z.z. wird nur die tagesaktuelle Datei versendet. Meine Vorstellung war jetzt, das Verzeichnis auszulesen und die vorhandenen Dateien zu versenden. Nach dem Senden werden diese Dateien gelöscht. Somit wollte ich die Strings aus dem Array "eintraege" meiner Variablen "datei_send" zuweisen. Ich denke mir, dass so alle Dateien nach einem FTP-Server-Ausfall versendet werden.

    Trage ich für das Array "eintraege" [1..16] ein, also die genaue Anzahl der Dateien, wird trotzdem nichts in das Array geschrieben. Ich habe keine Ahnung was ich noch machen könnte.

    Gruß

    Ronny

     
  • gravieren - 2009-09-01

    Hi RonnyF

    Wo dein Problem liegt kann ich nicht sagen.

    Lege hier doch mal dein aktuelles Projekt.

    (Bitte nur die kurzfassung, mit Verzeichnis . . )

    Ich werde es mir mal anschauen.

    Ich benötige diese Funktion erst in ca. 4-5 Wochen.

    Möglicherweise bringen wir beide das hin

    Meine Aufgabenstellung in ein paar Wochen ist die selbige.

    Ich hoffte, das wäre leicht zu lösen.

     
  • gravieren - 2009-09-01

    Hi RonnyF

    Ich denke, die Funktion auf der Wago arbeitet möglicherweise falsch.

    Ich habe das angehängte Projekt an Wago zur Überprüfung gesendet.

    Ich denke, diese Woche erhalte ich trotz Urlaubszeit eine Rückmeldung.

    Das Support-Team von Wago ist in dieser Beziehung vorbildlich.

    Bei Informationen diesbezüglich werde ich dich hier Informieren.

    P.S. Schau dir doch mal das Projekt von mir an, möglicherweise habe ich was übersehen.

    P.P.S. Ich werde mal morgen einen Test mit der FW17 machen.

    Wago 750 841 SysDirLib_Test.pro [27.2 KiB]

     
  • gravieren - 2009-09-01

    Hi

    Zur Info: Test mit 02.15.04(17) negativ, auch KEIN Erfolg

    ( Wago 750-841 mit Firmware 17 )

     
  • RonnyF - 2009-09-02

    Hallo Karl,

    also ich kann jetzt nichts bei deinem Projekt fehlerhaftes finden.

    Dann warten wir mal die Antwort von Wago ab.

    Ich denke der Fehler liegt irgendwo im Detail.

    Gruß

    Ronny

     
  • gravieren - 2009-09-02

    Hi Ronny

    Ich denke der Fehler liegt irgendwo im Detail.

    Wie recht du doch hattest.

    Entgegen der Dokumentation, wo es heisst,

    die "POINTER TO DIRECTORY_INFO" kann 0 sein.

    Der Wago-Support hat diesen Pointer belegt !

    Was soll mann sagen --> LÄUFT.

    Ein hoch auf den Wago-Support

    Anbei nochmals das von Wago geänderte Programm.

    (Das jetzt natürlich funktioniert)

    Gruss Karl

    Für die SuFu: SysDirLib , SysDirOpen , SysDirRead

    Wago 750 841 SysDirLib_funktioniert.pro [27.03 KiB]

     
<< < 1 2 (Page 2 of 2)

Log in to post a comment.