Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

SysLibFile / SysFileOpen

l.farmer
2006-12-07
2006-12-24
  • l.farmer - 2006-12-07

    Hallo Forum,

    in der Anlage befindet sich ein kleines Testprogramm, mit dem ich das Verfahren für den In- und Export von Daten austesten möchte.

    Im oberen Teil des Programms wird ein Array mit 4 Spalten und 10 Zeilen erzeugt, welcher exportiert werden soll. Dieser Teil funktioniert.

    Mit dem Befehl in ST „File:=SysFileOpen('c:\Test\Data.dat','w');“ erhalte ich als Rückgabewert aber eine 0, d. h. Fehler . Meine Frage hierzu lautet, wie muß der Aufruf von „SysFileOpen“ korrekt aussehen ?

    Das Übersetzen des ganzen Programms läuft fehlerfrei ab!

    Viele Grüße und Dank im voraus!

    Leo

    ExampleCopyArrays_3.pro [24.89 KiB]

     
  • Anonymous - 2006-12-07

    Originally created by: Andy :-)

    hi leo,

    c:\Test\Data.dat kann nicht funktionieren...

    versuche es einmal mit c:\Test\Data.dat

    grüsse, andy

     
  • l.farmer - 2006-12-08

    Hallo Andy,

    den Syntax-Fauxpas habe ich beseitigt, der Rückgabewert File=0 (Fehler) aber bleibt !

    Die Frage, weshalb keine neue Datei generiert wird, ist also nicht geklärt.

    Gruß

    Leo

    ExampleCopyArrays_3.pro [24.89 KiB]

     
  • Benjamin - 2006-12-08

    Auf welchem System arbeitest du denn?

    Wenn ich dein Projekt öffne ist bei dir kein Zielsystem definiert. Bibliotheksfunktionen wie Echtzeituhr, Dateibehandlung, Kommunikationssysteme werden in der Simulation nicht funktionieren!

    Gruß

    Benjamin

     
  • l.farmer - 2006-12-09

    Hallo Benjamin,

    ich bin dabei, mich in CoDeSys einzuarbeiten. Die Literaturbeispiele von Seitz und Lepers

    haben bisher im Simulationsmode immer funktioniert.

    Deine Frage nach dem Zielsystem verstehe ich so, daß Lib-Funktionen wie SysRtcGetTime, SysFileOpen,.usw...aus Lizenzgründen im Simulationsmodus nur zusammen mit der entsprechenden Hardware funktionieren. Ich verwende den PFC 750-841. Habe ich Deine Frage so richtig verstanden?

    Trotzdem, mit SysFileOpen bin ich noch nicht weitergekommen. Der Rückgabewert ist immer noch File=0 (Fehler) .

    Im vorliegenden Fall, bei Verwendung der Hardware PFC 750-841, wenn File:=SysFileOpen('c:\Test\Data.dat', 'w'); zwischen Kommentarzeichen (...) gesetzt wird, läuft die Echtzeit:=SysRtcGetTime(dummy); wie erwartet. Wenn aber das Programm in dem Zustand, wie in der Anlage gezeigt, betrieben wird, steigt es mit der Fehlermeldung „Kommunikationsfehler (#0): es wird ausgeloggt“ aus. Es muß also noch irgendwo ein Fehler meinerseits vorliegen, welchen ich nicht finden kann. Beim Übersetzen treten jedenfalls keine Fehlermeldungen auf.

    Gruß

    Leo

    Testprog_2.pro [28.2 KiB]

     
  • Benjamin - 2006-12-10

    Da ich zu Hause keine Hardware habe musste ich das ganze mal mit der Soft-SPS von Codesys ausprobieren. Wenn du die Demoversion von Wago hast, kannst du die auch verwenden. Du musst nur noch die Targets für "3S CoDeSys SP PLCWinNT" installieren.

    Beim ersten Durchlauf hat alles einwandfrei funktioniert. Datei öffnen/neu anlegen funktionierte bestenes. Beim Neustart des Programmes habe ich dann allerdings immer "0" als Rückantwort erhalten, wie du auch immer.

    Erst nachdem ich die erzeugte Datei händisch gelöscht habe, funktionierte ein Programmablauf wie gewollt.

    Als Lösung konnte ich folgendes herausarbeiten:

    1) Datei öffnen/ neu anlegen

    2) Schreiben

    3) Datei schließen

    Damit hat es dann bei mir auf jeden Fall zuverlässig funktioniert.

    BTW: Bist du sicher, dass die Pfadangabe "c:..." für den 750-841 richtig ist? Bezweifle mal stark, dass da ein embedded Windows drauf läuft.

    Gruß

    Benjamin

     
  • gravieren - 2006-12-23

    Hi l.farmer

    Auf meine Home-Page unter Downloads kannst du dir

    eine Bibliothek (Quelltextoffen) und die passenden Examples dazu runterladen.

    Die Examples sind unter Wago 750-841 getestet ! ! !

     
  • gravieren - 2006-12-24

    Hallo Benjamin

    Zitat:
    BTW: Bist du sicher, dass die Pfadangabe "c:..." für den 750-841 richtig ist? Bezweifle mal stark, dass da ein embedded Windows drauf läuft.

    Pfadangabe "A:..." für den 750-841 müsste auch gehen.

    Oder einfacher mach es ohne, dann wird die Datei auf xxx.txt auf -->

    ftp://IP-ADRESSE/PLC/xxx.txt erzeugt.

     
  • gravieren - 2006-12-24

    @Andy

    Zitat:
    c:\Test\Data.dat kann nicht funktionieren...
    versuche es einmal mit c:\Test\Data.dat

    Wurde c:\Test (Ordner) erzeugt, b.z.w. existiert er schon ?

    Zudem A:\ ! ! !

    falls nein, sollte er erst erzeugt werden. Liegt hier euer Problem ?

    ( Wago 750-841 Filesystem)

    Wie gesagt, holt euch für die ersten "Gehversuche" mal die Bibliothek

    GK_FILE_1.01 und die Examples dazu.

    ( w www.magnia.de w )

    Wenn ihr erst einmal die Hürden überwunden habt, wollt ihr nicht mehr

    ohne Dateien arbeiten

    P.S. Ich habe auch eine weile gebraucht, hoffe euch zu helfen wie

        auch mir geholfen wurde.
    
     

Log in to post a comment.