FP_FTP_SET_MODE

Impostare modalità di trasferimento FTP

Questa istruzione FP memorizza le impostazioni di trasferimento del client FTP sOperation, sPLCFullFileNameOrDataFormat e sFTPServerFullFileName nell'area delle impostazioni di trasferimento specificata da nTransferID.

Parametri

Ingresso

nTransferID (WORD, INT, UINT)

Impostare l'ID di impostazione di trasferimento.

Valori: 0–15 (i valori devono essere immessi in ordine crescente)

sOperation (STRING)

Impostare i parametri del metodo di trasferimento.

  • Indirizzo server (parametro richiesto)

    Parola chiave: SV

    Sintassi: 'SVx'

    Valori: SV0–SV3 (Server 0–Server 3)

  • Target e metodo di trasferimento (parametro richiesto)

    Stringa parametro

    Target

    Metodo di trasferimento

    PUTFILE

    File

    Invia ai server (Metodo di sovrascrittura)

    PUTFILE-OVW

    Invia ai server (Metodo di sovrascrittura)

    PUTFILE-REN

    Invia ai server (Metodo di rinomina)

    GETFILE

    Ricevi dai server

    PUTDATA

    Area di memoria

    Invia ai server (Metodo di sovrascrittura)

    PUTDATA-OVW

    Invia ai server (Metodo di sovrascrittura)

    PUTDATA-REN

    Invia ai server (Metodo di rinomina)

    GETDATA

    Ricevi dai server

  • Gestione file dopo il trasferimento (parametro richiesto)

    • DEL: elimina il file

    • NON: non eliminare il file

Esempi:
  1. Invia il file al server FTP 1 utilizzando il metodo di sovrascrittura, non eliminare il file dopo il trasferimento: 'SV1,PUTFILE-OVW,NON'

  2. Invia il file al server FTP 0 utilizzando il metodo di rinomina, eliminare il file dopo il trasferimento: 'SV0,PUTFILE-REN,DEL'

  3. Ottieni il file dal server FTP 2, elimina il file dopo il trasferimento: 'SV2,GETFILE,DEL'

sPLCFullFileNameOrDataFormat (STRING)

Crea le impostazioni in base al target di trasferimento (file o dati dall'area di memoria) e il metodo di trasferimento (PUT o GET).

Il trasferimento dei dati di una variabile può avvenire per mezzo dell'istruzione FP_FTP_GET_DATA_FORMAT. L'uscita di tale istruzione verrà collegata a sPLCFullFileNameOrDataFormat per leggere la stringa che specifica la stringa formato di dati della variabile (area di memoria, dimensioni e tipo di dati). I dati trasmessi vengono scritti su un file csv o letti da un file csv in base al tipo di dato della variabile.

  • Target trasferimento: file

    Imposta il nome file source.

    • Per PUTFILE: Specificare il nome del file di un file memorizzato su una SD card con un percorso relativo. Esempio: '\LOG\MyData.csv'

    • Per GETFILE: Specificare un nome del file dalla directory della home di un utente che accede ai server FTP con un percorso relativo. Esempio: '\LOG\MyData.csv'

  • Target trasferimento: dati da area di memoria

    • Per PUTDATA: I dati memorizzati nella variabile collegata all'ingresso di FP_FTP_GET_DATA_FORMAT vengono scritti nel file csv specificato da sFTPServerFullFileName. Per questo metodo di trasferimento è possibile aggiungere un timbro data/ora nel formato yymmdd_hhmmss al nome del file. Utilizzare le parole chiave 'TOP' ed 'END' per specificare se aggiungere il timbro data/ora prima o dopo il nome del file.

    • Per GETDATA: I dati del file csv specificati da sFTPServerFullFileName vengono scritti nella variabile collegata all'ingresso Var di FP_FTP_GET_DATA_FORMAT.

sFTPServerFullFileName (STRING)

Crea le impostazioni in base al target di trasferimento (file o dati dall'area di memoria) e il metodo di trasferimento (PUT o GET).

  • Target trasferimento: file

    • Per PUTFILE: Specificare un nome cartella con il suo percorso relativo dalla directory della home dell'utente che accede al server FTP. Per specificare la directory della home, specificare esclusivamente "/" o "\".

    • Per GETFILE: Specificare un nome per la cartella di memorizzazione in una SD card con un percorso relativo.

  • Target trasferimento: dati da area di memoria

    • Per PUTDATA: Specificare un nome del file di destinazione csv su cui scrivere i dati. Per questo metodo di trasferimento è possibile aggiungere un timbro data/ora nel formato yymmdd_hhmmss al nome del file. Utilizzare le parole chiave 'TOP' ed 'END' per specificare se aggiungere il timbro data/ora prima o dopo il nome del file.

      Esempi:

      1. Trasferire i dati al file di destinazione "PutData1.bin" che si trova nella directory "\FTP", non aggiungere un timbro data/ora: '\FTP\PutData1.bin'

      2. Trasferire i dati al file di destinazione "PutData2.bin" che si trova nella directory "\FTP", aggiungere un timbro data/ora all'inizio del nome del file: '\FTP\PutData2.bin,TOP'

      3. Trasferire i dati al file di destinazione "PutData3.bin" che si trova nella directory "\FTP", aggiungere un timbro data/ora alla fine del nome del file: '\FTP\PutData3.bin,END'

    • Per GETDATA: Specificare un nome del file source csv da cui leggere i dati. Specificare un nome del file e un nome cartella con il suo percorso relativo dalla directory della home dell'utente che accede al server FTP.

Uscita

bError (BOOL)

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.

Note

  • 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.

  • 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.

  • L'istruzione può essere eseguita solo se il flag di richiesta di trasferimento per l'impostazione di trasferimento specificata o il numero nLogID specificato è FALSE. Quando la richiesta di trasferimento è TRUE, si verifica un errore di funzionamento.

  • Quando questa istruzione è stata eseguita correttamente, le variabili di sistema sys_bIsCarry e sys_iEthernetConnectionErrorCode vengono resettate.

  • Dopo che le impostazioni di trasferimento client FTP sono state completate, i dati vengono inviati ai file o vengono ottenuti dai file quando FP_FTP_TRANSFER_REQUEST viene eseguito.

  • Quando si verifica un errore, controllare la variabile di sistema sys_iEthernetConnectionErrorCode per verificare il numero di codice di errore.

Flag di errore

sys_bIsOperationErrorHold (passa a TRUE e resta TRUE)
  • se un valore specificato per un parametro è fuori dall'intervallo utilizzabile.

  • se gli ID di trasferimento non sono specificati in ordine crescente.

  • 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 l'impostazione di trasferimento specificata è "TRUE: Trasferimento richiesto" quando l'istruzione viene eseguita.

  • Se il flag di richiesta di trasferimento per un numero nLogID specificato è TRUE, p.es. se sys_blsLog0DataRecordingActive è TRUE.

sys_bIsOperationErrorNonHold (passa a TRUE per una scansione)
  • se un valore specificato per un parametro è fuori dall'intervallo utilizzabile.

  • se gli ID di trasferimento non sono specificati in ordine crescente.

  • 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 l'impostazione di trasferimento specificata è "TRUE: Trasferimento richiesto" quando l'istruzione viene eseguita.

  • Se il flag di richiesta di trasferimento per un numero nLogID specificato è TRUE, p.es. se sys_blsLog0DataRecordingActive è TRUE.

sys_bIsCarry (passa a TRUE per una scansione)
  • se l'istruzione viene eseguita durante l'inizializzazione di Ethernet, sys_iEthernetConnectionErrorCode viene impostato su "11: Ethernet viene inizializzato".

Esempio

Intestazione del POU

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
		bSetModeFileError: BOOL:=FALSE;
		bSetModeFileOK: BOOL:=FALSE;
		iID10: INT:=10;
		bSetModeFile: BOOL:=FALSE;
		wErrorCode: WORD:=0;
	END_VAR

Corpo del POU

Se bSetModeFile passa da FALSE a TRUE e sys_bIsEthernetInitializing è impostato su FALSE, l'istruzione viene eseguita.

Corpo LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_COMMENT,, ^Set mode to transfer file located on SD card of FP7 PLC,4,1,34,4,);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 7 ;
        NETWORK_BODY
B(B_CONTACT,,bSetModeFile,5,1,7,3,R);
B(B_VARIN,,'SV0~PUTDATA-OVW~NON',23,3,25,5,);
B(B_VARIN,,'\CSV_FILES\Data1.csv',23,4,25,6,);
B(B_VAROUT,,bSetModeFileError,43,2,45,4,);
B(B_VARIN,,'\B:\LOG\MyData.csv~END',23,5,25,7,);
B(B_VARIN,,iID10,23,2,25,4,);
B(B_CONTACT,,sys_bIsEthernetInitializing,16,1,18,3,N);
B(B_F,FP_FTP_SET_MODE!,,25,0,41,7,,?DEN?DnTransferID?DsOperation?DsPLCFullFileNameOrDataFormat?DsFTPServerFullFileName?AENO?CbError);
L(1,2,5,2);
L(7,2,16,2);
L(18,2,25,2);
L(1,0,1,7);
L(41,3,43,3);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 4 ;
        NETWORK_BODY
B(B_CONTACT,,bSetModeFileError,5,1,7,3,);
B(B_F,E_MOVE!,,25,0,31,4,,?DEN?D?AENO?C);
B(B_VARIN,,sys_iEthernetConnectionErrorCode,23,2,25,4,);
B(B_VAROUT,,wErrorCode,31,2,33,4,);
L(7,2,25,2);
L(1,2,5,2);
L(1,0,1,4);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 3 ;
        NETWORK_BODY
B(B_CONTACT,,bSetModeFileError,5,1,7,3,N);
B(B_COIL,,bSetModeFileOK,28,1,30,3,);
L(7,2,28,2);
L(1,2,5,2);
L(1,0,1,3);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo ST

If DF(bSetModeFile) AND NOT sys_bIsEthernetInitializing then
    FP_FTP_SET_MODE(nTransferID := iID10,
                    sOperation := 'SV0,PUTDATA-OVW,NON',
                    sPLCFullFileNameOrDataFormat := FP_FTP_GET_DATA_FORMAT(Var := arrayValues,
                                                    nSize := Size_Of_Var(arrayValues),
                                                    nColumns := 8), 
                                                    sFTPServerFullFileName := '\B:\LOG\MyData.csv,END',
                                                    bError => bSetModePlcDataError);
End_if;
If (bSetModePlcDataError) then
    wErrorCode := sys_iEthernetConnectionErrorCode;
Else
    bSetModePlcDataOK := True;
End_If;

L'ultima revisione: 2024-04-25Feedback su questa paginaPanasonic hotline