|
|
东莞市西维拓机电有限公司
电话:(86)-769 -81177500
传真:(86)-769 -81177515
E-mail:CvtLMz@163.com
地址:东莞市东城区东泰社区东莞大道17号汇业大厦21楼06室
西门子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" 指令的输入。
输入 | 数据类型 | 描述 |
---|---|---|
REQ | BOOL | 控制参数 请求: 上升沿激活发送邮件 |
TO_S | String | 收件人地址,例如: <user1@jana.os>, 注意
|
CC | String | CC收件人地址 (可选),例如: <user2@jana.os> 注意
|
SUBJECT | String | 电子邮件的主题 |
TEXT | String | 电子邮件的文本(可选) 注意 |
ATTACHMENT | Variant | 电子邮件附件(可选) 对最大长度为 64 个字节 的字节/字/双字域(ArrayOfByte、ArrayOfWord 或 ArrayOfDWord)的引用。 如果未分配任何值,将发送无附件的电子邮件。 |
ATTACHMENT_NAME | String | 电子邮件附件名称(可选) 指向最大长度为 50 个字符(字节)的字符串,用于定义附件的文件名。 如果在该参数中分配空字符串,将使用文件名“attachment.bin”发送电子邮件的附件。 |
MAIL_ADDR_PARAM | Variant | 电子邮件服务器的连接参数和地址。使用结构 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的IP地址寻址邮件服务器的 “TMAIL_V4” 结构。
参数 | 数据类型 | 描述 |
---|---|---|
TMail_V4 | Struct | |
Interface ID | LADDR | 接口的硬件标识符 |
ID | CONN_OUC | 连接 ID |
ConnectionType | BYTE | 连接类型 对于IPv4,选择 16#20 作为连接类型。 |
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 显示了全局数据块中的 “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 方案。
|