ERROR_UNKNOWN bei CAA-Funktion FILE.DirCreate

2015-01-15
2015-01-18
  • RudolfAtITD - 2015-01-15

    Hallo an die Experten!
    Ich muss in meinem Projekt Daten in einer Datei in einem bestimmten Ordner auf der Steuerung ablegen. Dazu verwende ich die Funktion "FILE.DirCreate" als Erstes, um den Ordner anzulegen - falls er noch nicht existiert.
    Wenn der Ordner noch nicht existiert, wird er ordentlich angelegt.
    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 grober Pfusch!
    Was mache ich falsch?? Wie kann ich die Existenz des Ordners anders feststellen?
    Hier hängt der relevante Teil meines FBs an:

    VAR
      ...
      dirCreate:    FILE.DirCreate;   // CAA Lib: Create a folder
      ...
    END_VAR
    // ---FB part ----------------
          dirCreate.sDirName := sFolderName;  // Name des Ordners
          dirCreate.xParent := FALSE;
          dirCreate(xExecute := TRUE);
          IF (dirCreate.xError) THEN
            IF ((dirCreate.eError <> FILE.ERROR.EXIST) AND (dirCreate.eError <> FILE.ERROR.ERROR_UNKNOWN)) THEN
              eErrID := FILE_ERRORS.ErrAtCreate; // ==== Nur dann ist es ein Fehler!! ====
              xDone := TRUE;
              xError := TRUE;
              END_IF
             END_IF
          IF dirCreate.xDone OR xError THEN
            dirCreate(xExecute := FALSE);
          END_IF  
          IF xError THEN
            RETURN;       //---- Brake when error
          END_IF
    
     
  • Erik Böhm - 2015-01-16

    Mahlzeit

    1. Keine Angebe von Steuerungstyp oder Version oder sonstigem -> Keine sinnvolle Antwort möglich
    2. Vermutung: Falsches Forum ? V3 ?

    Gruß Erik

     
  • RudolfAtITD - 2015-01-18

    Hallo Erik, falsches Forum ist richtig - die Frage gehört nach V3.
    Wenn aber der Steuerungstyp und die Version bei aktuellen CAA-Bausteinen wichtig sind, wäre das ein Armutszeugnis für CODESYS - oder? CAA soll doch wohl überall fehlerfrei laufen.

    Gruß, Rudolf.

     

Log in to post a comment.