.txt Datei lesen/schreiben

Conroe
2010-11-18
2010-11-23
  • Conroe - 2010-11-18

    Hi Leute,
    ich habe ein Problem mit der SysLibFile.lib. Es soll der Text 'Hallo Welt' in die Datei C:\test.txt geschrieben werden, die Datei habe ich bereits erstellt und sie ist leer. Leider klappt das nicht, bekomme immer von hFile eine 0 zurück(Fehler) müsste ja eigentlich '-1' beim Zielsystem CoDeSys SP RTE (lautDoku).

    Komme einfach nicht weiter, für Eure Hilfe wäre ich sehr dankbar.
    Viele Grüße@all!

    IF speichern THEN
    ( Öffnen zum Daten schreiben )
    hFile := SysFileOpen(FileName2,'w');
    anz_bytes:=SysFileWrite(File:= hFile ,Buffer:= ADR(Text),Size:=LEN(Text));
    hFileclose1:=SysFileClose(File :=hFile); (schließen der Datei mit Datei-Nummer)

    END_IF;

    IMG: SysLibFile.jpg

     
  • gravieren - 2010-11-18

    Hi

    Langsam "reiten"

    Bei deinem Code öffnest, schreibst und schließt du ca. 20 mal in der Sekunde.

    Das kann nicht gutgehen

    Mach doch mal schrittweise die aktionen.

    Zuerst öffnest du 1 mal die Datei.
    NICHT Zyklisch, Thema Flankenmerker !

    Das öffnen kann schon einige Zyklen dauern.

    Wenn du einen gültigen wert erhalten hast, NICHT mehr versuchen erneut zu öffnen.

    Erst wenn du ein gültiges Handle hat darauf schreiben, NICHT vorher.

    Bedenke, einige Befehle benötigen mehrere Zyklen.

    Die SPS wartet NICHT, bis das Dateihandle erfolgreich geöffnet wurde.

    Zu diesem Thema wurden von mir etliches geschrieben.

    Bitte benutze das "Suche" hier in diesem Forum.

    Gruß Karl

     
  • Conroe - 2010-11-18

    Danke für deine Antwort Karl! Werd mal das öffen und schließen der Datei über BOOL Var abfragen. Ich arbeite mich schon seit Stunden durch das Forum, daher hab ich auch den Code. In der Doku stehen halt immer nur die Var und eine Beschreibung dazu mehr nicht- klar für Profis reicht das auch

    LG

     
  • Erik Böhm - 2010-11-22

    Moin

    DU HAST DIE SIMULATION EINGESCHALTET !!!
    In der Simulation funktionieren keine SYS libs, weil keine Hardware vorhanden ist.

    Teste das ganze mal auf der WinNT oder auf der RTE.

    Gruß
    Erik

     
  • Conroe - 2010-11-22

    Hi Erik,
    ja da kann ich ewig rumprobieren wenn es im Simulations Modus nicht tut- danke für den Hinweis. Hab mal das Bsp. genommen:
    l viewtopic.php?f=4&t=2063 l
    Wenn ich den Hacken Simulation weg lasse kommt immer der "Kommunikationsfehler #0"
    Mit aktiver Simulation gibts halt immer nur 0 zurück...

    Ich bekomme Heut oder Morgen den 750-338 Koppler, dann teste ich nocheinmal.

    Grüße

     
  • Wonder48 - 2010-11-22

    In einen Koppler können keine Files geschrieben werden. Files schreiben geht nur mit einem programmierbaren Controller (z.B. 750-841).

     
  • Conroe - 2010-11-22

    Ok. Nur wo liegt nun das Problem wenn ich Daten aus einer .txt lesen will und als Zielsystem die SP RTE benutze?

     
  • Erik Böhm - 2010-11-22

    Hallo

    Gute Frage. Wo liegt denn das Problem ?
    Wenn die Simulation ausgeschaltet ist, dann sollte das so funktionieren.

    Gruß
    Erik

     
  • Conroe - 2010-11-22

    Ohne Simulation kommt der Kommunikationsfehler #0
    Muss ich unter Kommunikationsparameter etwas ändern?
    Gruß

    IMG: Kommubnikation.png

    IMG: Fehler.png

     
  • Erik Böhm - 2010-11-22

    Hallo

    Fangen wir mal von vorne an...

    1. Die RTE muss installiert sein. Dazu muss beim Setup von CoDeSys das entsprechende Häckchen gesetzt sein.
      Falls du ein Setup von Wago benutzt, wird vermutlich weder die RTE noch die WinNt mit enthalten sein.
      Dann musst du dir ein Setup direkt von 3S downloaden.
      Zugang gibts bei: e r.wagner@3s-software.com e

    2. Wenn die RTE dann installiert ist, muss sie auch noch aktiv sein und laufen. So wie deine Taskleiste aussieht ist das nicht der Fall.
      Die RTE ist eine SoftSPS. Sprich ein Dienst der unter (oder neben) Windows ausgeführt wird.

    Würde in etwa so aussehen wie in dem angehängten Screenshot.

    Dann noch StartSystem auswählen und in den Kommuniaktionseinstellungen SharedMemory auswählen.

    Hoffe ich hab nichts vergessen.

    Ansonsten Mail an: e erik.boehm@asys.de e , dann kann ich dir auch mal meine telefonnummer zukommen lassen.

    Gruß
    Erik

    IMG: RTE.jpg

     
  • Conroe - 2010-11-22

    Jepp auf dem Stand bin ich jetzt. Habe bei der PLC eine DEMO, diese läuft für 2Stunden.

    Beim Einloggen kommt die Meldung:

    Kein Programm auf der Steuerung. Soll Das neue Programm geladen werden?
    - JA

    Dann kommt Fehlermeldung: Anzahl der Daten sei zu groß für die Steuerung.

    IMG: RTE.png

     
  • Erik Böhm - 2010-11-22

    Hallo
    Dann kommen wir der Sache doch schon näher.

    IMG: RTE2.JPG

     
  • Conroe - 2010-11-22

    Danke Erik für dein Angebot und den Tipp, werd morgen Früh gleich daran weiter arbeiten.. Bis morgen!

     
  • Conroe - 2010-11-23

    Moin,
    leider hat das erhöhen des Wertes keine verbesserung gebracht

    IMG: Fehler_zu_groß.png

     
  • Erik Böhm - 2010-11-23

    Moin

    Häng doch mal dein Projekt als Archiv mit an.
    Irgendwas ist da total falsch eingestellt.

    Gruß
    Erik

     
  • Conroe - 2010-11-23

    Hier mein Projekt

    Datei_read.pro [29.96 KiB]

     
  • Erik Böhm - 2010-11-23

    Was ist denn bei Projekt->Optionen->Übersetzungsoptionen->Anzahl Datensegmente eingetragen ?

    Mit Default Einstellungen sowohl im Projekt als auch in der RTE funktioniert das bei mir tadellos.
    Inkl. lesen der Datei.

     
  • Conroe - 2010-11-23

    Anzahl Datensegmente: 1

     
  • Conroe - 2010-11-23

    Vielleicht in der Zieleinstellung was falsch?

    IMG: Ziel.png

     
  • Conroe - 2010-11-23

    Es tut!!!! JAAAAAAAAAAAAA. Nachdem ich die Werte für Data und Codesize aus der Doku genommen habe gehts, warum auch immer...? 1mal Absturtz RTE, 2mal ENI Absturtz beim 3 mal tut es plötzlich....

    Noch mal vielen Dank an dich Erik, du hast mir die richtigen Hinweise gegeben um es doch hinzukriegen! SUPER!

    Grüße

    IMG: Geht_doch.png

     
  • Erik Böhm - 2010-11-23

    Na Gott sei Dank...
    Ich hätte jetzt demnächst nicht mehr weiter gewusst.

     

Log in to post a comment.