FB_EnumFindFileList

FB_EnumFindFileList 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_EnumFindFileEntry-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.

Wichtiger Hinweis:

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 Ressourcen (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;
    pFindList  : POINTER TO ST_FindFileEntry;
    cbFindList : UDINT;
    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: Steuerkommando für den Aufzählungsbaustein (Typ: E_EnumCmdType).

pFindList: Adresse (Pointervariable) einer Arrayvariablen von Typ: ST_FindFileEntry.

cbFindList: Bytegröße der Arrayvariablen vom Typ: ST_FindFileEntry.

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;
    nFindFiles : UDINT;
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.

nFindFiles: Anzahl der gültigen Einträge im Puffer.

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)