Textdatei von USB in Arrays lesen (Beckhoff)

Zuviel Werbung?
-> Hier kostenlos registrieren
Für später muss ich mir da was besseres einfallen lassen

Und warum nicht gleich?
Den Parser musst Du doch eh selbst programmieren. Statt ihn auf ein ARRAY OF STRING loszulassen kannst Du ihn mit überschaubarem Mehraufwand auch mit einem ARRAY OF BYTE füttern, das die gesamte Datei enthält. Dann könntest Du die ganze Datei im Binärmodus mit nur einem File-FB-Aufruf laden.
 
Den Parser musst Du doch eh selbst programmieren. Statt ihn auf ein ARRAY OF STRING loszulassen kannst Du ihn mit überschaubarem Mehraufwand auch mit einem ARRAY OF BYTE füttern, das die gesamte Datei enthält. Dann könntest Du die ganze Datei im Binärmodus mit nur einem File-FB-Aufruf laden.

Der Satz verwirrt mich jetzt vollständig, mit File Zugriffen habe ich nämlich unter TwinCat noch nie zu tun gehabt!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wir sind bei Beckhoff, also rechne mal lieber mit 1 ms. ;-)
Ich bin auch ziemlich nah bei Beckhoff - kann es zwar nicht exakt in ms ausdrücken, aber es sind ziemlich genau 15 km zwischen Beckhoff und mir, sofern nicht wieder irgendwo auf dem Wege eine Baustelle stört. :ROFLMAO:
Sieh meine Wahl von 10 ms bitte als WurstKäseVorsichtsMassnahme (worst case) an, nicht als Ignorierung oder gar Diffamierung von möglichen oder wahrscheinlichen ZyklusZeiten!

Zeit hin oder her, ich mache solche langwierigen Dateizugriffe nur ungern. Habe immer Angst, dass jemand zu ungeduldig ist und den Rechner aus- und wieder einschaltet.
Es könnte auch jemand seiner SammelLeidenschaft für USB-Sticks erliegen, während man mal für einen Moment woanders hinguckt!
Einem Kollegen wurde immerhin mal die FestPlatte aus seinem NoteBook geklaut, während er mal nur ganz kurz abgelenkt war. :ROFLMAO:
 
Es könnte auch jemand seiner SammelLeidenschaft für USB-Sticks erliegen, während man mal für einen Moment woanders hinguckt!
Einem Kollegen wurde immerhin mal die FestPlatte aus seinem NoteBook geklaut, während er mal nur ganz kurz abgelenkt war. :ROFLMAO:

Die Gefahr habe ich noch gar nicht gesehen. Aber Du hast Recht, in 8, oder eben 80 Sekunden kann viel passieren. :ROFLMAO:
 
@flar2000:
Eine Datei ist erstmal nur eine Byte-Wurst. Ob ihr Inhalt als Text(e) oder Bytes interpretiert wird, ist der Datei gleichgültig. Wenn Du sie als Textdatei einliest, macht der FB_FileGets bei jedem Vorkommen von CR/LF (Bytewerte 13/10) erstmal Schluss, um Dir genau eine Textzeile zurückzuliefern. Im Binärmodus kannst Du die Datei dagegen in einem Rutsch in ein ARRAY OF BYTE laden. Dein Parser muss dann halt nicht nur die Zahlenwerte herausfischen, sondern auch CR/LF selbst erkennen, aber das dürfte den Kohl nicht fett machen.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Prinzipiell brauchst Du dafür Beckhoff-FBs aus der Tc2System Bibliothek:
FB_FileOpen zum Öffnen der Datei
FB_FileGets zum Lesen der Textzeilen
FB_FileClose zum Schliessen der Datei
Der FB_FileGets liest allerdings immer nur eine Zeile pro Aufruf, und jeder Aufruf braucht mindestens 2 SPS-Zyklen, den ersten zum Starten des Dateibefehls und den zweiten zum Prüfen, ob der FB seine Aufgabe erledigt hat. Bei 4000 Zeilen also mindestens 8000 SPS-Zyklen. Hast Du soviel Zeit?

Muss jetzt hierzu noch einmal eine Frage stellen.... Dieses File muss jedes einzelne mal geöffnet werden oder reicht das Ganze einmal, und nach dem abrufen kann ich jedes mal bis zum Ende des Files die Funktion FileGets verwenden?
Und wen bEOF erreicht ist das File schließen?
 
Muss jetzt hierzu noch einmal eine Frage stellen.... Dieses File muss jedes einzelne mal geöffnet werden oder reicht das Ganze einmal, und nach dem abrufen kann ich jedes mal bis zum Ende des Files die Funktion FileGets verwenden?
Und wen bEOF erreicht ist das File schließen?
- 1-mal vorab Öffnen
- abwarten bis DateiÖffnen beendet ist
- wenn FehlerMeldung vom Öffnen, dann Rest überspringen
- n-mal, solange nicht bEOF, Satz lesen (und verarbeiten)
- 1-mal Datei schliessen

PS:
Keinesfalls nach dem ersten Lesen die Datei schliessen und wieder neu öffnen, denn dann liest Du immer nur den ersten Satz!
 
Zuletzt bearbeitet:
Zurück
Oben