FP_SMTP_GET_DATA_FORMAT

Generare stringa formato di dati per protocollo SMTP

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 sAttachment dell'istruzione FP_SMTP_SET_MODE.

Quando i registri dati vanno trasmessi con FP_SMTP_SET_MODE, viene generato un file .csv file dei valori di dati indicati. Durante il trasferimento, i dati vengono convertiti in ASCII in base al tipo di dato. Pertanto l'ingresso sAttachment richiede ulteriori informazioni che indichino quali dati vadano convertiti in un determinato tipo ASCII.

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.

Uscita

sDataFormat (STRING)

Stringa che specifica il formato dati per l'ingresso sAttachment di FP_SMTP_SET_MODE

Note

  • Prima di eseguire l'istruzione, è necessario specificare le impostazioni di trasmissione e-mail utilizzando FP_SMTP_SET_MODE o la finestra di dialogo di impostazione del client SMTP.

  • Prima di eseguire l'istruzione, è necessario specificare le impostazioni del gruppo e delle e-mail dell'evento utilizzando FP_SMTP_SET_GROUP o la finestra di dialogo di impostazione del client SMTP.

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

  • 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
		arrayValues_UDINT: ARRAY [0..19] OF UDINT;
		bError: BOOL:=FALSE;
		bSetMode: BOOL:=FALSE;
		iID8: INT:=8;
	END_VAR

Corpo del POU

Se bSetMode 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 := 14 ;
        NETWORK_BODY
B(B_VARIN,,iID8,42,2,44,4,);
B(B_CONTACT,,bSetMode,4,1,6,3,R);
B(B_VAROUT,,bError,57,2,59,4,);
B(B_VARIN,,'GRPNO=0~SUBJECT=Time Notify Mail',42,4,44,6,);
B(B_VARIN,,'Hello~ this is time notify Mail from system. See attachment',42,5,44,7,);
B(B_VARIN,,'INFO=ADD~ATT=DATA;',11,7,13,9,);
B(B_VARIN,,'TRIG=TIME~/day~13:30:00',42,3,44,5,);
B(B_CONTACT,,sys_bIsEthernetInitializing,13,1,15,3,N);
B(B_VARIN,,arrayValues_UDINT,11,9,13,11,);
B(B_F,CONCAT-2!,,37,7,43,10,,?D?D?C);
B(B_F,Size_Of_Var!,,15,10,22,12,,?D?C);
B(B_F,FP_SMTP_GET_DATA_FORMAT!,,22,8,37,12,,?D@'Var'?DnSize?CsDataFormat);
B(B_F,FP_SMTP_SET_MODE!,,44,0,57,8,,?DEN?DnTransferID?DsTrigger?DsGroupNumber_Subject?DsBodyText?DsAttachment?AENO?CbError);
L(1,2,4,2);
L(6,2,13,2);
L(15,2,44,2);
L(37,9,37,10);
L(13,8,37,8);
L(15,10,15,11);
L(13,10,22,10);
L(43,7,43,8);
L(43,7,44,7);
L(1,0,1,14);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo ST

If DF(bSetMode) And not sys_bIsEthernetInitializing then
    FP_SMTP_SET_MODE(nTransferID := iID8,
                     sTrigger := 'TRIG=TIME,/day,13:30:00',
                     sGroupNumber_Subject := 'GRPNO=0,SUBJECT=Time Notify Mail', 
                     sBodyText := 'Hello, this is time notify Mail from system. See attachment',
                     sAttachment := CONCAT('INFO=ADD,ATT=DATA;',
                                           FP_SMTP_GET_DATA_FORMAT(arrayValues_UDINT,
                                           Size_Of_Var(arrayValues_UDINT))),
                     bError => bError);
End_If;

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