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"