TwinCAT FTP Client: Auslesen einer Dateiliste von einem FTP Server
In diesem Beispiel wird eine Dateiliste von einem FTP Server gelesen.
Um dieses Beispiel ausführen zu können, sollten Sie einen Benutzer mit dem Namen "TestUser" und dem Passwort "TestPwd123" bei Ihrem FTP Server eingerichtet haben.
Mit einer positiven Flanke an der startstop Variablen wird eine Dateiliste erzeugt.
Zunächst wird eine Verbindung zum FTP Server mit dem FB_FTP_Open erzeugt. Danach werden alle Dateien ausgegeben die die Endung "*.txt" haben, mit dem Baustein FB_FTP_FileList vom FTP Server geladen.
Zum Schluss wird noch die Verbindung zum FTP Server mit dem Baustein FB_FTP_Close geschlossen.
Achten Sie darauf, dass der TestUser Schreib- und Leserechte besitzt.
Variablendeklaration
PROGRAM MAIN
VAR
RisingEdge : R_TRIG;
startstop : BOOL;
state : BYTE;
FB_FTP_Open1 : FB_FTP_Open;
FB_FTP_FileList1 : FB_FTP_FileList;
FB_FTP_Close1 : FB_FTP_Close;
busy : BOOL;
err : BOOL;
errid : UDINT;
handle : T_HFTP;
FileList : ARRAY [0..MAX_FILELIST_ITEMS] OF STRING;
Items : UDINT;
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:= 21,
sUsername:= 'TestUser',
sPassword:= 'TestPwd123',
bExecute:= TRUE,
tTimeout:= T#15s,
bBusy=> busy,
bError=> err,
nErrId=> errid,
hFTP=> handle);
IF NOT busy AND NOT err THEN
FB_FTP_Open1(bExecute:= FALSE);
state := 2;
END_IF
2:
FB_FTP_FileList1(
sNetID:= '5.0.252.142.1.1',
hFTP:= handle,
sMask:= '*.txt',
nIndex:= 0,
pList:= ADR(FileList),
cbList:= SIZEOF(FileList),
bExecute:= TRUE,
tTimeout:= T#15s,
bBusy=> busy,
bError=> err,
nErrID=> errid,
nItems=> Items);
IF NOT busy AND NOT err THEN
FB_FTP_FileList1(bExecute:= FALSE);
state := 3;
END_IF
3:
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
FB_FTP_Close1(bExecute:= FALSE);
state := 0;
END_IF
END_CASE
Einzubindende Bibliothek ist die "TcFTPClient.lib", "TcSystem.lib", "TcBase.lib" und "STANDARD.lib"