设置SMTP传输模式
此 FP 指令配置事件触发电子邮件的传输设置。将此指令与指令FP_SMTP_CONNECTION一同使用以进行SMTP服务器设置;与FP_SMTP_SET_GROUP一同使用以指定目标组。
输入
设置传输设置ID。
值:0–15(值必须按升序输入)
使用以下关键字设置之一设置触发器类型:
'TRIG=BITON,xxx'
:在指定位的上升沿发送电子邮件。
值:X, Y, R, L, SR, E, DT.n, LD.n, SD.n
示例:'TRIG=BITON,R100'
在R100的上升沿发送电子邮件。
'TRIG=TIME,xxxx,yyyy'
:在指定的日期和/或指定的时间发送电子邮件。
值:
\min,ss(每分钟,以秒为单位设置时间)
\hour,mm:ss(每小时,以分钟和秒为单位设置时间)
\day,hh:mm:ss(每天,以小时、分钟和秒为单位设置时间)
\mon,DD:hh:mm:ss(每月,将日期设置为日、小时、分钟和秒)
\year,MM:DD:hh:mm:ss(每年,将日期设置为月、日、小时、分钟和秒)
\week,hh:mm:ss-w(每周,将日期和时间设置为小时、分钟、秒和一周中的某一天)
ss=秒(0–59)、mm=分钟(0–59)、hh=小时(0–23)、DD=天(1–31)、MM=月(1–12)、w=一周中的某一天(0=周日、1=周一、2=周二、3=周三、4=周四、5=周五,6=周六)
每天13:30:'TIME,/day,13:30:00'
每年4月1日9:00:'TIME,/year,4:1:9:0:0'
每周的周五23:50:'TIME,/week,23:50:00-5'
'TRIG=CYCLIC,xxxx'
:以定期间隔发送电子邮件。
值:
30SEC(30秒)
1MIN, 2MIN, 3MIN, 4MIN, 5MIN, 6MIN, 10MIN, 15MIN, 30MIN(分钟)
1HOUR, 2HOUR, 3HOUR, 4HOUR, 6HOUR, 12HOUR, 24HOUR(小时)
最短的循环为30秒。您只能设置一个循环时间(无法设置像'1MIN30SEC'
一样的值)。
示例:'TRIG=CYCLIC,30SEC'
每30秒发送一次电子邮件。
'TRIG=PROGRAM'
:执行FP_SMTP_TRANSFER_REQUEST指令时发送电子邮件。
TRIG=STATUS,xxx1,xxx2,xxx3
:当指定的PLC状态发生变化时发送电子邮件。
值:
PROG>RUN(从[PROG]切换为[RUN]时)
RUN>PROG(从[RUN]切换为[PROG]时)
ERR>STOP(发生自诊断错误且操作停止时)
ERR>RUN(发生自诊断错误且操作继续时)
ERRCLR(错误被清除时)
当PLC状态从[PROG]更改为[RUN]时:'TRIG=STATUS,PROG>RUN'
当满足以下条件之一时:出现自诊断错误或错误被清除:'TRIG=STATUS,ERR>STOP,ERR>RUN,ERRCLR'
设置目标组编号和电子邮件的主题。
使用关键字语法'GRPNO=n1+n2+…+n8'
最多设置八个目标组编号。
值:0–7
使用以下两个关键字设置之一设置主题:
'SUBJECT=xxxxxx'
:设置用户定义的主题文本。
'SUBJECTAUTO'
:自动生成的主题包含有关发送触发器类型的信息。
自动生成的主题:
日语 |
英语 |
---|---|
ビット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 |
注意:
自动生成的信息所使用的语言由指令FP_SMTP_SET_CONNECTION指定。使用参数sCommunication将语言从日语(默认)切换为英语。
如果已将多个PLC状态更改指定为触发器类型,则主题将包含触发电子邮件发送的实际状态更改。
关键字'GRPNO'
和'SUBJECT'
必须用逗号分隔并按此顺序输入。
目标组编号为0,由用户定义主题的“Time notification e-mail”:'GRPNO=0,SUBJECT=Time Notification E-Mail'
目标组编号为1、3、4、7,由用户定义主题的“Cyclic notification e-mail”:'GRPNO=1+3+4+7,SUBJECT=Cyclic notification e-mail'
目标组编号为0至7,自动生成主题:'GRPNO=0+1+2+3+4+5+6+7,SUBJECTAUTO'
指定包含电子邮件文本或字符串的变量。
最大字符串长度:对于4.1或更高版本以及3.4至3.x版的CPU,最长为4096个单字节字符
对于其他所有版本,最长为256个单字节字符。
指定是否发送附加信息或文件附件。
使用以下关键字设置之一在电子邮件文本中包含附加信息:
'INFO=NON'
:不自动添加信息
'INFO=ADD'
:添加事件信息(哪个事件触发了电子邮件)
以下信息将被添加到电子邮件文本中:
日语 |
英语 |
---|---|
基本項目
|
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 |
注意:
地址信息取决于FP_SMTP_SET_CONNECTION指定的是IPv4地址还是IPv6地址。
自动生成的信息所使用的语言由指令FP_SMTP_SET_CONNECTION指定。使用参数sCommunication将语言从日语(默认)切换为英语。
使用以下关键字设置之一包含数据和/或文件附件:
'ATT=NONE'
:不要在电子邮件中添加任何数据。
'ATT=DATA,xxxxxxx'
:将内存区中的数据添加到电子邮件文本中。
以下信息将被添加到电子邮件文本中:
电子邮件文本中添加的信息(日语) |
电子邮件文本中添加的信息(英语) |
---|---|
デバイス取得項目
|
Device get information
|
指定起始地址、传输的数据数量,转换方法和换行位置。
值:
内存区和起始地址:WX、WY、WR, WL、DT、LD、SD
传输的数据数:1–1000
转换方法:
BIN1w(未转换的16位二进制文件,不能用于向电子邮件文本添加数据,要想添加,请改用'FILE'
关键字)
US(16 位无符号十进制)
SS(16 位有符号十进制)
UL(32 位无符号十进制)
SL(32 位有符号十进制)
SF(32 位单精度浮点)
DF(64 位双精度浮点)
HEX1w(16 位十六进制)
HEX2w(32 位十六进制)
HEX4w(64 位十六进制)
ASCII(ASCII字符,输出用“”括起)
换行位置:0–255。
0:仅在文件末尾输出换行符。
n:每n个数据点输出一个换行符。
'ATT=DATA,xxxxxxxxxxx,FILE=yyyyyyyyyyy'
:将内存区中的数据添加到电子邮件文本中,并将数据附加为文件。使用与'ATT=DATA,xxxxxxx’
相同的值。
'ATT=FILE,Filename'
:附加SD卡上指定文件夹中的文件。
使用关键字'TOP'
和'END'
,自动向文件名添加日期和时间(yymmdd_hhmmss)。
TOP
:在文件名的开头添加数据
END
:在文件名的末尾添加数据
注意:
自动生成的信息所使用的语言由指令FP_SMTP_SET_CONNECTION指定。使用参数sCommunication将语言从日语(默认)切换为英语。
无法为文件附件指定LOG文件夹名称('\LOG0'
到'\LOG15'
)。
要生成sAttachment字符串,也可以使用FP_SMTP_GET_DATA_FORMAT。
不自动添加任何信息或数据:'INFO=NON,ATT=NONE'
自动添加信息,不添加数据:'INFO=ADD,ATT=NONE'
不自动添加信息,而是将DT100到DT109的16位十六进制数据添加到电子邮件文本中:'INFO=NON,ATT=DATA,DT100,10,HEX1w'
不自动添加信息,而是附加SD卡中的文件:'INFO=NON,ATT=FIL,\Folder\FileName.bin'
输出
如果超过连接超时
如果 IP 地址无效
当发生错误时,针对错误代码编号检查系统变量sys_iEthernetConnectionErrorCode。
对于CPU单元版本3.4到3.x和4.1或更高版本,字符串数据的字符数不应超过4096;对于其他CPU单元,不应超过256。
此指令不可用于中断程序。
大小写字符均可用于可指定字符常量的操作数。“Abcd”、“ABCD”和“abcd”意义相同,但是,文件名区分大小写。
执行此指令前,需使用FP_SMTP_SET_CONNECTION或SMTP客户端的设置对话框指定电子邮件传输服务器。
执行此指令前,需使用FP_SMTP_SET_GROUP或SMTP客户端的设置对话框指定组和事件邮件设置。
执行此指令前,确保sys_bIsEthernetInitializing为FALSE。sys_bIsEthernetInitializing在执行指令后将变为TRUE。sys_bIsEthernetInitializing为TRUE时,执行指令将发生错误。
仅当指定传输设置的传输请求标志或指定的nLogID编号为FALSE时,才能执行该指令。当传输请求标志为TRUE时,将发生运算错误。
成功执行此指令后,会重置系统变量sys_bIsCarry和sys_iEthernetConnectionErrorCode。
当发生错误时,针对错误代码编号检查系统变量sys_iEthernetConnectionErrorCode。
如果为参数指定的值超出允许的范围。
如果未按升序指定传输ID。
如果指令是在中断程序中执行的。
如果指定了未通过指令FP_SMTP_SET_CONNECTION或SMTP客户端的设置对话框指定的电子邮件传输服务器。
如果以冗余方式指定了相同的目标组编号。
如果指定了未使用指令FP_SMTP_SET_GROUP或SMTP客户端的设置对话框定义的目标组编号。
如果指定传输设置的电子邮件传输请求标志为“TRUE:请求传输”。
如果指定nLogID编号的传输请求标志为TRUE,例如,如果sys_blsLog0DataRecordingActive为TRUE。
如果字符串数据的字符数超过其上限值。对于CPU单元版本3.4到3.x和4.1或更高版本,上限值为4096个字符;对于其他CPU单元,上限值为256个字符。
如果为参数指定的值超出允许的范围。
如果未按升序指定传输ID。
如果指令是在中断程序中执行的。
如果指定了未通过指令FP_SMTP_SET_CONNECTION或SMTP客户端的设置对话框指定的电子邮件传输服务器。
如果以冗余方式指定了相同的目标组编号。
如果指定了未使用指令FP_SMTP_SET_GROUP或SMTP客户端的设置对话框定义的目标组编号。
如果指定传输设置的电子邮件传输请求标志为“TRUE:请求传输”。
如果指定nLogID编号的传输请求标志为TRUE,例如,如果sys_blsLog0DataRecordingActive为TRUE。
如果字符串数据的字符数超过其上限值。对于CPU单元版本3.4到3.x和4.1或更高版本,上限值为4096个字符;对于其他CPU单元,上限值为256个字符。
如果指令是在以太网初始化期间执行的,则sys_iEthernetConnectionErrorCode设置为“11:以太网正在初始化”。
所有用于编程此函数的输入和输出变量已在POU头中声明。所有编程语言使用相同的POU头。
VAR
bSetModePlcData: BOOL:=FALSE;
bSetModePlcDataError: BOOL:=FALSE;
arRealArray: ARRAY [0..15] OF REAL:=[16(0.0)];
iID10: INT:=10;
END_VAR
如果bSetModePLCData从FALSE更改为TRUE且sys_bIsEthernetInitializing为FALSE,则执行指令。
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;