Acest bloc funcțional de la rulați în sarcina Înapoi, vă permite să gestionați conexiunea la serverul FTP definit în FTPServer cu numele de utilizator definit în User și parola definită în Password.
activarea Store fișierul local definit în LocalFile este transferat pe serverul FTP cu numele indicat în RemoteFile, odată ce transferul este finalizat, ieșirea este activată Done care rămâne activ până când comanda este dezactivată.
activarea Retrieve fișierul de pe serverul FTP cu numele indicat în RemoteFile este transferat local cu numele definit în LocalFile, odată ce transferul este finalizat, ieșirea este activată Done care rămâne activ până când comanda este dezactivată.
activarea Delete fișierul de pe serverul FTP cu numele indicat în RemoteFile este șters și ieșirea este activată Done care rămâne activ până când comanda este dezactivată.
În cazul unei erori, execuția comenzii se încheie și ieșirea este activată pentru o buclă Fault iar ieșirea este activată Done care rămâne activ până când comanda este dezactivată.
Lista de upgrade
- Dacă obiectul actualizat nu se află în cea mai recentă versiune a pachetului, consultați capitolul "Actualizarea bibliotecilor"În acest articol.
- Obiectele învechite sunt plasate în bibliotecă eLLabObsoleteLib a se referi la manualul aferent și să manual de programare în format pdf.
FTPClient_v4
Parametrul eliminat Timeout, parametri adăugați TRatio, ETime e CRetry, ieşire. Gestionare îmbunătățită a CV-urilor pe comenzi Store e Retrieve.
Datalogger cu transfer automat de fișiere pe server FTP
Programul de FTPDataLogger (Descarcă) realizează achiziția a 2 intrări analogice și în fiecare minut stochează valorile pe un fișier în format CSV, în fiecare oră fișierul jurnal este transferat automat pe un server FTP la distanță în cloud.
Programul poate fi modificat pentru a se potrivi nevoilor dumneavoastră prin achiziționarea unui număr mai mare de intrări analogice sau prin intermediul FB ModbusMaster dobândirea valorilor de la instrumente cu protocol Modbus. O caracteristică specială a programului este utilizarea FB FIFOFile care stochează datele în jurnalul FIFO în timpul transferului fișierului jurnal pe serverul FTP la distanță pentru a nu pierde jurnalele.
Aruncând o privire asupra programului sursă este util să învățați nu numai cum să utilizați FB FTPClient dar și pentru a înțelege cum să gestionați sistemul de fișiere de sistem scriind fișiere în format CSV.
Blocarea funcției
CODESYS: Indisponibil
LogicLab: eLLabNetworkLib
Descriere
Store (BOOL) Comanda de transfer de fișiere din directorul local pe serverul FTP.
Retrieve (BOOL) Comanda de transfer de fișiere de la serverul FTP în directorul local.
Delete (BOOL) Comanda de ștergere a fișierelor pe serverul FTP.
SpyOn (BOOL) Dacă este activ, vă permite să spionați funcționarea FB.
FTPServer (@STRING) Indicator șir de definire a serverului FTP.
FTPPort (UINT) Definirea portului pentru conectarea la serverul FTP.
User (@STRING) Indicator șir de definire a numelui de utilizator.
Password (@STRING) Indicator șir de definire a parolei.
LocalFile (@STRING) Indicator șir de definire a numelui fișierului local.
RemoteFile (@STRING) Indicatorul șirului de definire a numelui fișierului pe serverul FTP. Dacă folderele sunt definite în nume (Exemplu /DirA/DirB/File.txt), FB-ul le va crea.
Done (BOOL) Se activează la sfârșitul execuției comenzii. Rămâne activ până când toate comenzile sunt dezactivate, pentru a executa o nouă comandă dezactivați și apoi reactivați comanda.
Defect (BOOL) Activ pentru o buclă dacă eroare de execuție.
Tratament (REAL) Procentul de transfer efectuat.
ETime (TIME) Returnează timpul necesar executării comenzii.
CReți (UDINT) Numărul de încercări efectuate.
Errors (UDINT) Contor erori de execuție.
Spionaj operațional
Se SpyOn activ, puteți utiliza consola spion pentru a verifica funcționarea FB. Există diferite niveluri de declanșatoare.
Declanșatorii de spionaj
16 # 00000001 | TX: Comenzile trimise serverului FTP. |
16 # 00000002 | Rx: Stări de răspuns de la serverul FTP. |
16 # 10000000 | LG: Mesaje jurnal operațiuni. |
16 # 40000000 | El: Erori de execuție. |
Analizarea mesajelor afișate în consola de spionaj vă ajută să înțelegeți eventualele erori din secvențe.
Mesaje în spionaj
Messaggi di connessione al server validi per tutti comandi. | FTPClient:Rx|[0010] 227 Entering Passive Mode (81,88,52,106,222,229) Apertura connessione passiva | FTPClient:Lg|[0010] PASV port:57061 Porta per connessione passiva | FTPClient:Lg|[0022] Server do not allows the resume command Server non supporta il comando di resume | FTPClient:Lg|[0022] Server allows the resume command Server supporta il comando di resume | FTPClient:Lg|[0100] User logged in Client connesso al server Messaggi del comando di store. | FTPClient:Lg|[1000] Send file: Local file => Remote file Informazioni sul file locale e remoto | FTPClient:Lg|[1000] File to send length: xxxxxxx Dimensione file locale da inviare in bytes | FTPClient:Tx|[1305] ABOR Abortita sequenza in corso segue un resume | FTPClient:Lg|[1405] xxxxxxx bytes has been transferred, xx.xxx KB/S Dimensione file inviato e velocità di invio | FTPClient:Lg|--------------------------------------[Store end, xxx.xxx (S)]-- Fine comando e durata Messaggi del comando di retrieve. | FTPClient:Lg|[2002] File to receive length: xxxxxx Dimensione file da scaricare in bytes (Se resume) | FTPClient:Lg|[2203] Data reception restart Non si ricevono dati per 80% di Timeout, eseguo resume | FTPClient:Lg|[2203] Server timeout restart Prima di timeout server eseguo resume (Timeout*2) | FTPClient:Tx|[2205] ABOR Abortita sequenza in corso segue un resume | FTPClient:Lg|[2302] xxxxxxx bytes has been transferred, xx.xxx KB/S Dimensione file ricevuto e velocità di invio | FTPClient:Lg|-----------------------------------[Retrieve end, xxx.xxx (S)]-- Fine comando e durata
Exemple
ST_FTPClient: Conexiunea la un server FTP este gestionată prin gestionarea comenzii Store pentru a trimite un fișier din folderul sistemului local către serverul FTP. Comanda Retrieve pentru a transfera un fișier de pe serverul FTP în folderul sistemului local. Comanda Delete pentru a șterge fișierul de pe serverul FTP.
ST_FTPFileTransfer: Exemplu de transfer al unui fișier de la un server FTP la altul, fișierul este plasat pe discul local. În exemplu, două terminale Weintek au fost folosite ca server FTP.
LogicLab (Ptp119)
PROGRAM ST_FTPClient
VAR
Store : BOOL; (* FTP store command *)
Retrieve : BOOL; (* FTP retrieve command *)
Delete : BOOL; (* FTP delete command *)
CaseNr : USINT; (* Program case *)
FTP : FTPClient_v4; (* FTP client *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_FTPClient"
// *****************************************************************************
// This program connects to the SlimLine FTP server and allows to transfer file
// from local directory to FTP server and viceversa.
// -----------------------------------------------------------------------------
// -------------------------------------------------------------------------
// INITIALIZATION
// -------------------------------------------------------------------------
// Program initializations.
IF (SysFirstLoop) THEN
FTP.SpyOn:=TRUE; //Spy active
FTP.FTPServer:=ADR('192.168.0.230'); //Server FTP
FTP.FTPPort:=21; //Server FTP
FTP.User:=ADR('Admin'); //User
FTP.Password:=ADR('Admin'); //Password
END_IF;
// -------------------------------------------------------------------------
// FTP CLIENT
// -------------------------------------------------------------------------
// Executs the FTP client and resets the commands on execution fault.
FTP(); //FTP client
IF (FTP.Fault) THEN CaseNr:=0; END_IF;
// -------------------------------------------------------------------------
// PROGRAM CASES
// -------------------------------------------------------------------------
// Program cases management.
CASE (CaseNr) OF
// ---------------------------------------------------------------------
// MANAGES THE COMMAND
// ---------------------------------------------------------------------
// Reset commands.
0:
FTP.Store:=FALSE; //Store command
FTP.Retrieve:=FALSE; //Retrieve command
FTP.Delete:=FALSE; //Delete command
// Check commands.
IF (Store) THEN Store:=FALSE; CaseNr:=10; RETURN; END_IF;
IF (Retrieve) THEN Retrieve:=FALSE; CaseNr:=20; RETURN; END_IF;
IF (Delete) THEN Delete:=FALSE; CaseNr:=30; RETURN; END_IF;
// ---------------------------------------------------------------------
// STORE COMMAND
// ---------------------------------------------------------------------
// Command execution.
10:
FTP.Store:=TRUE; //Store command
FTP.LocalFile:=ADR('C:/System/Logs.txt'); //Local file definition
FTP.RemoteFile:=ADR('D:/Logs.txt'); //Remote file definition
IF NOT(FTP.Done) THEN RETURN; END_IF;
FTP.Store:=FALSE; //Store command
CaseNr:=0; //Program case
// ---------------------------------------------------------------------
// RETRIEVE COMMAND
// ---------------------------------------------------------------------
// Command execution.
20:
FTP.Retrieve:=TRUE; //Retrieve command
FTP.LocalFile:=ADR('D:/Logs.txt'); //Local file definition
FTP.RemoteFile:=ADR('C:/System/Logs.txt'); //Remote file definition
IF NOT(FTP.Done) THEN RETURN; END_IF;
FTP.Retrieve:=FALSE; //Retrieve command
CaseNr:=0; //Program case
// ---------------------------------------------------------------------
// DELETE COMMAND
// ---------------------------------------------------------------------
// Command execution.
30:
FTP.Delete:=TRUE; //Delete command
FTP.LocalFile:=eNULL; //Local file definition
FTP.RemoteFile:=ADR('D:/Logs.txt'); //Remote file definition
IF NOT(FTP.Done) THEN RETURN; END_IF;
FTP.Delete:=FALSE; //Delete command
CaseNr:=0; //Program case
END_CASE;
// [End of file]
LogicLab (Ptp119)
PROGRAM ST_FTPFileTransfer
VAR
DTransfer : BOOL; (* Data transfer command *)
CaseNr : USINT; (* Program case *)
FTP : FTPClient_v4; (* FTP client *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_FTPFileTransfer"
// *****************************************************************************
// This program transfers a file from one FTP server to another.
// -----------------------------------------------------------------------------
// -------------------------------------------------------------------------
// INITIALIZATION
// -------------------------------------------------------------------------
// Program initializations.
IF (SysFirstLoop) THEN
FTP.SpyOn:=TRUE; //Spy active
END_IF;
// -------------------------------------------------------------------------
// FTP CLIENT
// -------------------------------------------------------------------------
// Executs the FTP client and resets the commands on execution fault.
FTP(); //FTP client
IF (FTP.Fault) THEN CaseNr:=0; END_IF;
// -------------------------------------------------------------------------
// PROGRAM CASES
// -------------------------------------------------------------------------
// Program cases management.
CASE (CaseNr) OF
// ---------------------------------------------------------------------
// TRANSFER FILE
// ---------------------------------------------------------------------
// Wait for the command.
0:
IF (DTransfer) THEN DTransfer:=FALSE; CaseNr:=10; RETURN; END_IF;
// ---------------------------------------------------------------------
// READ FILE FROM THE SERVER AND DELETE IT
// ---------------------------------------------------------------------
// Define server credential and connects to it.
10:
FTP.FTPServer:=ADR('192.168.0.234'); //Server FTP
FTP.FTPPort:=21; //Server port
FTP.User:=ADR('uploadhis'); //User
FTP.Password:=ADR('111111'); //Password
FTP.LocalFile:=ADR('D:/Logs.txt'); //Local file definition
FTP.RemoteFile:=ADR('datalog/Logs.txt'); //Remote file definition
CaseNr:=CaseNr+1; //Program case
// ---------------------------------------------------------------------
// Retrieve command execution.
11:
FTP.Retrieve:=TRUE; //Retrieve command
IF NOT(FTP.Done) THEN RETURN; END_IF;
FTP.Retrieve:=FALSE; //Retrieve command
CaseNr:=CaseNr+1; //Program case
// ---------------------------------------------------------------------
// Delete command execution.
12:
FTP.Delete:=TRUE; //Delete command
IF NOT(FTP.Done) THEN RETURN; END_IF;
FTP.Delete:=FALSE; //Delete command
CaseNr:=20; //Program case
// ---------------------------------------------------------------------
// STORE FILE TO THE SERVER
// ---------------------------------------------------------------------
// Define server credential and connects to it.
20:
FTP.FTPServer:=ADR('192.168.0.216'); //Server FTP
FTP.FTPPort:=21; //Server port
FTP.User:=ADR('uploadhis'); //User
FTP.Password:=ADR('111111'); //Password
FTP.LocalFile:=ADR('D:/Logs.txt'); //Local file definition
FTP.RemoteFile:=ADR('datalog/Logs.txt'); //Remote file definition
CaseNr:=CaseNr+1; //Program case
// ---------------------------------------------------------------------
// Command end waiting.
21:
FTP.Store:=TRUE; //Store command
IF NOT(FTP.Done) THEN RETURN; END_IF;
FTP.Store:=FALSE; //Store command
CaseNr:=0; //Program case
END_CASE;
// [End of file]