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.
Ingresso
Tipo di dato semplice o array di tipi di dati semplici p.es. BOOL, INT, UINT, STRING, ...
Restrizione: ARRAY..OF..STRING non ammesso
Dimensione dei dati in word o per le stringhe in unità byte.
Numero di articoli dopo i quali è necessario aggiungere una nuova riga nel file convertito .csv
Uscita
Stringa che specifica il formato dati per l'ingresso sPLCFullFileNameOrDataFormat di FP_FTP_SET_MODE
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.
se un timeout della connessione viene superato
se un indirizzo IP non è valido
se un timeout della connessione viene superato
se un indirizzo IP non è valido
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
bSetModePlcData: BOOL:=FALSE;
bSetModePlcDataError: BOOL:=FALSE;
arrayValues: ARRAY[0..15] OF REAL:=[16(0.0)];
iID10: INT:=10;
END_VAR
Se bSetModePlcData passa da FALSE a TRUE e sys_bIsEthernetInitializing è impostato su FALSE, 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 := 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
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;