FB_CreateDir
Mit diesem Funktionsbaustein FB_CreateDir können neue Verzeichnisse auf dem Datenträger erstellt werden.
Dieser Funktionsbaustein ist nur bedingt für ein Logging in Echtzeit geeignet. |
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. |
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) |