FP_FTP_GET_DATA_FORMAT

Generare stringa formato di dati per protocollo FTP

Questa istruzione FP genera una stringa che specifica il formato dati (indirizzo FP e lunghezza) in base al tipo di dati all'ingresso Var. Scrive la stringa nella variabile di uscita sDataFormat adatta all'ingresso sPLCFullFileNameOrDataFormat dell'istruzione FP_FTP_SET_MODE.

Parametri

Ingresso

Var (BOOL, INT, UINT, WORD, DINT, UDINT, DWORD, REAL, DATE, TOD, DT, STRING)

Tipo di dato semplice o array di tipi di dati semplici p.es. BOOL, INT, UINT, STRING, ...

Restrizione: ARRAY..OF..STRING non ammesso

nSize (WORD, INT, UINT)

Dimensione dei dati in word o per le stringhe in unità byte.

nColumns (WORD, INT, UINT)

Numero di articoli dopo i quali è necessario aggiungere una nuova riga nel file convertito .csv

Uscita

sDataFormat (STRING)

Stringa che specifica il formato dati per l'ingresso sPLCFullFileNameOrDataFormat di FP_FTP_SET_MODE

Note

  • Prima di eseguire l'istruzione, è necessario specificare le impostazioni di trasferimento utilizzando FP_FTP_SET_MODE 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 è "FALSE: Nessuna richiesta di trasferimento". Quando la richiesta di trasferimento è "TRUE: Richiesta di trasferimento", si verifica un errore di funzionamento.

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

  • Questa istruzione non sovrascrive i dati sulla configurazione Ethernet memorizzati in modo permanente nel PLC. Quando il PLC è stato spento e riacceso, i dati sulla configurazione Ethernet memorizzati nel PLC vengono riutilizzati.

  • 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 timeout della connessione viene superato

  • se un indirizzo IP non è valido

sys_bIsOperationErrorNonHold (passa a TRUE per una scansione)
  • se un timeout della connessione viene superato

  • se un indirizzo IP non è valido

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
		bSetModePlcData: BOOL:=FALSE;
		bSetModePlcDataError: BOOL:=FALSE;
		arrayValues: ARRAY[0..15] OF REAL:=[16(0.0)];
		iID10: INT:=10;
	END_VAR

Corpo del POU

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

Corpo LD

NOTA
Quando una costante con valore 0 viene applicata all'ingresso nColumns, la posizione dell'avanzamento linea nel formato stringa dei dati generata viene omessa. Ciò è necessario se l'istruzione FP_FTP_SET_MODE viene poi utilizzata in modalità operativa GETDATA.
BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_CONTACT,,bSetModePlcData,5,1,7,3,R);
B(B_VARIN,,'SV0~GETDATA~NON',40,3,42,5,);
B(B_VAROUT,,bSetModePlcDataError,60,2,62,4,);
B(B_VARIN,,'\B:\LOG\MyData.csv~END',40,5,42,7,);
B(B_VARIN,,iID10,40,2,42,4,);
B(B_CONTACT,,sys_bIsEthernetInitializing,16,1,18,3,N);
B(B_VARIN,,arrayValues,6,4,8,6,);
B(B_VARIN,,0,13,6,15,8,);
B(B_F,Size_Of_Var!,,8,5,15,7,,?D?C);
B(B_F,FP_FTP_SET_MODE!,,42,0,58,7,,?DEN?DnTransferID?DsOperation?DsPLCFullFileNameOrDataFormat?DsFTPServerFullFileName?AENO?CbError);
B(B_F,FP_FTP_GET_DATA_FORMAT!,,15,3,29,8,,?D@'Var'?DnSize?DnColumns?CsDataFormat);
L(1,2,5,2);
L(7,2,16,2);
L(8,5,8,6);
L(18,2,42,2);
L(58,3,60,3);
L(8,5,15,5);
L(29,5,42,5);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo ST

If DF(bSetModePlcData) And not sys_bIsEthernetInitializing then
    FP_FTP_SET_MODE(nTransferID := iID10,
                    sOperation := 'SV0,GETDATA,NON',
                    sPLCFullFileNameOrDataFormat := FP_FTP_GET_DATA_FORMAT(Var := arrayValues,
                                                                           nSize := Size_Of_Var(arrayValues),
                                                                           nColumns := 0), 
                    sFTPServerFullFileName := '\B:\LOG\MyData.csv,END',
                    bError => bSetModePlcDataError);
End_if;

L'ultima revisione: 2022-04-19Feedback su questa paginaPanasonic hotline