Enviar correos electrónicos con el S7-1200 utilizando TM_MAIL
La máquina inteligente, cada vez es más normal que la máquina sea más y más inteligente, capaz de tomar decisiones por si sola y de notificar datos de forma autónoma, por ejemplo averías, datos de producción etc. Cada vez más autómatas están conectados a redes LAN tanto internas como a Internet y comienza a ser muy normal que el PLC envíe esta información por email.
La instrucción TM_MAIL envía un correo electrónico usando SMTP (Simple Mail Transfer Protocol) a través de TCP/IP sobre la conexión Industrial Ethernet de la CPU. Se necesita una conexión a Internet basada en Ethernet o un adaptador de TeleService para la conexión con líneas de red telefónica.
Requisitos de hardware
Este ejemplo envía correos electrónicos a través de una conexión a Internet basada en Ethernet. Para ello se emplean los siguientes componentes de hardware:
- CPU S7-1200
- Router ADSL para el acceso a Internet
La siguiente imagen muestra la llamada a la instrucción TM_MAIL incluyendo el bloque de datos de instancia DB3 y un ejemplo de cómo parametrizar las entradas y salidas de la instrucción TM_MAIL.
La imagen a continuación muestra un ejemplo de cómo parametrizar los parámetros estáticos en el bloque de datos de instancia de la instrucción TM_MAIL.
Visión general de las entradas, salidas y parámetros estáticos de la instrucción TM_MAIL
La siguiente tabla ofrece una visión general de las entradas de la instrucción TM_MAIL.
Entrada | Tipo de dato | Descripción |
REQ | BOOL | La instrucción se inicia con un flanco positivo (de 0 a 1). |
ID | Int | ID del enlace |
TO_S | String | 'TO: <[email protected]>,' |
CC | String | Dirección de receptor para la copia CC (opcional)
'CC: <[email protected]>,' |
SUBJECT | String | Asunto del correo electrónico |
TEXT | String | Texto del correo electrónico (opcional)
Nota |
ATTACHMENT | Variante | Puntero al adjunto del correo electrónico (debe ser un array de bytes)
Nota |
La tabla dada más abajo ofrece una visión general de las salidas de la instrucción "TM_MAIL".
Salida | Tipo de dato | Descripción |
DONE | BOOL | 0: Trabajo no iniciado aún o no ejecutado todavía. 1: Trabajo ejecutado sin errores. |
BUSY | BOOL | 0: No hay ningún procedimiento en marcha 1: Procedimiento en marcha |
ERROR | BOOL | El bit de ERROR tiene el valor 1 durante un ciclo después de que la última petición haya terminado con un error. El código de error en la salida STATUS sólo es válida en el ciclo en el que ERROR = 1. |
STATUS | Word | Valor de retorno o información del error de las instrucciones TM_MAIL |
Para los siguientes valores ha de asignar valores en el bloque de datos de instancia de la instrucción TM_MAIL.
Parámetro | Tipo de dato | Descripción |
ADDR_MAIL_SERVER | DWord | Dirección IP del servidor de correo electrónico
Nota Ejemplo:
|
WATCH_DOG_TIME | Time | El período de tiempo máximo durante el cual TM_MAIL tiene que establecer una conexión con el servidor. Cuando se sobrepasa ese tiempo, la ejecución de la instrucción TM_MAIL finaliza con un error. |
USERNAME | String | Nombre de usuario de la cuenta de correo |
PASSWORD | String | Contraseña para el servidor de correo |
FROM | String | Dirección del emisor
'FROM: <[email protected]>' |
Reglas para la introducción de direcciones de recepción (para copia CC) y dirección de emisor
Se deben respetar las reglas dadas a continuación para la introducción de las direcciones de recepción (para copia CC) y la dirección del emisor.
- Los caracteres "TO:", "CC:" y "FROM:" se deben introducir incluyendo los dos puntos.
- Antes de cada dirección de correo electrónico se debe poner un espacio y el paréntesis puntiagudo de apertura "<". Por ejemplo, debe haber un espacio entre los caracteres "TO:" y .
- Después de cada dirección de correo electrónico se debe poner un paréntesis puntiagudo de cierre ">".
- Para las direcciones de correo electrónico "TO:" y "CC:" se debe introducir una coma "," después de cada dirección de correo electrónico. Por ejemplo, es necesaria una coma después de cada dirección de correo electrónico independiente en "TO: ,".
- Para la entrada de "FROM:" se puede introducir sólo una dirección de correo electrónico sin coma al final.
TM_MAIL sólo puede comunicar con un servidor de correo electrónico usando SMTP a través del puerto 25. No se puede modificar el número de puerto asignado.
La mayoría de departamentos IT y servidores de correo externos bloquean el puerto 25 mientras tanto para prevenir que un PC infectado con virus se convierta en un generador de correo electrónico peligroso.
Se puede establacer una conexión a través de SMTP con un servidor de correo electrónico interno y dejar al servidor interno gestionar las ampliaciones de seguridad actuales necesarias para el envío de correos electrónicos a través de Internet a un servidor de correo electrónico externo.
Se puede usar, por ejemplo, Microsoft Exchange como servidor de correo electrónico interno. Se puede configurar el servidor de modo que el acceso SMTP esté permitido desde la dirección IP que está asignada al S7-1200. Configurar la consola de gestión de Exchange: Server Configuration > Hub Transport > Receive Connectors >IP Relay. En la pestaña "Networks" (redes) está el campo "Receive e-mails from remote servers with the following IP addresses" (recibir correos electrónicos desde servidores remotos con las siguientes direcciones IP). Aquí se introduce la dirección IP del equipo PLC que ejecuta la instrucción TM_MAIL. Para este tipo de conexión no se necesita autentificación con un servidor Microsoft Exchange interno.
También se crea una cuenta compatible en el servidor de correo electrónico para aceptar el registro SMTP remoto. Entonces se edita el bloque de datos de instancia para la instrucción TM_MAIL y se introducen la cadenas de caracteres TM_MAIL USERNAME y PASSWORD por medio de las que se autentificará la conexión a su cuenta de correo electrónico.
Aviso de seguridad Advertencia
Las funciones y soluciones descritas en este artículo están reservadas en sí predominantemente a la realización de tareas de automatización. Además, se ruega tener en cuenta además que se han de establecer las medidas de protección correspondientes en el contexto de la seguridad industrial cuando se conectan los equipos a otras partes de la planta, la red corporativa o Internet.