FB_CreateDir
Mit diesem Funktionsbaustein können neue Verzeichnisse auf dem Datenträger erstellt werden.
VAR_INPUT
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
sNetId : Ist ein String, der die AMS-Netzwerkkennung des Zielgerätes enthält, an das der ADS-Befehl gerichtet wird.
sPathName : Der Name des neuen Verzeichnisses als String. Es kann nur ein neuer Verzeichniss beim einmaligen Aufruf des Bausteins erstellt werden.
ePath : Über diesen Eingang kann ein TwinCAT - Systempfad für das neue Verzeichnis auf dem Zielgerät angewählt werden.
bExecute : Durch eine steigende Flanke an diesem Eingang wird der Funktionsbaustein 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;
END_VAR
bBusy: Bei der Aktivierung des Funktionsbausteins wird dieser Ausgang gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt.
bError: Sollte ein ADS-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.
Function specific ADS error code | Possible reason |
---|---|
0x70C | Folder is already existing or invalid sPathName or ePath parameter. |
Beispiel in ST:
Bei einer steigenden Flanke am bCreate wird ein neues Verzeichnis mit dem Namen: 'PRJDATA' im Hauptverzeichnis 'C:\' erstellt und bei steigender Flanke am bRemove kann ein Verzeichnis mit dem gleichen Namen gelöscht werden.
Bei bBootFolder = TRUE kann ein Verzeichnis im ..\TwinCAT\Boot-Verzeichnis 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 |
---|---|---|
TwinCAT v2.10.0 Build > 1310 (CE image v2.17d or higher) | PC oder CX (x86, ARM) | TcSystem.Lib |