FP_HTTP_GET_DATA_FORMAT

Generare stringa formato di dati per protocollo HTTP

Questa istruzione FP genera una stringa che specifica il formato dati (indirizzo FP e lunghezza). Scrive la stringa nella variabile di uscita sDataFormat adatta all'ingresso sPLCDataFormat dell'istruzione FP_HTTP_SET_MODE.

Parametri

Ingresso

Var (STRING)

Stringa contenente dati ASCII

nNumberOfCharacters (WORD, INT, UINT)

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

Uscita

sDataFormat (STRING)

Stringa che specifica il formato dati per l'ingresso sPLCDataFormat di FP_HTTP_SET_MODE

Note

  • Prima di eseguire l'istruzione, è necessario specificare le impostazioni di trasferimento utilizzando FP_HTTP_SET_MODE o la finestra di dialogo di impostazione del client HTTP.

  • 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 HTTP sono state completate, i dati vengono effettivamente inviati o acquisiti quando l'istruzione FP_HTTP_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
		sStringData: STRING[31767]:='';
		iID5: INT:=5;
		bSetModeStringData: BOOL:=FALSE;
		bErrorModeStringData: BOOL:=FALSE;
	END_VAR

Corpo del POU

Se bSetModeStringData 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 := 7 ;
        NETWORK_BODY
B(B_VARIN,,iID5,39,2,41,4,);
B(B_VARIN,,'SV0~UPLOAD;POST',39,3,41,5,);
B(B_CONTACT,,bSetModeStringData,5,1,7,3,R);
B(B_VARIN,,'/PLC?ment',39,5,41,7,);
B(B_VAROUT,,bErrorModeStringData,52,2,54,4,);
B(B_VARIN,,sStringData,8,4,10,6,);
B(B_CONTACT,,sys_bIsEthernetInitializing,16,1,18,3,N);
B(B_F,LEN!,,11,4,16,7,,?DIN?C);
B(B_F,FP_HTTP_GET_DATA_FORMAT!,,16,3,31,7,,?D@'Var'?DnNumberOfCharacters?CsDataFormat);
B(B_F,FP_HTTP_SET_MODE!,,41,0,52,7,,?DEN?DnTransferID?DsOperation?DsPLCDataFormat?DsHTTPServerURL?AENO?CbError);
L(1,2,5,2);
L(7,2,16,2);
L(11,5,11,6);
L(18,2,41,2);
L(10,5,16,5);
L(31,5,41,5);
L(1,0,1,7);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo ST

If DF(bSetModeStringData) AND not sys_bIsEthernetInitializing Then
    FP_HTTP_SET_MODE(nTransferID := iID5,
                     sOperation := 'SV0,UPLOAD;POST',
                     sPLCDataFormat := FP_HTTP_GET_DATA_FORMAT(sStringData,
                                                               LEN(sStringData)), 
                     sHTTPServerURL := '/PLC?ment',
                     bError => bErrorModeStringData);
End_if;

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