FP_SMTP_SET_MODE

设置SMTP传输模式

此 FP 指令配置事件触发电子邮件的传输设置。将此指令与指令FP_SMTP_CONNECTION一同使用以进行SMTP服务器设置;与FP_SMTP_SET_GROUP一同使用以指定目标组。

参数

输入

nTransferID (WORD, INT, UINT)

设置传输设置ID。

值:0–15(值必须按升序输入)

sTrigger (STRING)

使用以下关键字设置之一设置触发器类型:

  • '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=周六)

    示例:
    1. 每天13:30:'TIME,/day,13:30:00'

    2. 每年4月1日9:00:'TIME,/year,4:1:9:0:0'

    3. 每周的周五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(错误被清除时)

    示例:
    1. 当PLC状态从[PROG]更改为[RUN]时:'TRIG=STATUS,PROG>RUN'

    2. 当满足以下条件之一时:出现自诊断错误或错误被清除:'TRIG=STATUS,ERR>STOP,ERR>RUN,ERRCLR'

sGroupNumber_Subject

设置目标组编号和电子邮件的主题。

  • 使用关键字语法'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'必须用逗号分隔并按此顺序输入。

示例:
  1. 目标组编号为0,由用户定义主题的“Time notification e-mail”:'GRPNO=0,SUBJECT=Time Notification E-Mail'

  2. 目标组编号为1、3、4、7,由用户定义主题的“Cyclic notification e-mail”:'GRPNO=1+3+4+7,SUBJECT=Cyclic notification e-mail'

  3. 目标组编号为0至7,自动生成主题:'GRPNO=0+1+2+3+4+5+6+7,SUBJECTAUTO'

sBodyText (STRING)

指定包含电子邮件文本或字符串的变量。

最大字符串长度:对于4.1或更高版本以及3.4至3.x版的CPU,最长为4096个单字节字符

对于其他所有版本,最长为256个单字节字符。

sAttachment (STRING)

指定是否发送附加信息或文件附件。

使用以下关键字设置之一在电子邮件文本中包含附加信息:

  • 'INFO=NON':不自动添加信息

  • 'INFO=ADD':添加事件信息(哪个事件触发了电子邮件)

以下信息将被添加到电子邮件文本中:

日语

英语

基本項目

  • 送信元
  • CPU 型番
  • IPv4 アドレス
  • IPv6 アドレス

Basic information

  • From

  • CPU Part number(例如CPS41E

  • IPv4 address

  • IPv6 address

トリガ種類

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':将内存区中的数据添加到电子邮件文本中。

    以下信息将被添加到电子邮件文本中:

    电子邮件文本中添加的信息(日语)

    电子邮件文本中添加的信息(英语)

    デバイス取得項目

    • デバイス取得(例:DT100)
    • データ数(例:4 デバイス)
    • 変換方法
    • 数値,数値,数値,数値

    Device get information

    • Device number(例如DT100)

    • Number of data(例如4个寄存器)

    • Conversion method

    • <Numerical value1>, <Numerical value2>, <Numerical value3>, <Numerical value4>

    指定起始地址、传输的数据数量,转换方法和换行位置。

    值:

    内存区和起始地址:WXWYWR, WLDTLDSD

    传输的数据数: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

示例:
  1. 不自动添加任何信息或数据:'INFO=NON,ATT=NONE'

  2. 自动添加信息,不添加数据:'INFO=ADD,ATT=NONE'

  3. 不自动添加信息,而是将DT100到DT109的16位十六进制数据添加到电子邮件文本中:'INFO=NON,ATT=DATA,DT100,10,HEX1w'

  4. 不自动添加信息,而是附加SD卡中的文件:'INFO=NON,ATT=FIL,\Folder\FileName.bin'

输出

bError (BOOL)
在以下情况下将变为TRUE
  • 如果超过连接超时

  • 如果 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_bIsEthernetInitializingFALSEsys_bIsEthernetInitializing在执行指令后将变为TRUEsys_bIsEthernetInitializingTRUE时,执行指令将发生错误。

  • 仅当指定传输设置的传输请求标志或指定的nLogID编号为FALSE时,才能执行该指令。当传输请求标志为TRUE时,将发生运算错误。

  • 成功执行此指令后,会重置系统变量sys_bIsCarrysys_iEthernetConnectionErrorCode

  • 当发生错误时,针对错误代码编号检查系统变量sys_iEthernetConnectionErrorCode

错误标志

sys_bIsOperationErrorHold(变为TRUE并保持为TRUE)
  • 如果为参数指定的值超出允许的范围。

  • 如果未按升序指定传输ID。

  • 如果指令是在中断程序中执行的。

  • 如果指定了未通过指令FP_SMTP_SET_CONNECTION或SMTP客户端的设置对话框指定的电子邮件传输服务器。

  • 如果以冗余方式指定了相同的目标组编号。

  • 如果指定了未使用指令FP_SMTP_SET_GROUP或SMTP客户端的设置对话框定义的目标组编号。

  • 如果指定传输设置的电子邮件传输请求标志为“TRUE:请求传输”。

  • 如果指定nLogID编号的传输请求标志为TRUE,例如,如果sys_blsLog0DataRecordingActiveTRUE

  • 如果字符串数据的字符数超过其上限值。对于CPU单元版本3.4到3.x和4.1或更高版本,上限值为4096个字符;对于其他CPU单元,上限值为256个字符。

sys_bIsOperationErrorNonHold(对于一次扫描变为TRUE)
  • 如果为参数指定的值超出允许的范围。

  • 如果未按升序指定传输ID。

  • 如果指令是在中断程序中执行的。

  • 如果指定了未通过指令FP_SMTP_SET_CONNECTION或SMTP客户端的设置对话框指定的电子邮件传输服务器。

  • 如果以冗余方式指定了相同的目标组编号。

  • 如果指定了未使用指令FP_SMTP_SET_GROUP或SMTP客户端的设置对话框定义的目标组编号。

  • 如果指定传输设置的电子邮件传输请求标志为“TRUE:请求传输”。

  • 如果指定nLogID编号的传输请求标志为TRUE,例如,如果sys_blsLog0DataRecordingActiveTRUE

  • 如果字符串数据的字符数超过其上限值。对于CPU单元版本3.4到3.x和4.1或更高版本,上限值为4096个字符;对于其他CPU单元,上限值为256个字符。

sys_bIsCarry(对于一次扫描变为TRUE)
  • 如果指令是在以太网初始化期间执行的,则sys_iEthernetConnectionErrorCode设置为“11:以太网正在初始化”。

示例

POU头

所有用于编程此函数的输入和输出变量已在POU头中声明。所有编程语言使用相同的POU头。

	VAR
		bSetModePlcData: BOOL:=FALSE;
		bSetModePlcDataError: BOOL:=FALSE;
		arRealArray: ARRAY [0..15] OF REAL:=[16(0.0)];
		iID10: INT:=10;
	END_VAR

POU本体

如果bSetModePLCDataFALSE更改为TRUEsys_bIsEthernetInitializingFALSE,则执行指令。

LD本体

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

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=FILE;FILE=', sFilename),
                     bError => bError);
End_if;

最后更新日期: 2024-03-07此页面上的反馈松下热线