Este bloco de função de executar na tarefa Voltar, permite gerenciar a conexão com o servidor FTP definido em FTPServer com nome de usuário definido em User e senha definida em Password.
ativador Store o arquivo local definido em LocalFile é transferido para o servidor FTP com o nome indicado em RemoteFile, uma vez concluída a transferência, a saída é ativada Done que permanece ativo até que o comando seja desabilitado.
ativador Retrieve o arquivo no servidor FTP com o nome indicado em RemoteFile é transferido localmente com o nome definido em LocalFile, uma vez concluída a transferência, a saída é ativada Done que permanece ativo até que o comando seja desabilitado.
ativador Delete o arquivo no servidor FTP com o nome indicado em RemoteFile é apagado e a saída é ativada Done que permanece ativo até que o comando seja desabilitado.
Em caso de erro, a execução do comando termina e a saída é ativada para um loop Fault e a saída é ativada Done que permanece ativo até que o comando seja desabilitado.
Lista de atualização
- Se o objeto atualizado não estiver na versão mais recente do pacote, consulte o capítulo "Atualização de bibliotecas"em Neste artigo.
- Objetos obsoletos são colocados na biblioteca eLLabObsoleteLib referir-se manual relacionado eo programação manual em formato pdf.
Cliente FTP_v4
Parâmetro removido Timeout, parâmetros adicionados TRatio, ETime e CRetry, saída. Gerenciamento de retomada aprimorado em comandos Store e Retrieve.
Datalogger com transferência automática de arquivos no servidor FTP
O programa FTPDataLogger (Baixar) realiza a aquisição de 2 entradas analógicas e a cada minuto armazena os valores em um arquivo no formato CSV, a cada hora o arquivo de log é automaticamente transferido para um servidor FTP remoto na nuvem.
O programa pode ser modificado para atender às suas necessidades, adquirindo um maior número de entradas analógicas ou via FB ModbusMaster aquisição de valores de instrumentos com protocolo Modbus. Uma característica especial do programa é o uso do FB FIFOFile que armazena os dados no log FIFO durante a transferência do arquivo de log para o servidor FTP remoto para não perder os logs.
Dar uma olhada no programa fonte é útil para aprender não apenas como usar o FB FTPClient mas também para entender como gerenciar o sistema de arquivos do sistema gravando arquivos no formato CSV.
Bloqueio de função
CoDeSys: Indisponível
Laboratório de lógica: eLLabNetworkLib
descrição
Store (BOOL) Comando de transferência de arquivos do diretório local para o servidor FTP.
Retrieve (BOOL) Comando de transferência de arquivos do servidor FTP para o diretório local.
Delete (BOOL) Comando de exclusão de arquivo no servidor FTP.
SpyOn (BOOL) Se ativo, permite que você espione o funcionamento do FB.
FTPServer (@STRING) Ponteiro de string de definição de servidor FTP.
FTPPort (UINT) Definição de porta para conexão ao servidor FTP.
User (@STRING) Ponteiro de string de definição de nome de usuário.
Password (@STRING) Ponteiro de string de definição de senha.
LocalFile (@STRING) Ponteiro de string de definição de nome de arquivo local.
RemoteFile (@STRING) Ponteiro de string de definição de nome de arquivo no servidor FTP. Se as pastas forem definidas no nome (Exemplo /DirA/DirB/File.txt), o FB os criará.
Done (BOOL) É ativado ao final da execução do comando. Ele permanece ativo até que todos os comandos sejam desativados, para executar um novo comando, desative e reative o comando.
Culpa (BOOL) Ativo para um loop se houver erro de execução.
Tratamento (REAL) Porcentagem de transferência realizada.
Etime (TIME) Retorna o tempo gasto para executar o comando.
CRTentar novamente (UDINT) Número de tentativas feitas.
Errors (UDINT) Contador de erros de execução.
Operação espionagem
Se SpyOn ativo, você pode usar o console espião para verificar o funcionamento do FB. Existem vários níveis de gatilhos.
Gatilhos de espionagem
16 00000001 # | Tx: Comandos enviados para o servidor FTP. |
16 00000002 # | Rx: Estados de resposta do servidor FTP. |
16 10000000 # | LG: Mensagens de registro de operação. |
16 40000000 # | Ele: Erros de execução. |
Analisar as mensagens exibidas no console de espionagem ajuda você a entender quaisquer erros nas sequências.
Mensagens de espionagem
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
Exemplos
ST_FTPClient: A conexão com um servidor FTP é gerenciada gerenciando o comando Store para enviar um arquivo da pasta local do sistema para o servidor FTP. O comando Retrieve para transferir um arquivo do servidor FTP para a pasta local do sistema. O comando Delete para excluir o arquivo no servidor FTP.
ST_FTPFileTransfer: Exemplo de transferência de um arquivo de um servidor FTP para outro, o arquivo é colocado no disco local. No exemplo, dois terminais Weintek foram usados como um servidor 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]