TwinCAT FTP Client: Löschen einer Datei vom FTP Server
In diesem Beispiel wird gezeigt, wie eine Datei vom FTP Server gelöscht wird.
Zunächst wird mit dem Baustein FB_FTP_Open eine Verbindung zum FTP Server hergestellt. Danach wird überprüft, ob die Datei, welche gelöscht werden soll, überhaupt auf dem FTP Server existiert. Dies geschieht mit dem Baustein FB_FTP_FileExist. Der Löschvorgang wird mit dem Baustein FB_FTP_FileRemove durchgeführt. Zum Schluss wird dann nur noch die Verbindung zum Server geschlossen.
Sie starten das Beispiel, indem Sie eine Positive Flanke mit der Variablen "startstop" erzeugen.
Variablendeklaration
PROGRAM MAIN
VAR
RisingEdge : R_TRIG;
startstop : BOOL;
state : BYTE;
FB_FTP_Open1 : FB_FTP_Open;
FB_FTP_FileExist1 : FB_FTP_FileExist;
FB_FTP_FileRemove1 : FB_FTP_FileRemove;
FB_FTP_Close1 : FB_FTP_Close;
busy : BOOL;
err : BOOL;
errid : UDINT;
handle : T_HFTP;
exist : BOOL;
END_VAR
SPS Programm
RisingEdge(CLK:=startstop);
IF RisingEdge.Q THEN
state := 1;
END_IF
CASE state OF
0:
;
1:
FB_FTP_Open1(
sNetID:= '5.0.252.142.1.1',
sHost:= '172.16.9.223',
nPort:= DEFAULT_FTP_PORT,
sUsername:= 'TestUser',
sPassword:= 'TestPwd123',
bExecute:= TRUE,
tTimeout:= T#15s,
bBusy=> busy,
bError=> err,
nErrID=> errid,
hFTP=> handle);
IF NOT busy AND NOT err THEN
state := 2;
FB_FTP_Open1(bExecute:=FALSE);
END_IF
2:
FB_FTP_FileExist1(
sNetID:= '5.0.252.142.1.1',
hFTP:= handle,
sFile:= '\TestFolder\File1.txt',
bExecute:= TRUE,
tTimeout:= T#15s,
bBusy=> busy,
bError=> err,
nErrID=> errid,
bExist=> exist);
IF NOT busy AND NOT err THEN
IF exist THEN
state := 3;
ELSE
state := 4;
END_IF
FB_FTP_FileExist1(bExecute:= FALSE);
END_IF
3:
FB_FTP_FileRemove1(
sNetID:= '5.0.252.142.1.1',
hFTP:= handle,
sFile:= '\TestFolder\File1.txt',
bExecute:= TRUE,
tTimeout:= T#15s,
bBusy=> busy,
bError=> err,
nErrID=> errid);
IF NOT busy AND NOT err THEN
state := 4;
FB_FTP_FileRemove1(bExecute:=FALSE);
END_IF
4:
FB_FTP_Close1(
sNetID:= '5.0.252.142.1.1',
hFTP:= handle,
bExecute:= TRUE,
tTimeout:= T#15s,
bBusy=> busy,
bError=> err,
nErrID=> errid);
IF NOT busy AND NOT err THEN
state := 0;
FB_FTP_Close1(bExecute:=FALSE);
END_IF
END_CASE
Einzubindende Bibliothek ist die "TcFTPClient.lib", "TcSystem.lib", "TcBase.lib" und "STANDARD.lib"