Hallo Oliver,
ich hab mir dein Programm angesehen und folgendes festgestellt:
1. Problem beim Schließen der Datei
Für beide Dateien wurde die gleiche Instanz des "FileClose" Bausteins verwendet. Soll z.B. die Datei "name" geschlossen werden, wird der FB für diese Datei mit Strobe = TRUE aufgerufen, hierbei wird die Datei auch korrekt geschlossen. Weiter unten im Zyklus wird der gleiche FB für die 2. Datei mit Strobe = FALSE aufgerufen, es passiert zunächst mal nichts. Die Strobe -Eingänge der Bausteine sind Flanken-gesteuert, d.h der Baustein wird nur bei einer steigenden Flanke am Strobe Eingang ausgeführt. Um ihn das nächste mal auszuführen, muss zuerst ein FALSE am Eingang erkant werden. Dieses False wurde aber bei dem Versuch die 2. Datei zu schliessen erkannt, da die gleiche FB-Instanz (File_Close_1) für beide Files verwendet wurde. Im nächsten Zyklus wird der Baustein für die Datei "name" wieder mit Strobe = TRUE aufgerufen, und da der Baustein wieder eine steigende Flanke erkennt, erneut ausgeführt. Da die Datei aber bereits beim ersten Aufruf geschlossen wurde, gibt's die Fehlermeldung "File Invalid File Handle".
Abhilfe: fur beide Dateien eigene Baustein-Instanzen anlegen, wie bei open, read und write auch.
2. ) Datei kann nicht geschrieben, bzw. gelesen werden.
Die Bausteine "FileRead" und "FileWrite" besitzen als Eingang den Parameter "dwSize". Hier muss angegeben werden, wie viele Bytes geschrieben, bzw. maximal gelesen werden sollen. In deinem Programm waren die Eingänge beim Schreiben und beim Lesen nicht beschaltet.
Die Bausteine besitzen ausserdem den Ausgang "dwWriteSize" bzw. "dwReadSize". Hier kann nach Beendigung der Aktion festgestellt werden, wieviele Bytes wirklich übertragen worden sind.
Abhilfe: Eingänge mit gewünschter Länge belegen
3.) Datei wird nach der Übertragung durch die Oberfläche nicht gefunden.
Dieser Effekt entsteht durch einen Fehler im Betriebssystem der EC4. Die Dateien sollen beim Transfer in einem bestimmten Unterverzeichnis auf der Speicherkarte abgelegt werden. Durch den Fehler werden sie aber irrtümlich im Root-Verzeichnis abgelegt. (Ist in der nächsten Version behoben !)
Abhilfe:
1. MMC in Kartenleser stecken und Datei dort in das Unterverzeichnis "PROJECT" kopieren. (Kompatibel mit nächster Version)
oder: Datei über Oberflächce auf Speicherkarte laden und im Dateinamen den Pfad "A:\Dateiname" angeben.
Das geänderte Testprojekt habe ich wieder angehängt.
Viele Grüße
Dieter