<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to ERROR_UNKNOWN bei CAA-Funktion FILE.DirCreate</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d9e33d4577/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d9e33d4577/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Deutsch/thread/d9e33d4577/</id><updated>2020-02-27T23:55:50.075000Z</updated><subtitle>Recent posts to ERROR_UNKNOWN bei CAA-Funktion FILE.DirCreate</subtitle><entry><title>ERROR_UNKNOWN bei CAA-Funktion FILE.DirCreate</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d9e33d4577/?limit=25#5e75" rel="alternate"/><published>2020-02-27T23:55:50.075000Z</published><updated>2020-02-27T23:55:50.075000Z</updated><author><name>RudolfAtITD</name><uri>https://forge.codesys.com/u/rudolfatitd/</uri></author><id>https://forge.codesys.com8ef2dd0ab67408130d60fb9247426edfce358edc</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Vielen Dank, Edwin, &lt;/p&gt;
&lt;p&gt;ich werde mal die Funktion "Dirlist" einbauen. Wenn das funktioniert, ist mir wohler als mit diesem seltsamen Fehler.&lt;/p&gt;
&lt;p&gt;Zum Abschluss des Themas ein Gruß, Rudolf&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>ERROR_UNKNOWN bei CAA-Funktion FILE.DirCreate</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d9e33d4577/?limit=25#4515" rel="alternate"/><published>2020-02-27T23:55:48.370000Z</published><updated>2020-02-27T23:55:48.370000Z</updated><author><name>eschwellinger</name><uri>https://forge.codesys.com/u/eschwellinger/</uri></author><id>https://forge.codesys.comdd2e6aa957b96fe11b7e5c0e600428b2b15dc01d</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo Rudolf,&lt;/p&gt;
&lt;p&gt;sorry habs nicht genau genug gelesen,&lt;br/&gt;
ja ist einfach ein blöder Fehler, da gibt es schon einen BugTracking Eintrag dafür,&lt;br/&gt;
ich fürchte dir bleibt keine andere Möglichkeit als, im Falle des ERROR_UNKNOWN anzunehmen,&lt;br/&gt;
das das Verzeichnis schon existiert alternativ kannst du natürlich mit "DirList" dir die Verzeichnisse geben lassen und&lt;br/&gt;
wenn es schon existiert... naja dann musst du es ja nicht anlegen. &lt;br/&gt;
Hoffe das hilft dir weiter.&lt;/p&gt;
&lt;p&gt;Grüße&lt;br/&gt;
Edi&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>ERROR_UNKNOWN bei CAA-Funktion FILE.DirCreate</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d9e33d4577/?limit=25#2430" rel="alternate"/><published>2020-02-27T23:55:43.619000Z</published><updated>2020-02-27T23:55:43.619000Z</updated><author><name>RudolfAtITD</name><uri>https://forge.codesys.com/u/rudolfatitd/</uri></author><id>https://forge.codesys.com9b5feabe5d55101b73ce94fbcc17e6377f872aca</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo Edwin,&lt;/p&gt;
&lt;p&gt;ich hatte ja geschrieben, dass das Anlegen eines Ordners immer (!) ohne Problem funktioniert, wenn er noch nicht existiert. Das Problem taucht nur auf, wenn der anzulegende Ordner&lt;strong&gt; schon existiert &lt;/strong&gt;und der Baustein das nur sagen soll. Das tut er eben nicht, sondern er endet mit dieser seltsamen Fehlermeldung.&lt;br/&gt;
Ein work-around wäre eine Methode, die feststellt, ob ein Ordner existiert oder nicht. Gibt es das?&lt;/p&gt;
&lt;p&gt;Noch eine Info: Der Odner-Name (sFolderName im snippet) ist ein simpler String ohne jede Hierarchie. Der Ordner wird im Root-Ordner der Steuerung angelegt - wie gesagt - wenn er noch nicht existiert. Das sollte also für mein Problem nicht relevant sein.&lt;/p&gt;
&lt;p&gt;Ich hoffe immer noch auf einen Tipp! Gruß, Rudolf.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>ERROR_UNKNOWN bei CAA-Funktion FILE.DirCreate</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d9e33d4577/?limit=25#d96a" rel="alternate"/><published>2020-02-27T23:55:41.919000Z</published><updated>2020-02-27T23:55:41.919000Z</updated><author><name>eschwellinger</name><uri>https://forge.codesys.com/u/eschwellinger/</uri></author><id>https://forge.codesys.com50bd81e070bba0fcb36ece388a1f4da01e679b70</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;hm.. diesem snippet sieht mal leider nicht an wo du den Ordner anlegen willst (Pfad)&lt;br/&gt;
Ich könnte mir vorstellen, das es ein Rechteproblem unter Linux ist bzw Security technisch Festo in ihrer SPS nicht unbedingt erlaubt an x-beliebigen stellen erlaubt Verzeichnisse anzulegen.&lt;/p&gt;
&lt;p&gt;Grüße&lt;br/&gt;
Edwin&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>ERROR_UNKNOWN bei CAA-Funktion FILE.DirCreate</title><link href="https://forge.codesys.com/forge/talk/Deutsch/thread/d9e33d4577/?limit=25#9998" rel="alternate"/><published>2020-02-27T23:55:37.093000Z</published><updated>2020-02-27T23:55:37.093000Z</updated><author><name>RudolfAtITD</name><uri>https://forge.codesys.com/u/rudolfatitd/</uri></author><id>https://forge.codesys.com8d5b7cae3f1252d75c4086f02ee0021465f80e87</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hallo an die Experten! &lt;br/&gt;
Ich muss in meinem Projekt Daten in einer Datei in einem bestimmten Ordner auf der Steuerung ablegen. Dazu verwende ich die CAA-Funktion "FILE.DirCreate" als Erstes, um den Ordner anzulegen - falls er noch nicht existiert.&lt;br/&gt;
Wenn der Ordner noch nicht existiert, wird er ordentlich angelegt.&lt;br/&gt;
Wenn der Ordner schon existiert, hatte ich den Fehler "FILE.ERROR.EXIST" erwartet, damit wäre die Sache OK. Ich bekomme statt dessen aber fast(?) immer den Fehler "FILE.ERROR.ERROR_UNKNOWN". Den habe ich jetzt zwar zusätzlich abgefangen, das ist aber Pfusch!&lt;br/&gt;
Was mache ich falsch?? Wie kann ich die Existenz des Ordners anders feststellen?&lt;br/&gt;
Ein Leser hat gesagt, dass Steuerungstyp und Version wichtig sind, was ich eigentlich bei CAA nicht vermutet habe:&lt;br/&gt;
Steuerung: Festo CMMO-ST-LKPCODESYS V3.5 SP4 Patch1 pbFHier hängt der relevante Teil meines FBs an:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;VAR&lt;/span&gt;
  ...
  &lt;span class="nv"&gt;dirCreate&lt;/span&gt;:    &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;DirCreate&lt;/span&gt;&lt;span class="c1"&gt;;   // CAA Lib: Create a folder&lt;/span&gt;
  ...
&lt;span class="nv"&gt;END_VAR&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="o"&gt;---&lt;/span&gt;&lt;span class="nv"&gt;FB&lt;/span&gt; &lt;span class="nv"&gt;part&lt;/span&gt; &lt;span class="o"&gt;----------------&lt;/span&gt;
      &lt;span class="nv"&gt;dirCreate&lt;/span&gt;.&lt;span class="nv"&gt;sDirName&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;sFolderName&lt;/span&gt;&lt;span class="c1"&gt;;  // Name des Ordners&lt;/span&gt;
      &lt;span class="nv"&gt;dirCreate&lt;/span&gt;.&lt;span class="nv"&gt;xParent&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FALSE&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;dirCreate&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;xExecute&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;TRUE&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&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;dirCreate&lt;/span&gt;.&lt;span class="nv"&gt;xError&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="k"&gt;THEN&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;dirCreate&lt;/span&gt;.&lt;span class="nv"&gt;eError&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;ERROR&lt;/span&gt;.&lt;span class="nv"&gt;EXIST&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="nv"&gt;AND&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;dirCreate&lt;/span&gt;.&lt;span class="nv"&gt;eError&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;FILE&lt;/span&gt;.&lt;span class="nv"&gt;ERROR&lt;/span&gt;.&lt;span class="nv"&gt;ERROR_UNKNOWN&lt;/span&gt;&lt;span class="ss"&gt;))&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
          &lt;span class="nv"&gt;eErrID&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FILE_ERRORS&lt;/span&gt;.&lt;span class="nv"&gt;ErrAtCreate&lt;/span&gt;&lt;span class="c1"&gt;; // ==== Nur dann ist es ein Fehler!! ====&lt;/span&gt;
          &lt;span class="nv"&gt;xDone&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;TRUE&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
          &lt;span class="nv"&gt;xError&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;TRUE&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
          &lt;span class="nv"&gt;END_IF&lt;/span&gt;
         &lt;span class="nv"&gt;END_IF&lt;/span&gt;
      &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;dirCreate&lt;/span&gt;.&lt;span class="nv"&gt;xDone&lt;/span&gt; &lt;span class="nv"&gt;OR&lt;/span&gt; &lt;span class="nv"&gt;xError&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
        &lt;span class="nv"&gt;dirCreate&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;xExecute&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;FALSE&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;END_IF&lt;/span&gt;  
      &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;xError&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
        &lt;span class="k"&gt;RETURN&lt;/span&gt;&lt;span class="c1"&gt;;       //---- Brake when error&lt;/span&gt;
      &lt;span class="nv"&gt;END_IF&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry></feed>