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

Anfängerproblem mit SysLibFile

Wühlmaus
2012-08-03
2012-08-06
  • Wühlmaus - 2012-08-03

    Hallo zusammen,

    ich habe ein Problem mit der SysLibFile von Wago (Zielsystemdaten siehe Signatur).

    Ich möchte (zunächst mal) ein Array of Byte aus meiner Anwendung in eine Datei auf der Wago schreiben (landet dann wohl im FLASH-Memory der Wago).

    Als Einstieg habe ich aus dem Beispielprojekt "Datenverarbeitung.pro", welches Wago mit der Application Note zu diesem Thema anbietet, das PRG file_write in mein eigenes Projekt kopiert und die fehlende globale Definition für die Arraygröße (maxbytes) nachgetragen.

    Die im Beispielprojekt verwendeten Libs sind - mit Ausnahme von WagoLibFtp, welche ich für meine Zwecke zunächst nicht brauche - in meinem eigenen Projekt laut Ressourcen Manager schon vorhanden.

    Trotzdem meckert der Compiler, dass folgende Variablen nicht deklariert seien:
    SysFileOpen
    SysFileWrite
    SysFileClose

    Hmmm... hätte schwören können, das die genau von der SysLibFile geliefert werden sollen.

    (Das Beispielprojekt lässt sich übrigens fehlerfrei übersetzen.)

    Was mache ich falsch ?

     
  • Erik Böhm - 2012-08-03

    Mahlzeit

    Wenn du dein Projekt mal anhängen würdest, könnte man nachschauen.

    Gruß
    Erik

     
  • Wühlmaus - 2012-08-03

    Erik Böhm hat geschrieben:
    Wenn du dein Projekt mal anhängen würdest, könnte man nachschauen.

    Hallo Erik,

    danke für die schnelle Rückmeldung.

    Mein Projekt ist schon etwas komplizierter (über drei Jahre gewachsen), das möchte ich dir/euch denn doch nicht antun. Ich habe es aber um 99,9% abgespeckt, indem alle meine bisherigen PRG, FB, VISUs etc. gelöscht sind (die hatten mit FileWrite ja noch gar nichts zu tun). Die Bibliotheken und Einstellungen in der Entwicklungsumgebung habe ich aber unverändert gelassen.

    Nun ist das Ganze doch wesentlich übersichtlicher geworden und zeigt trotzdem noch genau die Compilerprobleme, die ich meinte.

    FileWriteTest.pro [143.17 KiB]

     
  • Erik Böhm - 2012-08-03

    Mahlzeit

    Bei mir ist die Simulation eingeschaltet. Ist das bei dir auch so ?
    Dann funktioniert die FileLib nämlich nicht.

    Gruß
    Erik

     
  • Erik Böhm - 2012-08-03

    Hallo

    Comipilieren kann ich beide Versionen. Mit Simulation oder ohne.
    Ohne Fehlermeldung.
    Und mit genau diesem Projekt hast du immer noch die selben fehler ?

     
  • Erik Böhm - 2012-08-03

    In deinem Beispiel fehlt die SysLibTime, ansonsten ist das alles in Ordnung.
    Ich vermute einen Tippfehler oder so.

     
  • Wühlmaus - 2012-08-03

    Erik Böhm hat geschrieben:
    Comipilieren kann ich beide Versionen. Mit Simulation oder ohne.
    Ohne Fehlermeldung.
    Und mit genau diesem Projekt hast du immer noch die selben fehler ?

    Ja genau damit. Er zeigt immer nur den ersten Fehler an (in diesem Fall "Variable SYSFILEOPEN nicht deklariert"). Wenn ich diesen beanstandeten Aufruf auskommentiere, stolpert er über SysfileWrite usw.

    Übrigens ist in meinem Projekt die Simulation immer ausgeschaltet, da ich grundsätzlich auf der Ziel-Hardware teste - so auch im hochgeladenen Beispiel.

    Vielleicht sollte ich noch erwähnen, dass ich seit längerem erfolgreich Emails mit Dateianhang (LogFile) versende. Ich selbst sehe da zwar nicht die Befehle für's File Handling. Ich nehme aber mal an, dass der Email Handler die SysFileLib intern verwendet, um das von mir übergebene Array of Bytes in eine CSV-Datei zu packen. Ich verwende dafür die maximal mögliche Buffer-Größe (ca. 40 KB, ist mir sowieso viel zu wenig). Kann es da Konflikte geben ? (Wenn ja, würde ich aber eher Laufzeitfehler erwarten als Compiler-Fehler).

     
  • Wühlmaus - 2012-08-03

    Erik Böhm hat geschrieben:
    In deinem Beispiel fehlt die SysLibTime, ansonsten ist das alles in Ordnung.
    Ich vermute einen Tippfehler oder so.

    Habe jetzt selbst noch mal in der Version nachgeschaut, die auf dieser Website für alle zugreifbar ist. Da steht im Ressourcen Manager an 7. Position: "Bibliothek SYSLIBTIME.LIB ... " Wie gesagt, an den Libs und sonstigen Einstellungen hatte ich nichts geändert.

     
  • Erik Böhm - 2012-08-03

    Schon mal mit 'Alles bereinigen' versucht ?

     
  • Wühlmaus - 2012-08-03

    Erik Böhm hat geschrieben:
    Schon mal mit 'Alles bereinigen' versucht ?

    Jetzt ja.

    Selbes Ergebnis.

     
  • Anonymous - 2012-08-06

    Originally created by: jl

    Hallo!

    Lösche mal die Bibblio "SysLibFile" aus dem Bibliotheksverwalter und binde sie dann neu in das Project ein, vielleicht besteht irgendein Versionskonflikt oder so. Ist nur so ein Vorschlag aber manchmal wenn man nicht mehr weiter weiss versucht man dann alles mögliche um das ding zum Laufen zu bringen.

     
  • Erik Böhm - 2012-08-06

    Moin

    Da habe ich dann auch keine Erklärung mehr.
    Lege doch mal ein neues Projekt an. Kopiere alle Bausteine aus dem 'alten' und lege den Bibliotheksverwalter noch mal neu an.
    Ich vermute da ist irgendwas schiefgegangen.

    Gruß Erik

     
  • Wühlmaus - 2012-08-06

    Danke für die Tipps, werd's heute abend mal probieren.

    Frau Wühlmaus meint, der Garten sei 1000x wichtiger als so'n komisches SysLibFile-Problem.

     

Log in to post a comment.