<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Datei-Verwaltung</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/1d2386a599/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/1d2386a599/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/1d2386a599/</id><updated>2020-02-28T11:50:14.598000Z</updated><subtitle>Recent posts to Datei-Verwaltung</subtitle><entry><title>Datei-Verwaltung</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/1d2386a599/?limit=25&amp;page=1#8e50" rel="alternate"/><published>2020-02-28T11:50:14.598000Z</published><updated>2020-02-28T11:50:14.598000Z</updated><author><name>Joachim Ueltzen</name><uri>https://forge.codesys.com/u/joachim-ueltzen/</uri></author><id>https://forge.codesys.com7a33f9d9f0cfeeefe6fd6d81cbbefd04ac48bb5c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;So, hab meine einzelnen Unterprogramme jetzt mal über die Tasksteuerung laufen lassen, und da klappts dann auch.&lt;/p&gt;
&lt;p&gt;Was mich da nur ein bisschen stutzig macht sind die Zykluszeiten, meistens liegen sie in einem verkraftbaren Bereich (16ms bei FileClose), aber die maximale Zykluszeit liegt hier bei 211ms, und das ist dann ja doch recht lange.&lt;/p&gt;
&lt;p&gt;Werd wohl mal ne eigene Bibliothek dafür schreiben, und schaun obs dann etwas schneller geht.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Datei-Verwaltung</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/1d2386a599/?limit=25&amp;page=1#0a93" rel="alternate"/><published>2020-02-28T11:50:07.092000Z</published><updated>2020-02-28T11:50:07.092000Z</updated><author><name>Joachim Ueltzen</name><uri>https://forge.codesys.com/u/joachim-ueltzen/</uri></author><id>https://forge.codesys.com577b739074949ca682f0daa24ee55194218a37e0</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;So, dann will ich mich hier auch mal zurückmelden. Hatte nen paar private Dinge zu klären. Und arbeite jetzt an dem Projekt weiter. Bin noch dabei ein paar Änderungen vorzunehmen. Aber in einer Woche muss das Problem mit der langen Speicherzeit dann gelöst sein.&lt;/p&gt;
&lt;p&gt;Wenn ichs gelöst habe, oder weiß was es verursacht hab werd ichs dann hier noch mal posten.&lt;/p&gt;
&lt;p&gt;(könnte wie Softwerker59 meint ja wirklich nur an dem Flash-Speicher liegen den ich im Moment noch zu Testzwecken nutze)&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Datei-Verwaltung</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/1d2386a599/?limit=25&amp;page=1#affc" rel="alternate"/><published>2020-02-28T11:50:04.389000Z</published><updated>2020-02-28T11:50:04.389000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.com9032e8e96026201517593fe940d3a208a1ec054f</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;Ich hab leider keine Quellen der SysLibFile() für die RTE.&lt;/p&gt;
&lt;p&gt;Aber wie gesagt, NULL stimmt fast immer, ausser bei der RTE.&lt;/p&gt;
&lt;p&gt;Darum frage ich das Handle auf &amp;gt; 0 ab, dann passts bei allen Zielsystemen.&lt;/p&gt;
&lt;p&gt;Gruss&lt;/p&gt;
&lt;p&gt;Erik&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Datei-Verwaltung</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/1d2386a599/?limit=25&amp;page=1#9b3f" rel="alternate"/><published>2020-02-28T11:49:56.346000Z</published><updated>2020-02-28T11:49:56.346000Z</updated><author><name>Softwerker59</name><uri>https://forge.codesys.com/u/softwerker59/</uri></author><id>https://forge.codesys.com44c4083f61eac24adaf073913c301cd42879f2fa</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Kurzer Auszug aus den Quellen vom  RTS der FileOpen-Funktion:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;            &lt;span class="nv"&gt;hFile&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;CreateFile&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;....&lt;span class="ss"&gt;)&lt;/span&gt;

           ........



&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;hFile&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nv"&gt;INVALID_HANDLE_VALUE&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;NULL&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Ist doch eine NULL, oder?&lt;/p&gt;
&lt;p&gt;Gruß &lt;/p&gt;
&lt;p&gt;Klaus&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Datei-Verwaltung</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/1d2386a599/?limit=25&amp;page=1#d67a" rel="alternate"/><published>2020-02-28T11:49:53.555000Z</published><updated>2020-02-28T11:49:53.555000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.comc7d9d7dc25463028b2d8e5878b6d83489990e593</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Mahlzeit&lt;/p&gt;
&lt;p&gt;Die Dokumentation ist wohl für die meisten Zielsysteme korrekt, aber die RTE bringt definitiv ein -1 zurück, wenn kein Handle verfügbar ist.&lt;/p&gt;
&lt;p&gt;Darum funktioniert in diesem Fall eine Abfrage auf &amp;lt;&amp;gt; NULL auch nicht .&lt;/p&gt;
&lt;p&gt;Gruss&lt;/p&gt;
&lt;p&gt;Erik&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Datei-Verwaltung</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/1d2386a599/?limit=25&amp;page=1#494d" rel="alternate"/><published>2020-02-28T11:49:46.151000Z</published><updated>2020-02-28T11:49:46.151000Z</updated><author><name>Softwerker59</name><uri>https://forge.codesys.com/u/softwerker59/</uri></author><id>https://forge.codesys.comce47f4ad161673767e76a605bb57606f228412a2</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo zusammen,&lt;/p&gt;
&lt;p&gt;wer sich mal die Mühe macht und die Dok vom 3S liest, wird feststellen, dass SysFileOpen() eine NULL zurückliefert, wenn's nicht geklappt hat. Alles andere sind gültige Handles.&lt;/p&gt;
&lt;p&gt;Die XC200 benutzt im Gegensatz zur XC100 die SysLibFile vom 3S, d.h.&lt;/p&gt;
&lt;p&gt;es sind Funktionen (keine FBs) , die im Zyklus ausgeführt werden. Die XC100 benutzt FBs, die in einer Hintergrundtask laufen.&lt;/p&gt;
&lt;p&gt;Ich habe mal ein Beispiel angehängt., wie man in der XC200 mit Files umgehen kann. Wichtig ist das Handling in einer separaten Task mit genug Laufzeit und die Statemachine, sonst schlägt der Watchdog an. Die Zeit zum Schreiben hängt stark von der zu schreibenden Datenmenge ab, außerdem wird die interne Flashdisk zunehmend fragmentiert, wenn oft geschrieben wird, d.h. die Zugriffe werden mit der Zeit langsamer. &lt;/p&gt;
&lt;p&gt;Gruß&lt;/p&gt;
&lt;p&gt;Klaus&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="https://forum-de.codesys.com//download/file.php?id=208" rel="nofollow"&gt;FileWriteExample.pro &lt;span&gt;&lt;span&gt;[31.57 KiB]&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Datei-Verwaltung</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/1d2386a599/?limit=25&amp;page=1#8c0a" rel="alternate"/><published>2020-02-28T11:49:43.472000Z</published><updated>2020-02-28T11:49:43.472000Z</updated><author><name>Erik Böhm</name><uri>https://forge.codesys.com/u/erik-boehm/</uri></author><id>https://forge.codesys.com559d9de806962dc3b39a2e1531887a4a0a0c47e6</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Moin&lt;/p&gt;
&lt;p&gt;Wenn das Filehandle eine mehr als 7 stellige Zahl ist, dann vermutlich: 4294967295.&lt;/p&gt;
&lt;p&gt;Das wäre dann ein -1, also ein ungültiges Handle.&lt;/p&gt;
&lt;p&gt;Sprich eine Fehlermeldung von FileOpen().&lt;/p&gt;
&lt;p&gt;Falls das eine RTE, oder was ähnliches mit ner Festplatte ist, dann dauert ein Filezugriff um die 15ms. Egal ob lesend oder schreibend.&lt;/p&gt;
&lt;p&gt;Wenn FileClose() so lange dauert, dann ist was Faul, oder das Medium ist ein Flash-Speicher, und der gesammte Puffer wird 'am Stück' geschrieben.&lt;/p&gt;
&lt;p&gt;Sollte die SPS zwischendurch noch was wichtigeres tun, dann muss das Filehandling in eine extra Task (nieder priorisiert) ausgelagert werden. Das würde ich aber sowieso empfehlen.&lt;/p&gt;
&lt;p&gt;Gruss&lt;/p&gt;
&lt;p&gt;Erik&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Datei-Verwaltung</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/1d2386a599/?limit=25&amp;page=1#e14d" rel="alternate"/><published>2020-02-28T11:49:36.076000Z</published><updated>2020-02-28T11:49:36.076000Z</updated><author><name>gravieren</name><uri>https://forge.codesys.com/u/gravieren/</uri></author><id>https://forge.codesys.com33f17f88df748230428843d543ddd34926b47038</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi Joachim Ueltzen&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
Also das Filehandel ist größer als sieben, ist glaub ich sogar größer als sieben-stellig . &lt;br/&gt;
Verändert sich aber auch nicht, also ist immer die selbe Ziffernfolge. Also bei jedem Datei-Zyklus das selbe Handel. &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Die "handles" eines WAGO 750-841 nehmen den Wert 1 bis ca.  7 an.&lt;br/&gt;
Leider hast du die Hardware NICHT angegeben.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
Mein Problem ist wohl doch ein anderes als das ursprüngliche in dem Topic. Habe den Watchdog deaktiviert, und jetzt läuft es auch.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Seltsam !&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
Man merkt merklich das der Schritt SysFileClose sehr lange dauert, und das PLC_PRG da eine sehr lange Pause macht (über 1s). &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ach so, die CPU-Zeit ist da wohl etwas lange geworden.&lt;/p&gt;
&lt;p&gt;Naja, Echtzeit hin oder her,  sollte die CPU-Zeit mal 1 oder 2 Sekunden sein, ist das nicht weiter schlimm   &lt;/p&gt;
&lt;p&gt;Spasbeiseite, mir würde das einen "Schock" versetzen.&lt;/p&gt;
&lt;p&gt;Steuert die SPS irgendwas wichtiges.&lt;/p&gt;
&lt;p&gt;Du willst "nur"  Messwerte in eine Datei schreiben.&lt;/p&gt;
&lt;p&gt;Hier fehlen dir möglicherweise einige Daten bei der Aufzeichnung ? &lt;/p&gt;
&lt;p&gt;(Oder wird erst kurz vor dem Schreiben die Me?werte gelesen)&lt;/p&gt;
&lt;p&gt;Dieses "Verhalten" der CPU würde mich beunruhigen.&lt;/p&gt;
&lt;p&gt;Hast du alles in eine Task geschrieben, ODER  für das Sichern eine eigene Task erzeugt.&lt;/p&gt;
&lt;p&gt;Ist die Haupttask freilaufend.&lt;/p&gt;
&lt;p&gt;Ich denke, ich sollte dieses eigenlich triviale Problem mal "analysieren".&lt;/p&gt;
&lt;p&gt;(Leider fehlt mir momentan die Zeit)&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Datei-Verwaltung</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/1d2386a599/?limit=25&amp;page=1#0375" rel="alternate"/><published>2020-02-28T11:49:33.392000Z</published><updated>2020-02-28T11:49:33.392000Z</updated><author><name>Joachim Ueltzen</name><uri>https://forge.codesys.com/u/joachim-ueltzen/</uri></author><id>https://forge.codesys.com98a003052368bfbe4cd00cc37df116a892f3a744</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Also das Filehandel ist größer als sieben, ist glaub ich sogar größer als sieben-stellig .&lt;/p&gt;
&lt;p&gt;Verändert sich aber auch nicht, also ist immer die selbe Ziffernfolge. Also bei jedem Datei-Zyklus das selbe Handel.&lt;/p&gt;
&lt;p&gt;Mein Problem ist wohl doch ein anderes als das ursprüngliche in dem Topic. Habe den Watchdog deaktiviert, und jetzt läuft es auch. Die Datei wird angelegt, und die Werte werden in die Datei geschrieben, und diese wird orgentlich geschlossen. Man merkt merklich das der Schritt SysFileClose sehr lange dauert, und das PLC_PRG da eine sehr lange Pause macht (über 1s).&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Datei-Verwaltung</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/1d2386a599/?limit=25&amp;page=1#6ce8" rel="alternate"/><published>2020-02-28T11:49:26.015000Z</published><updated>2020-02-28T11:49:26.015000Z</updated><author><name>gravieren</name><uri>https://forge.codesys.com/u/gravieren/</uri></author><id>https://forge.codesys.com5c4cba47fd6731c566d6ecff38de420c0852913f</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Zitat:&lt;/strong&gt;&lt;br/&gt;
Ich habe nun also mein Hauptprogramm, das die Messwerte einließt, und in einer AS die 3 Schritte Open, Write und Close. Die Datei wird auch geöffnet, die Daten werden geschrieben, aber beim close kommt immer der Watchdog-Fehler. Es sei denn man benutzt den Einzelschrittmodus, da wird die Datei auch ordnungsgemäß geschlossen, und man kann die Datei lesen. &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Mach doch mal ein Testprogramm.&lt;/p&gt;
&lt;p&gt;Schreibe alle Minute eine Text-Zeile hinein.&lt;/p&gt;
&lt;p&gt;Lese das Filehandle  "vor den 3 Aktionen aus".&lt;/p&gt;
&lt;p&gt;Lese das Filehandle "nach de 3 Aktionen" aus.&lt;/p&gt;
&lt;p&gt;Wird das Filehandle grösser als 7   ?&lt;/p&gt;
&lt;p&gt;Weitere Frage, wertest du die "Return"-Codes aus  ?&lt;/p&gt;
&lt;p&gt;Wo kommt ein Fehler.&lt;/p&gt;
&lt;p&gt;Das schreiben der Dateien erfolgt &lt;span style="color: underline;"&gt;NICHT in 1 CPU-Zyklus&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;(Es werden meherer Zyhlen hierfür benötigt)&lt;/p&gt;
&lt;p&gt;Teste doch mal unter Umständen mein Example auf meiner Homepage.&lt;/p&gt;
&lt;p&gt;Klappt es hiermit.&lt;/p&gt;
&lt;p&gt;Von hier aus kannst du weiter aufbauen.&lt;/p&gt;
&lt;p&gt;Wie immer sind wir für ein Feedback dankbar.&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>