×
Siemens Industry Online Support
Siemens AG
文档类型 常问问题 文档编号 67262019, 文档发布日期 2018年5月29日
(15)
评估

如何在 SIMATIC S7-1200和S7-1500 中为“TMAIL_C"指令设置参数来发送 E-Mails ?

推荐文档: 西门子工程师推荐本文档!
  • 文档
  • 涉及产品
西门子S7-1200/S7-1500 PLC使用 "TMAIL_C" 指令发送 e-mails 邮件。

S7-1200  V4.0 以上版本的集成以太网接口或通讯处理器(CP)可以通过"TMAIL_C" 指令使用SMTP (简单邮件传输协议) 发送 e-mail 邮件。      

使用下列模块的以太网接口,使用V4.0及更高版本的"TMAIL_C" 指令通过安全通讯 实现发送 e-mail 邮件.


  • CP 1543-1 V2.0
  • CP 1542SP-1 IRC V1.0
  • CP 1543SP-1 V1.0
  • CP 1243-1 V2.1 以及更高
  • CP 1242-7 GPRS V2 V2.1 以及更高
  • CP 1243-7 LTE V2.1 以及更高
  • CP 1243-8 V2.1 以及更高
  • 可通过系统数据类型"TMAIl_V4_SEC", "TMAIL_V6_SEC" 和 "TMAIL_QDN_SEC"定义发送e-mail所需的数据,其中包含e-mail 服务器所有的TCP端口。

    由于兼容的原因,可以使用以前的系统数据类型"TMAIL_V4", "TMAIL_V6" 和 "TMAIL_FQDN",可以用CPU集成的以太网口和CP1543-1的网口发送e-mail。

    硬件需求

    这个例子中,电子邮件是通过基于以太网的网络连接发送的。 需要以下硬件:

    • S7-1200 CPU    
    • 访问 Internet 的 DSL

    下图显示了包含背景数据块DB1的"TMAIL_C" 指令的调用,以及如何为 "TMAIL_C" 指令填写输入和输出参的例子



    图 01

     "TMAIL_C" 指令的输入
    表 01 说明 "TMAIL_C" 指令的输入。
     

    输入数据类型描述
    REQBOOL控制参数
    请求: 上升沿激活发送邮件
    TO_SString

    收件人地址,例如: <user1@jana.os>,

    注意
    输入参数时必须遵循以下规则:

    • 必须在各地址前输入空格和尖括号“<”。
    • 必须在各地址后输入闭尖括号“>”。
    • 如果TO_S和CC参数包含多个邮件地址,则各地址之间输入逗号作分割。
    CCString

    CC收件人地址 (可选),例如: <user2@jana.os>

    注意
    输入参数时必须遵循以下规则:

    • 必须在各地址前输入空格和开尖括号“<”。
    • 必须在各地址后输入闭尖括号“>”。
    • 如果TO_S和CC参数包含多个邮件地址,则各地址之间输入逗号作分割。
    SUBJECTString电子邮件的主题
    TEXTString

    电子邮件的文本(可选)

    注意
    如果在该参数中分配空字符串,将发送无文本的电子邮件。

    ATTACHMENTVariant

    电子邮件附件(可选)

    对最大长度为 64 个字节 的字节/字/双字域(ArrayOfByte、ArrayOfWord 或 ArrayOfDWord)的引用。 如果未分配任何值,将发送无附件的电子邮件。

    ATTACHMENT_NAMEString

    电子邮件附件名称(可选)

    指向最大长度为 50 个字符(字节)的字符串,用于定义附件的文件名。 如果在该参数中分配空字符串,将使用文件名“attachment.bin”发送电子邮件的附件。

    MAIL_ADDR_PARAMVariant

    电子邮件服务器的连接参数和地址。使用结构 TMail_V4 定义连接参数。

     表 01

    “TMAIL_C” 指令的输出 
    表 02 说明 “TMAIL_C” 指令的输出参数
      

    输出数据类型描述
    DONEBOOL

    状态参数

    • DONE = 0:作业未启动,或仍在执行。

    • DONE = 1:作业已成功执行完毕。 

    BUSYBOOL

    状态参数

    • BUSY = 0:“TMAIL_C”的处理已结束。

    • BUSY = 1:电子邮件传送尚未完成。

    ERRORBOOL

    状态参数

    • ERROR = 0:未发生错误。

    • ERROR = 1:处理过程中出现了错误。关于错误类型的详细信息,请参见 STATUS。

    STATUSWord

    状态参数

    指令“TMAIL_C”的返回值或者错误信息。

    表  02

    参数 “MAIL_ADDR_PARAM”
    在 MAIL_ADDR_PARAM 参数处,可使用 “TMail_V4” 结构定义发送电子邮件的连接和保存电子邮件服务器地址和登录数据。

    表 03 显示的是通过根据IPv4的IP地址寻址邮件服务器的 “TMAIL_V4” 结构。
     

    参数数据类型描述
    TMail_V4Struct
    Interface IDLADDR

    接口的硬件标识符

    IDCONN_OUC

    连接 ID

    ConnectionTypeBYTE

    连接类型

    对于IPv4,选择 16#20 作为连接类型。

    ActiveEstablishedBOOL

    状态位

    建立连接后设置为“1”。

    CertIndexBYTE
    • =0: 使用了 SMTP (Simple Mail Transfer Protocol)。通过 S7-1200 CPU 的接口发送电子邮件必须使用 SMTP。
    • ≠0: 连接建立前使用 SMTPS 保障其安全(使用 CP/CM 时)。 使用 CertIndex 参数指定要使用的证书(请参见“项目导航 > 全局安全设置 > 证书管理器”)。

    WatchDogTimeTIME

    监控执行时间。 使用此参数定义发送操作的最大执行时间。

    注意
    如果连接速度比较慢,建立连接可能就需要较长的时间(约 1 分钟)。 指定参数 “WatchDogTime” 时,必须为连接建立预留足够的时间。一旦超过指定的时间,连接就会被终止。

    MailServerAddressIP_V4邮件服务器的IP 地址。根据IPv4 ,格式为 xxx.xxx.xxx.xxx (十进制)。
    UserNameSTRING[254]

    邮件服务器登录用户名称

    PassWordSTRING[254]

    邮件服务器用户密码

    FromEMAIL_ADDR

    电子邮件发件人地址,使用以下两个 STRING 参数定义。

    例如:  "test@testmail.os"

    LocalPartPlusAtSignSTRING[64]

    发件人地址的本地部分,包括 @ 符号。

    例如: "test@"

    FullQualifiedDomainNameSTRING[254]

    邮件服务器的全域名 (FQDN)。

    例如:"testmail.os"

    表  03

    图. 02 显示了全局数据块中的 “TMail_V4” 的参数赋值例子。
       

    图 02

    注意 

    • 在 CPU 中必须激活路由功能,并且设置正确的路由 IP 地址。否则 CPU 不能访问 e-mail 服务器的公有 IP 地址。
    • 通过CPU集成的以太网口,TMAIL_C指令可以通过端口 25 使用 SMTP 协议与 e-mail 服务器通讯,分配的端口号不能变更。
    • 通过CP卡的网口,“TMAIL_C”指令可以与一个e-mail 服务器建立一个安全连接(基于TSL的SMTP)。

    在公司网络,只允许通过代理上网,通常会阻止包括端口 25 的所有端口,"TMAIL_C"不能通过CPU的集成接口与外部 e-mail 服务器建立连接。而"TMAIL_C"只能通过 TCP 端口 25 进行外部通信。

    可以通过 SMTP 协议建立一个内部 e-mail 服务器的连接,让内部服务器管理当前的安全扩展需求,将邮件通过互联网转发到外部邮件服务器。

    同样,CP也可以通过 “TMAIL_C”指令与一个e-mail 服务器建立一个安全连接(基于TSL的SMTP)。

    例子应用"Send e-mails to SMTP server with an S7-CPU"描述了以下任务:

    • 组态一个Jana Server作为内网的邮件服务器转发一封邮件到外网的邮件服务器。
    • 通过CP卡与一个e-mail 服务器建立一个安全连接(基于TSL的SMTP)。

    注意

    • 在CPU 连接到 Internet之前,必须始终保持深度防御。
    • 在西门子的安全操作规范里我们明确建议了怎样连接控制器设备到办公网络的服务器,本例中的电子邮件服务器,有必要使用 DMZ 方案。


    更多信息
    关于“TMAIL_C” 详细信息可以参考“STEP 7 Professional V14 SP1”手册,相关章节标题:
    Description of TMAIL_C (S7-1200, S7-1500).


    安全性信息
    为了防止工厂、系统、机器和网络受到网络攻击,需要实施并持续保有全面、先进的工业信息安全概念。西门子的产品和解决方案只是此概念的其中一个要素。更多有关工业信息安全的信息,请访问

    http://www.siemens.com/industrialsecurity.

    安全性信息
    为了保护技术基础设施、系统、机器和网络免受网络威胁,有必要实施并持续维护一个全面、最先进的IT安全方案。西门子的产品和解决方案构成了这一方案的一个要素。有关网络安全的更多信息,请访问
    https://www.siemens.com/cybersecurity#Ouraspiration.