S7-1200 > V4.0版本的以太网接口,通过"TMAIL_C"指令使用SMTP (Simple Mail Transfer Protocol)发送 e-mail邮件。
硬件需求
在这个例子中,电子邮件是通过基于以太网的网络连接发送的。 需要以下硬件:
- S7-1200 CPU
- 访问Internet 的 DSL 路由器
下图说明了"TMAIL_C"指令与其背景DB1的调用,以及如何为 "TMAIL_C"指令填写输入和输出参数的例子。
图 01
"TMAIL_C"指令的输入
表 01说明 "TMAIL_C"指令的输入。
输入 | 数据类型 | 描述 |
---|---|---|
REQ | BOOL | 控制参数 请求:上升沿激活发送邮件 |
TO_S | String |
收件人地址,例如: <user1@jana.os>, 注意
|
CC | String |
CC收件人地址 (可选),例如: <user2@jana.os> 注意
|
SUBJECT | String | 电子邮件的主题 |
TEXT | String |
电子邮件的文本(可选) 注意 |
ATTACHMENT | Variant |
电子邮件附件(可选) 对最大长度为 64 Kb 的字节/字/双字域(ArrayOfByte、ArrayOfWord 或 ArrayOfDWord)的引用。 如果未分配任何值,将发送无附件的电子邮件。 |
ATTACHMENT_NAME | String |
电子邮件附件名称(可选) 指向最大长度为 50 个字符(字节)的字符串的引用,用于定义附件的文件名。 如果在该参数中分配空字符串,将使用文件名“attachment.bin”发送电子邮件的附件。 |
MAIL_ADDR_PARAM | Version |
电子邮件服务器的连接参数和地址。使用结构 TMail_V4定义连接参数。 |
表 01
“TMAIL_C”指令的输出
表 02说明 “TMAIL_C”指令的输出参数
输出 | 数据类型 | 描述 |
---|---|---|
DONE | BOOL |
状态参数
|
BUSY | BOOL |
状态参数
|
ERROR | BOOL |
状态参数
|
STATUS | Word |
状态参数 指令“TMAIL_C”的返回值或者错误信息。 |
表 02
参数“MAIL_ADDR_PARAM”
在 MAIL_ADDR_PARAM 参数处,可使用 “TMail_V4”结构定义发送电子邮件的连接和保存电子邮件服务器地址和登录数据。
表 03说明根据IPV4寻址邮件服务器的 “TMAIL_V4”结构。
参数 | 数据类型 | 描述 |
---|---|---|
TMail_V4 | Struct | |
Interface ID | LADDR |
接口的硬件标识符 |
ID | CONN_OUC |
连接 ID |
CoectionType | BYTE |
连接类型 选择 16#20 作为 IPv4 的连接类型。 |
ActiveEstablished | BOOL |
状态位 建立连接后设置为“1”。 |
CertIndex | BYTE |
|
WatchDogTime | TIME |
执行看门狗。 使用此参数定义发送操作的最大执行时间。 注意 |
MailServerAddress | IP_V4 | 邮件服务器的IP地址。IPv4的格式如下 xxx.xxx.xxx.xxx (十进制)。 |
UserName | STRING[254] |
邮件服务器登录用户名称 |
PassWord | STRING[254] |
邮件服务器用户密码 |
From | EMAIL_ADDR |
电子邮件发件人地址,使用以下两个 STRING 参数定义。 例如: "test@testmail.os" |
LocalPartPlusAtSign | STRING[64] |
发件人地址的本地部分,包括 @ 符号。 例如:"test@" |
FullQualifiedDomainName | STRING[254] |
邮件服务器的全域名 (FQDN)。 例如:"testmail.os" |
表 03
图. 02说明全局DB中的 “TMail_V4”的参数赋值例子。
图 02
注意
- 在 CPU 中必须激活路由功能,并且设置正确的路由 IP 地址。否则 CPU 不能访问 e-mail 服务器的公共 IP 地址。
- TM_MAIL 只能通过端口 25 使用 SMTP 协议与 e-mail 服务器通讯,所以端口号不能变更。
TM_MAIL 不能运行在公司网络的外部 e-mail 服务器,并且只允许通过代理上网,通常公司网络会阻止包括端口 25 的所有端口。而 TM_MAIL 只能通过 TCP 端口 25 进行外部通信。
所以可以通过 SMTP 协议建立一个内部 e-mail 服务器的连接,让内部服务器管理当前的安全扩展需求,将邮件通过互联网转发到外部邮件服务器。
例子应用"Send e-mails to SMTP server with an S7-CPU"描述了怎样组态一个JanaServer作为内网的邮件服务器转发一封邮件到外网的邮件服务器。
注意
- 在CPU连接到 Internet之前你必须始终保持防御的纵深。
- 在西门子的安全规范里我们明确建议了怎样连接控制器设备到办公网络的服务器,本例中说明电子邮件服务器。那就是很必要使用 DMZ方案。
安全信息
为了保护工厂,系统,设备和网络免受网络威胁,整体的工业安全概念持续发展,其不断的维护是必须的。西门子的产品和解决方案只是这个概念的一个元素。
用户有责任阻止未经授权的访问其工厂、系统、设备和网络。系统、设备和部件应该只与企业网络或在一定程度上有必要和适当的安全措施的互联网连接(如使用防火墙和网络分割)。此外,西门子指南应考虑采取适当的安全措施。更多工业安全信息,请参考:https://www.siemens.com/industrialsecurity.
西门子的产品和解决方案经过不断的发展,使他们更安全。西门子强烈建议使用产品更新,并随时使用最新的产品版本。使用不再支持的产品版本,以及未能应用最新的更新可能会增加客户的网络威胁暴露程度。
为了及时了解的产品更新,可以订阅西门子工业安全RSS。请参考:https://www.siemens.com/industrialsecurity.
更多信息
关于“TMAIL_C”详细信息可以参考“STEP 7 Professional V13 SP1”手册,相关章节标题:
"TMAIL_C: Transfer E-Mail" .
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc323861.html