Définir le mode de transfert SMTP
Cette instruction FP configure les paramètres d’envoi d’e-mails déclenché par un événement. Utilisez cette instruction en combinaison avec les instructions FP_SMTP_CONNECTION pour configurer les paramètres du serveur SMTP et FP_SMTP_SET_GROUP pour spécifier le groupe de destination.
Entrée
Définir l’ID des paramètres de transfert.
Valeurs : 0–15 (entrées dans l’ordre croissant)
Définir le type de déclenchement avec l’un des mots-clés suivants :
'TRIG=BITON,xxx'
: Envoie un e-mail en front montant du bit spécifié.
Valeurs :X, Y, R, L, SR, E, DT.n, LD.n, SD.n
Exemple : 'TRIG=BITON,R100'
envoie un e-mail en front montant de R100.
'TRIG=TIME,xxxx,yyyy'
: Envoie un e-mail le jour spécifié et/ou à l’heure spécifiée.
Valeurs :
\min,ss (toutes les minutes, temps défini en secondes)
\hour,mm:ss (toutes les heures, temps défini en minutes et secondes)
\day,hh:mm:ss (tous les jours, temps défini en heures, minutes et secondes)
\mon,DD:hh:mm:ss (tous les mois, date définie en tant que jours, heures, minutes et secondes)
\year,MM:DD:hh:mm:ss (tous les ans, date définie en tant que mois, jours, heures, minutes et secondes)
\week,hh:mm:ss-w (toutes les semaines, jour et heure définis en tant que heures, minutes, secondes et jour de la semaine)
ss=secondes (0 à 59), mm=minutes (0 à 59), hh=heures (0 à 23), DD=jour (1 à 31), MM=mois (1 à 12), w=jour de la semaine (0=Dimanche, 1=Lundi, 2=Mardi, 3=Mercredi, 4=Jeudi, 5=Vendredi, 6=Samedi)
Tous les jours à 13h30 : 'TIME,/day,13:30:00'
Tous les ans, le 1er avril à 9h00 : 'TIME,/year,4:1:9:0:0'
Toutes les semaines, le vendredi à 23h50 : 'TIME,/week,23:50:00-5'
'TRIG=CYCLIC,xxxx'
: Envoie un e-mail à intervalles réguliers.
Valeurs :
30SEC (30 secondes)
1MIN, 2MIN, 3MIN, 4MIN, 5MIN, 6MIN, 10MIN, 15MIN, 30MIN (minutes)
1HOUR, 2HOUR, 3HOUR, 4HOUR, 6HOUR, 12HOUR, 24HOUR (heures)
Le cycle le plus court est de 30 secondes. Vous ne pouvez définir qu’un seul temps de cycle (des valeurs telles que '1MIN30SEC'
ne peuvent pas être définies).
Exemple :'TRIG=CYCLIC,30SEC'
envoie un e-mail toutes les 30 secondes.
'TRIG=PROGRAM'
: Envoie un e-mail lorsque l’instruction FP_SMTP_TRANSFER_REQUEST est exécutée.
TRIG=STATUS,xxx1,xxx2,xxx3
: Envoie un e-mail lorsque l’un des changements d’état de l’API spécifié se produit.
Valeurs :
PROG>RUN (lors de la commutation du mode PROG en mode RUN)
RUN>PROG (lors de la commutation du mode RUN en mode PROG)
ERR>STOP (lorsqu’une erreur d’autodiagnostic apparaît et l’opération s’arrête)
ERR>RUN (lorsqu’une erreur d’autodiagnostic apparaît et l’opération continue)
ERRCLR (lorsqu’une erreur est supprimée)
Lorsque l’état de l’automate passe du mode PROG au mode RUN : 'TRIG=STATUS,PROG>RUN'
Lorsque l’une des conditions suivantes est remplie : une erreur d’autodiagnostic apparaît ou une erreur est supprimée : 'TRIG=STATUS,ERR>STOP,ERR>RUN,ERRCLR'
Définir le numéro du groupe de destination et l’objet de l’e-mail.
Définir jusqu’à huit numéros de groupes de destination avec la syntaxe de mot-clé 'GRPNO=n1+n2+…+n8'
Valeurs : 0–7
Définir l’objet avec l’un des mots-clés suivants :
'SUBJECT=xxxxxx'
: Définit le texte de l’objet défini par l’utilisateur.
'SUBJECTAUTO'
: Objet généré automatiquement contenant des informations sur le type de déclenchement de l’envoi.
Objets générés automatiquement :
Japonais |
Anglais |
---|---|
ビット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 langue utilisée pour les informations générées automatiquement est spécifiée avec l’instruction FP_SMTP_SET_CONNECTION. Utilisez le paramètre sCommunication pour changer la langue et passer du japonais (défaut) à l’anglais.
Si plusieurs changements d’état de l’API ont été spécifiés en tant que type de déclenchement, l’objet contiendra le changement d’état de l’API qui a déclenché l’envoi de l’e-mail.
Les mots-clés 'GRPNO'
et 'SUBJECT'
doivent être séparés par des virgules et entrés dans cet ordre.
Numéro du groupe de destination 0, objet défini par l’utilisateur "Time notification e-mail" : 'GRPNO=0,SUBJECT=Time Notification E-Mail'
Numéros des groupes de destination 1, 3, 4, 7, objet défini par l’utilisateur "Cyclic notification e-mail" : 'GRPNO=1+3+4+7,SUBJECT=Cyclic notification e-mail'
Numéros des groupes de destination 0 à 7, objet généré automatiquement : 'GRPNO=0+1+2+3+4+5+6+7,SUBJECTAUTO'
Spécifier une variable contenant le texte de l’e-mail ou une chaîne de caractères.
Longueur maximale de la chaîne de caractères : 4096 caractères à un octet pour les unités centrales versions 4.1 ou supérieures et versions 3.4 à 3.x.
256 caractères à un octet pour toutes les autres versions.
Spécifier si des informations supplémentaires ou une pièce jointe doivent être envoyées.
Inclure des informations supplémentaires dans le texte d’e-mail avec un des mots-clés suivants :
'INFO=NON'
: Ne pas ajouter d’informations supplémentaires automatiquement.
'INFO=ADD'
: Ajouter des informations sur l’événement (quel événement a déclenché l’e-mail)
Les informations suivantes sont ajoutées au texte d’e-mail :
Japonais |
Anglais |
---|---|
基本項目
|
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 :
Les informations sur l’adresse varient selon qu’une adresse IPv4 ou IPv6 a été spécifiée avec FP_SMTP_SET_CONNECTION.
La langue utilisée pour les informations générées automatiquement est spécifiée avec l’instruction FP_SMTP_SET_CONNECTION. Utilisez le paramètre sCommunication pour changer la langue et passer du japonais (défaut) à l’anglais.
Inclure des données et/ou des pièces jointes avec un des mots-clés suivants :
'ATT=NONE'
: Ne pas ajouter de données à l’e-mail.
'ATT=DATA,xxxxxxx'
: Ajouter des données de la zone mémoire au texte d’e-mail.
Les informations suivantes sont ajoutées au texte d’e-mail :
Informations ajoutées au texte d’e-mail (japonais) |
Informations ajoutées au texte d’e-mail (anglais) |
---|---|
デバイス取得項目
|
Device get information
|
Spécifier l’adresse de départ, le nombre de données transférées, la méthode de conversion et la position du saut de ligne.
Valeurs :
Zone mémoire et adresse de départ : WX, WY, WR, WL, DT, LD, SD
Nombre de données transférées : 1–1000
Méthode de conversion :
BIN1w (binaire 16 bits non convertis, ne peut pas être utilisé pour ajouter des données aux textes d’e-mail, utilisez le mot-clé 'FILE'
à la place)
US (décimal non signé de 16 bits)
SS (décimal signé de 16 bits)
UL (décimal non signé de 32 bits)
SL (décimal signé de 32 bits)
SF (virgule flottante, précision simple, 32 bits)
DF (virgule flottante, précision double, 64 bits)
HEX1w (HEX de 16 bits)
HEX2w (HEX de 32 bits)
HEX4w (HEX de 64 bits)
ASCII (caractères ASCII, sortie entre guillemets "")
Position du saut de ligne 0–255.
0 : saut de ligne inséré en fin de fichier uniquement.
n : saut de ligne inséré après tous les n points de données.
'ATT=DATA,xxxxxxxxxxx,FILE=yyyyyyyyyyy'
: Ajouter des données de la zone mémoire au texte d’e-mail et joindre les données en pièce jointe. Utiliser les mêmes valeurs que pour 'ATT=DATA,xxxxxxx'
.
'ATT=FILE,Filename'
: Ajouter un fichier à partir d’un dossier sur carte mémoire SD spécifié.
Utiliser les mots-clés 'TOP'
et 'END'
pour ajouter automatiquement la date et l’heure au nom du fichier (yymmdd_hhmmss).
TOP
: Ajouter des données au début du nom du fichier.
END
: Ajouter des données à la fin du nom du fichier.
Nota :
La langue utilisée pour les informations générées automatiquement est spécifiée avec l’instruction FP_SMTP_SET_CONNECTION. Utilisez le paramètre sCommunication pour changer la langue et passer du japonais (défaut) à l’anglais.
Des noms de dossiers LOG ne peuvent pas être spécifiés en tant que pièces jointes ('\LOG0'
à '\LOG15'
).
Pour générer la chaîne de caractères sAttachment, vous pouvez utiliser également FP_SMTP_GET_DATA_FORMAT.
Ne pas ajouter d’informations ou de données automatiquement : 'INFO=NON,ATT=NONE'
Ajouter des informations automatiquement, ne pas ajouter de données : 'INFO=ADD,ATT=NONE'
Ne pas ajouter d’informations automatiquement mais ajouter des données HEX de 16 bits de DT100 à DT109 au texte d’e-mail : 'INFO=NON,ATT=DATA,DT100,10,HEX1w'
Ne pas ajouter d’informations automatiquement mais ajouter un fichier de la carte SD en pièce jointe : 'INFO=NON,ATT=FIL,\Folder\FileName.bin'
Sortie
Si le temps d’attente de connexion est dépassé.
Si une adresse IP est invalide.
Lorsqu’une erreur apparaît, utilisez la variable système sys_iEthernetConnectionErrorCode pour connaître le numéro de code d’erreur.
Le nombre de caractères des données STRING ne doit pas être supérieur à 4096 pour les unités centrales Ver.3.4 à Ver.3.x et Ver.4.1 ou ultérieure et à 256 pour les autres unités centrales.
Cette instruction n’est pas disponible dans les programmes d’interruption.
Des caractères en lettres majuscules et minuscules peuvent être utilisés pour les opérandes pour lesquels une constante de caractères peut être spécifiée. "Abcd", "ABCD" et "abcd" sont synonymes, par contre, les noms de fichiers sont sensibles à la casse.
Avant d’exécuter l’instruction, le serveur d’envoi d’e-mails doit être indiqué à l’aide de FP_SMTP_SET_CONNECTION ou de la boîte de dialogue de paramétrage du client SMTP.
Avant d’exécuter l’instruction, les paramètres de groupes et d’e-mails d’événements doivent être entrés à l’aide de FP_SMTP_SET_GROUP ou de la boîte de dialogue de paramétrage du client SMTP.
Avant d’exécuter l’instruction, vérifiez que sys_bIsEthernetInitializing est FALSE. sys_bIsEthernetInitializing passe à TRUE lorsque l’instruction est exécutée. Lorsque l’instruction est exécutée alors que sys_bIsEthernetInitializing est TRUE, une erreur apparaît.
L’instruction ne peut être exécutée que lorsque le drapeau de requête de transfert pour la configuration de transfert spécifiée ou le numéro nLogID spécifié est FALSE. Lorsque le drapeau de requête de transfert est TRUE, une erreur d’opération apparaît.
Lorsque l’instruction a été exécutée avec succès, les variables système sys_bIsCarry et sys_iEthernetConnectionErrorCode sont réinitialisées.
Lorsqu’une erreur apparaît, utilisez la variable système sys_iEthernetConnectionErrorCode pour connaître le numéro de code d’erreur.
Si une valeur spécifiée pour un paramètre est en dehors de l’intervalle autorisé.
Si les ID du transfert ne sont pas spécifiées dans l’ordre croissant.
Si l’instruction est exécutée dans un programme d’interruption.
Si un serveur d’envoi d’e-mail spécifié n’a pas été configuré avec l’instruction FP_SMTP_SET_CONNECTION ou avec la boîte de dialogue de paramétrage du client SMTP.
Si le même numéro de groupe de destination est spécifié de manière redondante.
Si un numéro de groupe de destination n’a pas été spécifié avec l’instruction FP_SMTP_SET_GROUP ou avec la boîte de dialogue de paramétrage du client SMTP.
Si le drapeau de requête d’envoi d’e-mails pour la configuration de transfert spécifiée est "TRUE : Requête de transfert".
Si le drapeau de requête de transfert pour un numéro nLogID spécifié est TRUE, par ex. si sys_blsLog0DataRecordingActive est TRUE.
Si le nombre de caractères des données STRING excède la limite supérieure. La limite supérieure est de 4096 caractères pour les unités centrales Ver.3.4 à Ver.3.x et Ver.4.1 ou ultérieure et 256 caractères pour les autres unités centrales.
Si une valeur spécifiée pour un paramètre est en dehors de l’intervalle autorisé.
Si les ID du transfert ne sont pas spécifiées dans l’ordre croissant.
Si l’instruction est exécutée dans un programme d’interruption.
Si un serveur d’envoi d’e-mail spécifié n’a pas été configuré avec l’instruction FP_SMTP_SET_CONNECTION ou avec la boîte de dialogue de paramétrage du client SMTP.
Si le même numéro de groupe de destination est spécifié de manière redondante.
Si un numéro de groupe de destination n’a pas été spécifié avec l’instruction FP_SMTP_SET_GROUP ou avec la boîte de dialogue de paramétrage du client SMTP.
Si le drapeau de requête d’envoi d’e-mails pour la configuration de transfert spécifiée est "TRUE : Requête de transfert".
Si le drapeau de requête de transfert pour un numéro nLogID spécifié est TRUE, par ex. si sys_blsLog0DataRecordingActive est TRUE.
Si le nombre de caractères des données STRING excède la limite supérieure. La limite supérieure est de 4096 caractères pour les unités centrales Ver.3.4 à Ver.3.x et Ver.4.1 ou ultérieure et 256 caractères pour les autres unités centrales.
Si l’instruction est exécutée pendant l’initialisation d’Ethernet, sys_iEthernetConnectionErrorCode est définie sur "11 : initialisation Ethernet en cours".
Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU. Le même en-tête de POU est utilisé pour tous les langages de programmation.
VAR
bSetModePlcData: BOOL:=FALSE;
bSetModePlcDataError: BOOL:=FALSE;
arRealArray: ARRAY [0..15] OF REAL:=[16(0.0)];
iID10: INT:=10;
END_VAR
Lorsque bSetModePLCData passe de FALSE à TRUE et lorsque sys_bIsEthernetInitializing est FALSE, l’instruction est exécutée.
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;