En esta entrada vamos a ver cómo enviar un email con TM_MAIL en TIA Portal.
Puede parecer trivial ya que la documentación aportada por Siemens, es más o menos clara.
El problema viene cuando lo configuras… y no funciona.
Contenido
Enviar un email con TM_MAIL en TIA Portal
Como digo, la configuración es bastante sencilla a priori:
- Un PLC 1200
- Una conexión con salida a Internet.
- Configurar el PLC
En mi caso, tengo un S7-1212 Ac/Dc/Relay conectado al router de casa, y este lógicamente a internet.
¿Funciona enviar un email con TM_Mail?
Pues sí. Pero con matices.
El mayor problema que vas a encontrar es que prácticamente todos los servicios de email genéricos (gmail, hotmail, gmx…) tienen el puerto 25 bloqueado.
¿Eso es importante?
Es LO importante.
Porque el resto de cosillas que tienes que configurar, con más o menos tino, darás con ello.
Pero si no tienes un servidor con servicio SMTP que use el puerto 25 para mandar emails, estás haciendo el canelo.
Podrás enviar un email usando las pantallas comfort de Siemens como ya vimos en otra entrada.
¿Aún quieres enviar un un email con TM_MAIL en TIA Portal?
Vídeo de cómo enviar un email con TM_MAIL en TIA Portal
A continuación te dejo cómo configurar el PLC para poder realizar esta conexión para enviar el email.
La cofiguración del bloque para enviar un email con TM_Mail
La ayuda de Siemens, proporciona, entre otras cosas, una tabla con todos los parámetros que he completado con los ejemplos importantes:
Parámetro | Descripción | |||
---|---|---|---|---|
REQ | Parámetro de control REQUEST: Activa el envío de un mensaje de correo electrónico con un flanco ascendente. | |||
ID | Referencia a la conexión que debe establecerse. Véase la ID de parámetro de las instrucciones TCON, TDISCON, TSEND y TRCV. Aquí se debe introducir un número que no se vaya a utilizar en ninguna otra instancia de estas instrucciones en el programa de usuario. | |||
TO_S | Parámetro de entrada Direcciones de destinatario:
STRING con una longitud máxima de 240 caracteres (véase el ejemplo de llamada). Ejemplo: ‘TO:<[email protected]>,’ |
|||
CC | Parámetro de entrada Direcciones de destinatario CC (opcional): STRING con una longitud máxima de 240 caracteres (véase el ejemplo de llamada).
Si se asigna un string vacío, el mensaje no se envía a un destinatario CC. Ejemplo: ‘TO:<[email protected]>,’ |
|||
SUBJECT | Parámetro de entrada Asunto del mensaje:
STRING con una longitud máxima de 240 caracteres. |
|||
TEXT | Parámetro de entrada Texto del mensaje (opcional):
Referencia a un string de datos con una longitud máxima de 240 caracteres. Si a este parámetro se le asigna un string vacío, el mensaje se envía sin texto. |
|||
ATTACHMENT | Parámetro de entrada Archivos adjuntos del mensaje (opcional): Referencia a un campo de byte/palabra/palabra doble con una longitud máxima de 65534 bytes.
Si no se asigna ningún valor, el mensaje se envía sin archivos adjuntos. |
|||
DONE |
|
|||
BUSY |
|
|||
ERROR | ERROR = 1: durante la ejecución se ha producido un error. STATUS y SFC_STATUS devuelven información detallada sobre el tipo de error. | |||
STATUS | Parámetro de salida/estado STATUS:
Valor de retorno o información de error de la instrucción «TM_MAIL». |
|||
ADDR_MAIL_SERVER | Parámetro de entrada Dirección IP del servidor de correo: Debe indicarse en forma de palabra de datos en formato HEX, p. ej.: Dirección IP = 192.168.0.200.
ADDR_MAIL_SERVER = DW#16#C0A800C8, teniendo en cuenta lo siguiente:
|
|||
WATCH_DOG_TIME | Parámetro de entrada Intervalo máx.:
En el tiempo predeterminado (WATCH_DOG_TIME), la instrucción «TM_MAIL» debería establecer una conexión. Si se supera este tiempo, el bloque se finaliza con un error. El tiempo hasta que el bloque finaliza y el error se notifica puede superar el WATCH_DOG_TIME, ya que el establecimiento de la conexión también requiere tiempo. Para comenzar debe ajustarse un tiempo de 2 minutos. En la conexión telefónica vía ISDN, puede seleccionarse un tiempo notablemente inferior. |
|||
USERNAME | Parámetro de entrada Nombre de usuario:
STRING con una longitud máxima de 180 caracteres. Para los procesos de autenticación es imprescindible un nombre de usuario. |
|||
PASSWORD | Parámetro de entrada Contraseña:
STRING con una longitud máxima de 180 caracteres. Para los procesos de autenticación es imprescindible una contraseña. |
|||
FROM | Parámetro de entrada Dirección de remitente:
STRING con una longitud máxima de 240 caracteres (véase el ejemplo de llamada). Ejemplo:’FROM:<[email protected]>’ |
|||
SFC_STATUS | Parámetro de salida/estado «SFC_STATUS»:
Información de error de los bloques de comunicación llamados. |
|||
* Los valores de los parámetros no se modifican cada vez que se llama la instrucción «TM_MAIL». Los valores se encuentran en los parámetros estáticos de la instancia y sólo se escriben una vez antes de la primera llamada de la instrucción. |
La verdad, es que no tiene gran historia, si tienes el servidor SMTP.
¿Qué te ha parecido el cómo enviar un email con TM_MAIL en TIA Portal?
¡Espero tus comentarios!
¿Lo has usado alguna vez?
Y sobre todo… ¿conoces algún servicio de email que trabaje con el puerto 25 que sea gratuito para poderlo usar libremente?
Enseño a programar PLC de Siemens a través de mis cursos.
Más información sobre mi aquí
Puedes seguirme en cualquiera de las siguientes redes sociales.
18 Comentarios
Hola Íñigo, supongo que en el texto del mensaje se podrá indicar una marca o una palabra de un bloque de datos del tipo string, en vez de escribir directamente el mensaje en la función.
saludos
Sí claro, de hecho será lo normal: crear una variable que contenga el mensaje o los emails. Típicamente será más fácil hacerlo en un FC/FB en SCL, montar el texto que quieras y volcarlo en una variable string.
Luego la enchufas y listo.
Hola Íñigo, te lo pregunto por aquí, ya que en el vídeo de enviar email desde hmi no me deja poner comentarios. En el otro ejemplo el envío lo realizar al pulsar sobre un botón donde tiene el evento de enviar mensaje, en el caso de querer que este botón se pueda realizar através de un flanco de subida de una señal de alarma, como se realizaría esta correspondencia entre ambos botones?
saludos y gracias
Buenos días Victor, estoy ahora mismo en esa misma situación. ¿Lo conseguiste?
Parabéns amigo excelente ….
estou aprendendo muito com você…
ola amigo seria possível me enviar este arquivo por email
cómo enviar un email con TM_MAIL en TIA Portal?
no agguardo muito obrigado ….gracias
Hola,
Los proyectos solo se publican para la descarga por parte de los alumnos. En este caso, tampoco ya que solo es una configuración y no tiene sentido que esté el ejemplo con mis datos.
Saludos
Muy buen artículo.
Muchas gracias por tus publicaciones.
hola iñigo
en la configuracion del nas synology tu dominio (programacionsiemens.com) , es propio o creas asi de suelto uno cualquiera.
yo tengo un synology, pero no logro enviar el email, me sale identificacion fallida, he creado un dominio cualquiera,usuario , password, todo ok por el synology, he abierto el puerto 25 en el router.
Con el servidor gmx de correos deberia funcionar, pero no encuentro su ip.( con la comfort panel el envio de correo me ha ido bien con este servidor gmx)
La idea es enviar un correo interno entre el plc y servidor de corro es pc windows server 2003.
Saludos
Ya he podido configuralo con un synology y con servidor windows server 2008 y exchange,
envio de correo interno de windows server
Gracias
Estoy usando el tía portal v15 y cuando pongo todo siguiendo paso a paso me marca al compilar que la versión del tm_mail no es soportada por el cpu mi cpu es un S7 1200 DC DC DC
Hola Guillermo. Pues si te dice que no está soportado, entiendo que es porque la versión de firmware que tienes es más viejo que lo que necesita el tm_mail. Si es eso, poco se puede hacer. Si buscas un poco el internet te encuentras con la documentación de Siemens que dice: The «TMAIL_C» instruction uses the SMTP (Simple Mail Transfer Protocol) to send an e-mail via the Ethernet interface of the S7-1200 > V4.0 or a communications processor (CP).
Es decir, o tienes un Firmware >4.0 o no puede usarlo.
Saludos
No tendrás una guía de como configuras el tmail_c?
No lo siento, no tengo ninguna guía sobre ello.
Saludos
En si lo que pasa es que tengo un pls S7 1214c DC DC DC versión de firmware 4.2 usando tía portal v15 y al colocar la instrucción tm_mail dice conflicto en versión de librería que debo hacer en este caso? Y muchas gracias por su tiempo
A mi me da el mismo error. Creo que es un error del TIA Portal porque con la V13, no pasa. Estoy actualizando TIA V15. Haz lo mismo. Si es un fallo, supongo que lo habrán subsanado con una nueva actualización.
Hola buenas tardes;
Estoy configurando la función la función TMAIL_C con TIA Portal V14 con una CPU 1212 DC/DC/DC versión firmware 4.2.
Tengo alguna pregunta sobre la configuración, en lo referente a lo que configuras tú en el video: dentro del campo «static», en la función Tmail_C, que campos del DB debemos exactamente configurar ya que el tipo de variable que ponemos en MAIL_ADDR_PARAM es distinta (a parte de todos los que son inputs de la función lógicamente).
Saludos cordiales y muchas gracias de antemano.
Creo que se describen en el vídeo y en el texto los campos que se deben configurar. Lo siento pero no te puedo dar una explicación más clara que lo expresado en el texto y en el vídeo.