Impostare modalità di trasferimento SMTP
Questa istruzione FP configura le impostazioni di trasmissione per le e-mail attivate dagli eventi. Utilizzare questa istruzione insieme con le istruzioni FP_SMTP_CONNECTION per creare le impostazioni del server SMTP e FP_SMTP_SET_GROUP per specificare il gruppo di destinazione.
Ingresso
Impostare l'ID di impostazione di trasferimento.
Valori: 0–15 (i valori devono essere immessi in ordine crescente)
Impostare il tipo di trigger con una delle seguenti impostazioni della parola chiave:
'TRIG=BITON,xxx'
: Invia un'e-mail al fronte di salita del bit specificato.
Valori:X, Y, R, L, SR, E, DT.n, LD.n, SD.n
Esempio:'TRIG=BITON,R100'
invia un'e-mail al fronte di salita di R100.
'TRIG=TIME,xxxx,yyyy'
: Invia un'e-mail il giorno specificato e/o all'ora specificata.
Valori:
\min,ss (ogni minuto, imposta il tempo in secondi)
\hour,mm:ss (ogni ora, imposta il tempo in minuti e secondi)
\day,hh:mm:ss (ogni giorno, imposta il tempo in ore, minuti e secondi)
\mon,DD:hh:mm:ss (ogni mese, imposta la data come giorno, ore, minuti e secondi)
\year,MM:DD:hh:mm:ss (ogni anno, imposta la data come mese, giorno, ore, minuti e secondi)
\week,hh:mm:ss-w (ogni settimana, imposta il giorno e il tempo come ore, minuti, secondi e giorno della settimana)
ss=secondi (0–59), mm=minuti (0–59), hh=ore (0–23), Dd=giorno (1–31), MM=mese (1–12), w=giorno della settimana (0=domenica, 1=lunedì, 2=martedì, 3=mercoledì, 4=giovedì, 5=venerdì, 6=sabato)
Ogni giorno alle 13:30: 'TIME,/day,13:30:00'
Ogni anno il 1 aprile alle 9:00: 'TIME,/year,4:1:9:0:0'
Ogni settimana il venerdì alle 23:50: 'TIME,/week,23:50:00-5'
'TRIG=CYCLIC,xxxx'
: Invia un'e-mail a intervalli regolari.
Valori:
30SEC (30 secondi)
1MIN, 2MIN, 3MIN, 4MIN, 5MIN, 6MIN, 10MIN, 15MIN, 30MIN (minuti)
1HOUR, 2HOUR, 3HOUR, 4HOUR, 6HOUR, 12HOUR, 24HOUR (ore)
Il ciclo più breve è di 30 secondi. È possibile impostare solo un tempo di ciclo (i valori quali '1MIN30SEC'
non possono essere impostati).
Esempio:'TRIG=CYCLIC,30SEC'
invia un'e-mail ogni 30 secondi.
'TRIG=PROGRAM'
: Invia un'e-mail quando viene eseguita l'istruzione FP_SMTP_TRANSFER_REQUEST.
TRIG=STATUS,xxx1,xxx2,xxx3
: Invia un'e-mail quando si verifica una modifica di stato del PLC specificato.
Valori:
PROG>RUN (passando da PROG a RUN)
RUN>PROG (passando da RUN a PROG)
ERR>STOP (quando si verifica un errore autodiagnosi e il funzionamento si arresta)
ERR>RUN (quando si verifica un errore autodiagnosi e il funzionamento continua)
ERRCLR (quando si cancella un errore)
Quando lo stato del PLC passa da PROG a RUN: 'TRIG=STATUS,PROG>RUN'
Quando una delle seguenti condizioni viene soddisfatta: si verifica un errore autodiagnosi o quando un errore viene cancellato: 'TRIG=STATUS,ERR>STOP,ERR>RUN,ERRCLR'
Impostare il numero del gruppo di destinazione e l'oggetto dell'e-mail.
Impostare fino a otto numeri del gruppo di destinazione con la sintassi della parola chiave 'GRPNO=n1+n2+…+n8'
.
Valori: 0–7
Impostare l'oggetto con una delle due impostazioni della parola chiave seguenti:
'SUBJECT=xxxxxx'
: Imposta un testo per l'oggetto definito dall'utente.
'SUBJECTAUTO'
: Oggetto generato automaticamente contenente informazioni sul tipo di trigger di invio.
Oggetti generati automaticamente:
Giapponese |
Inglese |
---|---|
ビットON 検出(R100) |
Bit ON detect (R100) |
一定周期メール(1分毎) |
Interval mail (1 minute) |
一定周期メール(24 時間毎) |
Interval mail (24 hour) |
指定時刻メール(毎分・0 秒) |
Specified time (every minute 0s) |
指定時刻メール(毎時・0 分0 秒) |
Specified time (every hour 0m0s) |
指定時刻メール(毎日・17 時30 分0 秒) |
Specified time (every day 17h30m0s) |
指定時刻メール(毎週・金曜・17 時30 分0 秒) |
Specified time (every Friday 17h30m00s) |
PLC 状態変化(電源ON) |
PLC status change (power on) |
PLC 状態変化(PROG>RUN スイッチ切り替え) |
PLC status change (PROG > RUN) |
PLC 状態変化(RUN>PROG スイッチ切り替え) |
PLC status change (RUN > PROG) |
PLC 状態変化(演算停止自己診断エラー検知) |
PLC status change (operation stop error) |
PLC 状態変化(演算継続自己診断エラー検知) |
PLC status change (operation continuous error) |
PLC 状態変化(エラー解除) |
PLC status change (error release) |
SMTPcREQ 命令による |
SMRPcREQ command |
Nota:
La lingua utilizzata per le informazioni generate automaticamente è specificata con l'istruzione FP_SMTP_SET_CONNECTION. Utilizzare il parametro sCommunication per cambiare la lingua da Giapponese (default) a Inglese.
Se come tipo di trigger sono stati specificati cambiamenti di stato del PLC multipli, l'oggetto conterrà il cambiamento di stato effettivo che ha attivato l'invio dell'e-mail.
Le parole chiave 'GRPNO'
e 'SUBJECT'
devono essere separate da virgole e immesse in questo ordine.
Numero gruppo di destinazione 0, oggetto definito dall'utente "Time notification e-mail": 'GRPNO=0,SUBJECT=Time Notification E-Mail'
Numeri gruppi di destinazione 1, 3, 4, 7, oggetto definito dall'utente "Cyclic notification e-mail": 'GRPNO=1+3+4+7,SUBJECT=Cyclic notification e-mail'
Numeri gruppi di destinazione da 0 a 7, oggetto generato automaticamente: 'GRPNO=0+1+2+3+4+5+6+7,SUBJECTAUTO'
Specificare una variabile contenente il testo dell'e-mail o una stringa di caratteri.
Lunghezza massima della stringa: 4096 caratteri da un byte per versione di CPU 4.1 o superiori e versione da 3.4 a 3.x.
256 caratteri da un byte per tutte le altre versioni.
Specificare se inviare o meno informazioni extra o un file in allegato.
Includere informazioni extra nel testo dell'e-mail con una delle seguenti impostazioni di parole chiave:
'INFO=NON'
: Non aggiungere automaticamente nessuna informazione
'INFO=ADD'
: Aggiungere informazioni sull'evento (quale evento ha attivato l'e-mail)
Le seguenti informazioni vengono aggiunte al testo dell'e-mail:
Giapponese |
Inglese |
---|---|
基本項目
|
Basic information
|
トリガ種類 |
Detailed information |
ビットON 検出(R100) |
Bit ON detect (R100) |
一定周期メール(1分毎) |
Interval mail (1 minute) |
一定周期メール(24 時間毎) |
Interval mail (24 hour) |
指定時刻メール(毎分・0 秒) |
Specified time (every minute 0s) |
指定時刻メール(毎時・0 分0 秒) |
Specified time (every hour 0m0s) |
指定時刻メール(毎日・17 時30 分0 秒) |
Specified time (every day 17h30m0s) |
指定時刻メール(毎週・金曜・17 時30 分0 秒) |
Specified time (every Friday 17h30m00s) |
PLC 状態変化(電源ON) |
PLC status change (power on) |
PLC 状態変化(PROG>RUN スイッチ切り替え) |
PLC status change (PROG > RUN) |
PLC 状態変化(RUN>PROG スイッチ切り替え) |
PLC status change (RUN > PROG) |
PLC 状態変化(演算停止自己診断エラー検知) |
PLC status change (operation stop error) |
PLC 状態変化(演算継続自己診断エラー検知) |
PLC status change (operation continuous error) |
PLC 状態変化(エラー解除) |
PLC status change (error release) |
SMTPcREQ 命令による |
SMRPcREQ command |
Nota:
Le informazioni relative all'indirizzo dipendono dal fatto che sia stato specificato un indirizzo IPv4 o IPv6 FP_SMTP_SET_CONNECTION.
La lingua utilizzata per le informazioni generate automaticamente è specificata con l'istruzione FP_SMTP_SET_CONNECTION. Utilizzare il parametro sCommunication per cambiare la lingua da Giapponese (default) a Inglese.
Includere allegati dati e/o file con una delle seguenti impostazioni della parola chiave:
'ATT=NONE'
: Non aggiungere dati all'e-mail.
'ATT=DATA,xxxxxxx'
: Aggiungere dati dall'area di memoria al testo dell'e-mail.
Le seguenti informazioni vengono aggiunte al testo dell'e-mail:
Informazioni aggiunte al testo dell'e-mail (Giapponese) |
Informazioni aggiunte al testo dell'e-mail (Inglese) |
---|---|
デバイス取得項目
|
Device get information
|
Specificare l'indirizzo iniziale, il numero di dati trasferiti, il metodo di conversione e la posizione di avanzamento linea.
Valori:
Area di memoria e indirizzo iniziale: WX, WY, WR, WL, DT, LD, SD
Numero di dati trasferiti: 1–1000
Metodo di conversione:
BIN1w (binario a 16 bit non convertito, non può essere utilizzato per aggiungere dati ai testi delle e-mail, utilizzare invece la parola chiave 'FILE'
)
US (decimale a 16 bit senza segno)
SS (decimale a 16 bit con segno)
UL (decimale a 32 bit senza segno)
SL (decimale a 32 bit con segno)
SF (virgola mobile a precisione singola a 32 bit)
DF (virgola mobile a precisione doppia a 64 bit)
HEX1w (esadecimale a 16 bit)
HEX2w (esadecimale a 32 bit)
HEX4w (esadecimale a 64 bit)
ASCII (carattere ASCII, uscita contenuta tra "")
Posizione avanzamento linea: 0–255.
0: avanzamento linea di uscita solo al termine del file.
n: avanzamento linea di uscita dopo n data point.
'ATT=DATA,xxxxxxxxxxx,FILE=yyyyyyyyyyy'
: Aggiungere dati dall'area di memoria al testo dell'e-mail e allegare inoltre i dati come file. Utilizzare gli stessi valori previsti per 'ATT=DATA,xxxxxxx'
.
'ATT=FILE,Filename'
: Allegare un file da una cartella specificata sulla SD card.
Utilizzare le parole chiave 'TOP'
e 'END'
per aggiungere automaticamente data e ora al nome del file (yymmdd_hhmmss).
TOP
: Aggiungere i dati all'inizio del nome del file
END
: Aggiungere i dati alla fine del nome del file
Nota:
La lingua utilizzata per le informazioni generate automaticamente è specificata con l'istruzione FP_SMTP_SET_CONNECTION. Utilizzare il parametro sCommunication per cambiare la lingua da Giapponese (default) a Inglese.
Non è possibile specificare i nomi delle cartelle LOG per i file allegati ('\LOG0'
a '\LOG15'
).
Per generare la stringa sAttachment è possibile utilizzare anche FP_SMTP_GET_DATA_FORMAT.
Non aggiungere automaticamente dati o informazioni: 'INFO=NON,ATT=NONE'
Aggiungere automaticamente informazioni, non aggiungere dati: 'INFO=ADD,ATT=NONE'
Non aggiungere automaticamente informazioni, ma aggiungi dati esadecimali a 16 bit da DT100 a Dt109 al testo dell'e-mail: 'INFO=NON,ATT=DATA,DT100,10,HEX1w'
Non aggiungere automaticamente informazioni, ma allega un file dalla SD card : 'INFO=NON,ATT=FIL,\Folder\FileName.bin'
Uscita
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.
Il numero di caratteri per dati stringa non deve superare 4096 per unità CPU da ver.3.4 a ver.3.x e ver.4.1 o superiori, e 256 per altre unità CPU.
Questa istruzione non è disponibile nei programmi di interrupt.
I caratteri maiuscoli e minuscoli possono essere utilizzati per gli operandi per i quali è possibile specificare una costante di carattere. "Abcd", "ABCD" e "abcd" sono sinonimi, ma i nomi del file fanno distinzione tra maiuscole e minuscole.
Prima di eseguire l'istruzione, è necessario specificare il server di trasmissione e-mail utilizzando FP_SMTP_SET_CONNECTION 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 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.
Quando si verifica un errore, controllare la variabile di sistema sys_iEthernetConnectionErrorCode per verificare il numero di codice di errore.
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 viene specificato un server di trasmissione e-mail che non è stato specificato con l'istruzione FP_SMTP_SET_CONNECTION o se viene specificata la finestra di dialogo del client SMTP.
se lo stesso numero di gruppo di destinazione viene specificato in modo ridondante.
se viene specificato un numero di gruppo di destinazione che non è stato definito con l'istruzione FP_SMTP_SET_GROUP oppure se viene specificata la finestra di dialogo del client SMTP.
Se il flag di richiesta di trasmissione e-mail per l'impostazione di trasferimento specificata è "TRUE: Trasferimento richiesto".
Se il flag di richiesta di trasferimento per un numero nLogID specificato è TRUE, p.es. se sys_blsLog0DataRecordingActive è TRUE.
se il numero di caratteri per dati stringa supera il limite superiore. Il limite superiore è 4096 caratteri per unità CPU dalla ver.3.4 alla ver.3.x e ver.4.1 o superiore, e 256 caratteri per altre unità CPU.
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 viene specificato un server di trasmissione e-mail che non è stato specificato con l'istruzione FP_SMTP_SET_CONNECTION o se viene specificata la finestra di dialogo del client SMTP.
se lo stesso numero di gruppo di destinazione viene specificato in modo ridondante.
se viene specificato un numero di gruppo di destinazione che non è stato definito con l'istruzione FP_SMTP_SET_GROUP oppure se viene specificata la finestra di dialogo del client SMTP.
Se il flag di richiesta di trasmissione e-mail per l'impostazione di trasferimento specificata è "TRUE: Trasferimento richiesto".
Se il flag di richiesta di trasferimento per un numero nLogID specificato è TRUE, p.es. se sys_blsLog0DataRecordingActive è TRUE.
se il numero di caratteri per dati stringa supera il limite superiore. Il limite superiore è 4096 caratteri per unità CPU dalla ver.3.4 alla ver.3.x e ver.4.1 o superiore, e 256 caratteri per altre unità CPU.
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;
arRealArray: 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 := 5 ;
NETWORK_BODY
B(B_COMMENT,, ^Set mode to attach 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 := 10 ;
NETWORK_BODY
B(B_VARIN,,iID8,32,2,34,4,);
B(B_CONTACT,,bSetMode,4,1,6,3,R);
B(B_VAROUT,,bError,47,2,49,4,);
B(B_VARIN,,'GRPNO=0~SUBJECT=Time Notify Mail',32,4,34,6,);
B(B_VARIN,,'Hello~ this is time notify Mail from system. See attachment',32,5,34,7,);
B(B_VARIN,,'TRIG=TIME~/day~13:30:00',32,3,34,5,);
B(B_CONTACT,,sys_bIsEthernetInitializing,13,1,15,3,N);
B(B_VARIN,,'INFO=ADD~ATT=FILE;FILE=',26,7,28,9,);
B(B_VARIN,,sFilename,26,8,28,10,);
B(B_F,CONCAT-2!,,28,7,34,10,,?D?D?C);
B(B_F,FP_SMTP_SET_MODE!,,34,0,47,8,,?DEN?DnTransferID?DsTrigger?DsGroupNumber_Subject?DsBodyText?DsAttachment?AENO?CbError);
L(1,2,4,2);
L(34,7,34,8);
L(15,2,34,2);
L(6,2,13,2);
L(1,0,1,10);
END_NETWORK_BODY
END_NET_WORK
END_BODY
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=FILE;FILE=', sFilename),
bError => bError);
End_if;