Impostare modalità di trasferimento FTP per file di registrazione dati
Questa istruzione FP definisce le impostazioni di trasferimento per i file di registrazione dei dati tramite protocollo FTP.
Ingresso
Numero LOG (intervallo utilizzabile: 0–15). Il compilatore genera internamente la stringa per il numero di file di registro, p.es. 'LOG=0'
Impostare i parametri del metodo di trasferimento.
Indirizzo server (parametro richiesto)
È possibile specificare solo un server per volta. Specificare un numero di server FTP con tre caratteri da un byte.
Parola chiave: SV
Valori: SV0–SV3 (Server 0–Server 3)
Metodo di trasferimento (parametro opzionale)
Sintassi |
Metodo di trasferimento |
---|---|
|
Metodo di sovrascrittura (default) Eseguire il trasferimento file con i nomi dei file specificati dall'impostazione di registrazione dei dati. Quando il trasferimento viene interrotto a causa di un qualsiasi problema con la rete o i server, è possibile che il trasferimento dei file sia stato eseguito solo parzialmente. Controllare se il trasferimento è stato completato con successo con un'istruzione del tipo FP_FTP_GET_STATUS. |
|
Metodo di rinomina Eseguire il trasferimento dei file con nomi dei file temporanei e rinominarli con nomi dei file specifici dopo aver completato il trasferimento con successo. Per verificare se il trasferimento dei file sia stato completato con successo, confrontare i nomi dei file attuali con i nomi dei file specificati dall'impostazione di registrazione dei dati. La velocità di elaborazione è maggiore rispetto a quella del metodo di sovrascrittura. |
Esempio: Inviare il file di registrazione dati al server FTP 3 utilizzando il metodo di rinomina: 'SV3,MODE=REN'
Impostare la directory di destinazione (max. 256 caratteri) Verrà creata con un percorso relativo dalla directory home che è stata assegnata all'utente dopo aver effettuato l'accesso al server FTP. Se la directory di destinazione non esiste, verrà creata automaticamente con un numero fino a otto gerarchie.
Uscita
Passa a TRUE nelle seguenti condizioni:
se un timeout della connessione viene superato
se un indirizzo IP non è valido
Quando si verifica un errore, controllare la variabile di sistema sys_iEthernetConnectionErrorCode per verificare il numero di codice di errore.
Separa tutte le voci di parole chiave con una virgola, p.es. 'NAME=abcd,FROM=sender@server.com'
Non modificare l'ordine delle parole chiave. Specificare le parole chiave e i loro parametri di impostazione nell'ordine in cui vengono elencati qui.
Il numero di caratteri per dati stringa non deve superare 256.
Questa istruzione non è disponibile nei programmi di interrupt.
Prima di eseguire l'istruzione, è necessario specificare il server FTP utilizzando FP_FTP_SET_CONNECTION o la finestra di dialogo di impostazione del client FTP.
I caratteri maiuscoli e minuscoli possono essere utilizzati per gli operandi per i quali è possibile specificare una costante di carattere. "Abcd", "ABCD" e "abcd" sono sinonimi, ma i nomi del file fanno distinzione tra maiuscole e minuscole.
L'istruzione può essere eseguita solo quando il flag di richiesta di trasferimento per il numero nLogID specificato è FALSE. Quando la richiesta di trasferimento è TRUE, si verifica un errore di funzionamento.
Prima di eseguire l'istruzione, assicurarsi che sys_bIsEthernetInitializing sia FALSE. sys_bIsEthernetInitializing passa a TRUE quando l'istruzione viene eseguita. Se si esegue l'istruzione mentresys_bIsEthernetInitializing è TRUE, si verifica un errore.
Quando questa istruzione è stata eseguita correttamente, le variabili di sistema sys_bIsCarry e sys_iEthernetConnectionErrorCode vengono resettate.
L'istruzione memorizza le impostazioni di trasferimento della registrazione dei dati di sOperation e sFTPServerDirectory nel numero del file LOG specificato da nLogID.
Quando si verifica un errore, controllare la variabile di sistema sys_iEthernetConnectionErrorCode per verificare il numero di codice di errore.
Se il flag di richiesta di trasferimento per un numero nLogID specificato è TRUE, p.es. se sys_blsLog0DataRecordingActive è TRUE.
se la condizione di registrazione dati di un numero nLogID specificato non viene registrata.
se un valore specificato per un parametro è fuori dall'intervallo utilizzabile.
se l'istruzione viene eseguita in un programma di interrupt
se il numero di caratteri per dati stringa supera 256.
se viene specificato un server FTP che non è stato configurato con l'istruzione FP_FTP_SET_CONNECTION o la finestra di dialogo di impostazione del client FTP.
Se il flag di richiesta di trasferimento per un numero nLogID specificato è TRUE, p.es. se sys_blsLog0DataRecordingActive è TRUE.
se la condizione di registrazione dati di un numero nLogID specificato non viene registrata.
se un valore specificato per un parametro è fuori dall'intervallo utilizzabile.
se l'istruzione viene eseguita in un programma di interrupt
se il numero di caratteri per dati stringa supera 256.
se viene specificato un server FTP che non è stato configurato con l'istruzione FP_FTP_SET_CONNECTION o la finestra di dialogo di impostazione del client FTP.
se l'istruzione viene eseguita durante l'inizializzazione di Ethernet, sys_iEthernetConnectionErrorCode viene impostato su "11: Ethernet viene inizializzato".
Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU. La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.
VAR
bSetLogTransferFTP: BOOL:=FALSE;
bIsError: BOOL:=FALSE;
bDisableLogTransferFTP: BOOL:=FALSE;
END_VAR
Se bSetLogTransferFTP e bDisableLogTransferFTP sono impostati su TRUE,l’istruzione viene eseguita.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_VARIN,,0,18,2,20,4,);
B(B_VARIN,,'SV0',18,3,20,5,);
B(B_VARIN,,'LogData',18,4,20,6,);
B(B_VAROUT,,bIsError,37,2,39,4,);
B(B_CONTACT,,bSetLogTransferFTP,5,1,7,3,);
B(B_F,FP_FTP_SET_MODE_TRANSFER_LOG!,,20,0,37,6,,?DEN?DnLogID?DsOperation?DsFTPServerDirectory?AENO?CbError);
L(1,2,5,2);
L(7,2,20,2);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_CONTACT,,bDisableLogTransferFTP,5,1,7,3,);
B(B_VARIN,,0,18,2,20,4,);
B(B_VARIN,,'DISABLE',18,3,20,5,);
B(B_VAROUT,,bIsError,39,2,41,4,);
B(B_F,FP_FTP_TRANSFER_CONTROL_LOG!,,20,0,37,5,,?DEN?DnLogID?DsControl?AENO?AbError);
L(1,2,5,2);
L(37,3,39,3);
L(7,2,20,2);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
If (bSetLogTransferFTP) Then
FP_FTP_SET_MODE_TRANSFER_LOG(nLogID := 0, sOperation := 'SV0',
sFTPServerDirectory := 'LogData',
bError => bIsError);
End_if;
If (bDisableLogTransferFTP) Then
FP_FTP_TRANSFER_CONTROL_LOG(nLogID := 0, sControl := 'DISABLE', bError => bIsError);
End_if;