FB_EnumFindFileEntry

FB_EnumFindFileEntry 1:

Dieser Funktionsbaustein durchsucht ein Verzeichnis nach einer Datei oder nach einem Unterverzeichnis, dessen Name dem spezifizierten Namen gleicht. Die gefundenen Einträge können einzeln ausgelesen werden. Siehe auch die Beschreibung des FB_EnumFindFileList-Funktionsbausteins. Mit dem Eingangsparameter eCmd kann durch die Liste der Einträge navigiert werden. Der eCmd-Eingang bestimmt z. B., ob der erste oder nächste Eintrag gelesen werden soll.

Wichtige Hinweise:

Eine neue Suche darf nur dann gestartet werden, wenn die vorherige Suche komplett abgeschlossen wurde. Für eine komplette Suche muss die Bausteininstanz eventuell mehrere Male aktiviert werden (durch steigende Flanke am bExecute-Eingang). Die Suche ist nur dann komplett abgeschlossen wenn bEOE =TRUE erreicht wurde oder wenn die Suche mit eCmd = eEnumCmd_Abort vorzeitig abgebrochen wurde.

Für das TwinCAT System ist die Suche möglicherweise noch nicht abgeschlossen, wenn von der SPS-Applikation die gesuchte Datei oder das Verzeichnis bereits gefunden wurde.

Wenn nicht alle Einträge ausgelesen werden sollen (d. h. bEOE=TRUE wird nicht erreicht), muss der Funktionsbaustein anschließend mit dem Eingangsparameter eCmd = eEnumCmd_Abort aufgerufen werden. Dies ist nötig, um den Suchvorgang abzuschließen und alle internen Resourcen (Datei-Handles) freizugeben. Wenn bEOE=TRUE erreicht wurde, oder ein Fehler auftritt, wird das eEnumCmd_Abort intern automatisch ausgeführt.

VAR_INPUT

VAR_INPUT
    sNetID    : T_AmsNetID;
    sPathName : T_MaxString;
    eCmd      : E_EnumCmdType := eEnumCmd_First;
    bExecute  : BOOL;
    tTimeout  : TIME := DEFAULT_ADS_TIMEOUT;
END_VAR

sNetID: Hier kann ein String mit der Netzwerkadresse des TwinCAT-Rechners angegeben werden, dessen Verzeichnis durchsucht werden soll (Typ: T_AmsNetID). Für den lokalen Rechner kann auch ein Leerstring angegeben werden.

sPathName: Ein gültiger Verzeichnisname oder Verzeichnis mit Dateinamen als String (Typ: T_MaxString). Der String kann folgende Platzhalter ( * und ? ) enthalten. Wenn der Pfad mit einem Platzhalter, Punkt oder dem Verzeichnisnamen endet muss der Benutzer Zugriffsrechte auf diesen Pfad und dessen Unterverzeichnisse haben.

eCmd: Kommandoparameter für den Aufzählungsbaustein (Typ: E_EnumCmdType).

bExecute: Über eine positive Flanke an diesem Eingang wird der Baustein aktiviert.

tTimeout: Gibt die Timeout-Zeit an, die bei der Ausführung des ADS-Kommandos nicht überschritten werden darf.

VAR_OUTPUT

VAR_OUTPUT
    bBusy      : BOOL;
    bError     : BOOL;
    nErrId     : UDINT;
    bEOE       : BOOL;
    stFindFile : ST_FindFileEntry;
END_VAR

bBusy: Bei der Aktivierung des Funktionsbausteins wird dieser Ausgang gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt.

bError: Sollte ein Fehler bei der Übertragung des Kommandos erfolgen, dann wird dieser Ausgang gesetzt, nachdem der bBusy-Ausgang zurückgesetzt wurde.

nErrId: Liefert bei einem gesetzten bError-Ausgang die ADS-Fehlernummer.

bEOE: Ende der Aufzählung wurde erreicht (end of enumeration). Beim ersten Versuch einen nicht existierenden Eintrag zu lesen wird dieser Ausgang auf TRUE gesetzt. D.h. so lange bEOE = FALSE und bError = FALSE ist, sind auch die gelesenen Einträge gültig.

stFindFile: Bei Erfolg liefert diese Strukturvariable Informationen zur gefundenen Datei (Typ: ST_FindFileEntry).

Beispiel:

Siehe: Beispiel: Dateisuche (FB_EnumFindFileEntry, FB_EnumFindFileList).

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken (Kategoriegruppe)

TwinCAT v3.1.0

PC oder CX (WES7/Win7/Win10: TC RT x86/x64, WEC6/7: TC RT x86, WEC7: TC CE7 ARMV7, TC/BSD: TC RT x64, TC OS ARMT2)

Tc2_Utilities (System)