FB_CreateDir

FB_CreateDir 1:

Mit diesem Funktionsbaustein FB_CreateDir können neue Verzeichnisse auf dem Datenträger erstellt werden.

FB_CreateDir 2:

Dieser Funktionsbaustein ist nur bedingt für ein Logging in Echtzeit geeignet.
Für eine gute Performance empfehlen wir die Verwendung des kostenpflichtigen Produkts TF3500 TwinCAT Analytics Logger.

FB_CreateDir 3: Eingänge

VAR_INPUT
    sNetId    : T_AmsNetId;
    sPathName : T_MaxString;
    ePath     : E_OpenPath := PATH_GENERIC; (* Default: generic file path*)
    bExecute  : BOOL;
    tTimeout  : TIME := DEFAULT_ADS_TIMEOUT;
END_VAR

Name

Typ

Beschreibung

sNetId

T_AmsNetId

String, der die AMS-Netzwerkkennung des Zielgerätes enthält, an das der ADS-Befehl gerichtet wird (Typ: T_AmsNetId).

sPathName

T_MaxString

Name des neuen Verzeichnisses. Beim Aufruf des Bausteins kann nur ein neues Verzeichnis erstellt werden (Typ: T_MaxString).

ePath

E_OpenPath

Über diesen Eingang kann ein TwinCAT-Systempfad für das neue Verzeichnis auf dem Zielgerät angewählt werden (Typ: E_OpenPath).

bExecute

BOOL

Durch eine steigende Flanke an diesem Eingang wird der Funktionsbaustein aktiviert.

tTimeout

TIME

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

FB_CreateDir 4: Ausgänge

VAR_OUTPUT
    bBusy   : BOOL;
    bError  : BOOL;
    nErrId  : UDINT;
END_VAR

Name

Typ

Beschreibung

bBusy

BOOL

Bei der Aktivierung des Funktionsbausteins wird dieser Ausgang auf TRUE gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt. Solange bBusy = TRUE ist, kann kein neuer Befehl ausgeführt werden.

bError

BOOL

Wenn bei der Ausführung des Befehls ein Fehler auftritt, wird dieser Ausgang gesetzt, nachdem der bBusy-Ausgang zurückgesetzt wurde.

nErrId

UDINT

Liefert bei einem gesetzten bError-Ausgang den ADS-Fehlercode oder den befehlsspezifischen Fehlercode.

Befehlsspezifischer Fehlercode

Mögliche Ursache

0x723

Folder is already existing or invalid sPathName or ePath parameter.

Beispiel in ST:

Bei einer steigenden Flanke am bCreate wird im Hauptverzeichnis C:\ ein neues Verzeichnis mit dem Namen „PRJDATA“ erstellt und bei steigender Flanke am bRemove kann ein Verzeichnis mit dem gleichen Namen gelöscht werden.

Bei bBootFolder = TRUE kann ein Verzeichnis im Verzeichnis ..\TwinCAT\Boot erstellt oder gelöscht werden.

PROGRAM MAIN
VAR
    sFolderName   : STRING := 'PRJDATA'; (* folder name *)
    bBootFolder   : BOOL;

    ePath         : E_OpenPath; (* folders root path *)
    sPathName     : STRING;

    fbCreateDir   : FB_CreateDir;
    bCreate       : BOOL;
    bCreate_Busy  : BOOL;
    bCreate_Error : BOOL;
    nCreate_ErrID : UDINT;

    fbRemoveDir   : FB_RemoveDir;
    bRemove       : BOOL;
    bRemove_Busy  : BOOL;
    bRemove_Error : BOOL;
    nRemove_ErrID : UDINT;
END_VAR


ePath := SEL( bBootFolder, PATH_GENERIC, PATH_BOOTPATH );
sPathName := SEL( bBootFolder, CONCAT('C:\', sFolderName), sFolderName );

IF bCreate THEN
    bCreate := FALSE;
    fbCreateDir( bExecute := FALSE );
    fbCreateDir(sNetId:= '',
        sPathName:= sPathName,
        ePath:= ePath,
        bExecute:= TRUE,
        tTimeout:= DEFAULT_ADS_TIMEOUT,
        bBusy=>bCreate_Busy, bError=>bCreate_Error, nErrId=>nCreate_ErrID );
ELSE
    fbCreateDir( bExecute := FALSE, bBusy=>bCreate_Busy, bError=>bCreate_Error, nErrId=>nCreate_ErrID );
END_IF

IF bRemove THEN
    bRemove := FALSE;
    fbRemoveDir( bExecute := FALSE );
    fbRemoveDir(sNetId:= '',
        sPathName:= sPathName,
        ePath:= ePath,
        bExecute:= TRUE,
        tTimeout:= DEFAULT_ADS_TIMEOUT,
        bBusy=>bRemove_Busy, bError=>bRemove_Error, nErrId=>nRemove_ErrID );
ELSE
    fbRemoveDir( bExecute := FALSE, bBusy=>bRemove_Busy, bError=>bRemove_Error, nErrId=>nRemove_ErrID );
END_IF

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken (Kategoriegruppe)

TwinCAT v3.1.0

PC oder CX (x86, x64, ARM)

Tc2_System (System)