Plataforma de automatización AC500 de ABB Guía técnica nº1 - PLC AC500 y protocolo SMTP ¿Cómo mandar correos electrónicos desde el PLC AC500? Introducción: Enviar correos electrónicos a través del PLC AC500 de ABB permite informar a diferentes tipos de usuarios (responsable de mantenimiento, responsable de producción, usuario final, integrador, dueño de la instalación, etc.) sobre el estado y evolución del estado de una máquina o instalaciones. Es también posible crear y almacenar archivos en el PLC, archivos que permiten tener trazabilidad de variables como temperaturas, presión, velocidad, caudal, datos de producción, tiempos de parada, consumo energético, etc… para su posterior envío mediante correo electrónico. El objetivo de esta guía paso a paso es el de indicar como proceder para configurar y programar el PLC AC500 (sólo para CPUs AC500) para mandar correos electrónicos y adjuntar también archivos a este correo electrónico. PCs PLC AC500 1/9 Guía técnica nº1 - PLC AC500 y protocolo SMTP Tablets, Smartphones Plataforma de automatización AC500 de ABB Guía técnica nº1 - PLC AC500 y protocolo SMTP ¿Cómo mandar correos electrónicos desde el PLC AC500? Algunos datos técnicos: El PLC AC500 es un cliente mail (mail client) y por lo tanto es necesario asociarle una cuenta de correo electrónico creada previamente. El PLC no es servidor de mail (mail server). También comentar que el PLC permite mandar correos electrónicos con archivos adjuntos pero no permite recibir correos electrónicos. Opciones disponibles para el envío de correo electrónico: Tener un número ilimitado de destinatarios (direcciones de mail). Disponer de los campos TO, CC, BCC disponibles Utilizar el campo de “Prioridad” Tener hasta 255 caracteres para el campo “Objeto” del correo Tener hasta 20 líneas en el cuerpo del correo electrónico Adjuntar hasta 10 archivos Notas importantes: Es IMPRESCINDIBLE utilizar un servidor de correo que no requiere Autentificación SMTP (SMTP AUTH). Si el servidor lo requiere, entonces no es posible mandar mail mediante una dirección asociada a este servidor de correo. A continuación pueden verse algunos servidores de mails que pueden utilizarse: MDaemon, Hamster, gmx.com. En el caso de esta guía se utilizara una cuenta de gmx.com Es también necesario tener configurado el router para permitir el protocolo SMTP. En este caso, se utiliza un router estándar donde no se requiere ninguna configuración especial. 2/9 Guía técnica nº1 - PLC AC500 y protocolo SMTP Plataforma de automatización AC500 de ABB Guía técnica nº1 - PLC AC500 y protocolo SMTP ¿Cómo mandar correos electrónicos desde el PLC AC500? ¿Cómo proceder? 1.- Abrir el proyecto ejemplo llamado “AC500_SMTP.project” 2.- Irse a la configuración IP en Control Builder Plus PS501: 3.- En la pestaña “IP Settings”, es posible asignar una dirección IP al PLC o definir que el PLC obtenga la dirección IP mediante un servidor de dirección IP (servidor DHCP). En este caso, el router asigna una dirección al PLC y por lo tanto se elige DHCP. 3/9 Guía técnica nº1 - PLC AC500 y protocolo SMTP Plataforma de automatización AC500 de ABB Guía técnica nº1 - PLC AC500 y protocolo SMTP ¿Cómo mandar correos electrónicos desde el PLC AC500? 4.- En la pestaña “Extended settings”, es posible configurar varios protocolos como HTTP (Webserver), SNTP (sincronización de fecha y hora), FTP (transferencia de archivos vía Ethernet) y SMTP (para mandar de correos electrónicos) Primero se ha de activar el protocolo SMTP haciendo clic en Luego se ha de configurar los datos solicitados: - Servidor SMTP: existen 2 opciones para conocer la dirección IP del servidor SMTP al cual va asociada su cuenta de correo: o Encontrarla en la web del propio proveedor o Realizar un “ping” al servidor SMTP (tal como indicado anteriormente, utilizamos una cuenta de gmx.com – Muy importante: no requiere autentificación SMTP): ping smtp.gmx.com Automáticamente aparecerá la dirección IP del servidor, en este caso, es: 213.165.64.44: - Port: El Puerto que utiliza el protocolo SMTP (por defecto: 25) - Mail address: La cuenta de correo desde la cual se va a enviar el correo electrónico. En este caso, utilizamos la cuenta siguiente: [email protected] - User name: El nombre de login de la cuenta. En este caso, utilizamos el nombre siguiente: [email protected] 4/9 Guía técnica nº1 - PLC AC500 y protocolo SMTP Plataforma de automatización AC500 de ABB Guía técnica nº1 - PLC AC500 y protocolo SMTP ¿Cómo mandar correos electrónicos desde el PLC AC500? - Password: La contraseña personal de la cuenta. Indicar la contraseña para acceder a la cuenta creada. - Domain: el dominio de la cuenta. En este caso, se trata de gmx.com - Sender name: el nombre de la persona que envía el mensaje. En este caso, se trata de plc.ac500 5.- Una vez realizada esta configuración, se ha de ir a la parte de programación haciendo un doble clic en “AC500”: 5/9 Guía técnica nº1 - PLC AC500 y protocolo SMTP Plataforma de automatización AC500 de ABB Guía técnica nº1 - PLC AC500 y protocolo SMTP ¿Cómo mandar correos electrónicos desde el PLC AC500? 6.- Abrir la sección de programa SMTP_to_GMX de la pestaña POUs 7.- Es posible escribir el nombre de los destinatarios, objeto del correo, texto del correo electrónico, así como definir la prioridad y adjuntar archivos mediante una serie de bloques funcionales y estructuras de datos específicos que se encuentra en librería Ethernet_AC500_Vxx.LIB Introducir las direcciones de correo de los destinatarios (normal, en copia o copia oculta) como [email protected], [email protected], [email protected], etc) en la parte de declaración de variables: Para el envió de correo electrónico se deben de utilizar: - el bloque función “ETH_SMTP_EMAIL_SEND” Instance EN SLOT Input Input ETH_EMAIL_SEND BOOL BYTE MAIL_INFO Input ETH_EMAIL_DATA_TYPE DONE ERR ERNO Output Output Output BOOL BOOL WORD 6/9 Guía técnica nº1 - PLC AC500 y protocolo SMTP Instance name Enabling of the block processing Slot (module number) of the Communication Module All Data required to send an email in one data structure Data package available or error occurred Error message of the block Error number Plataforma de automatización AC500 de ABB Guía técnica nº1 - PLC AC500 y protocolo SMTP ¿Cómo mandar correos electrónicos desde el PLC AC500? - la estructura de datos “ETH_EMAIL_DATA_TYPE” Visible variable psTOAddr POINTER TO STRING(255) Default value 0 psCCAddr POINTER TO STRING(255) 0 psBCCAddr POINTER TO STRING(255) 0 apsBody 0 byPrio ARRAY[0..19] OF POINTER TO STRING(255) ARRAY[0..9] OF ETH_EMAIL_FILE_REF_TYPE BYTE sSubject STRING(255) ’’ atsFiles Type 0 0 Description Pointer to a string containing TO address(es) separated by semicolon Pointer to a string containing CC address(es) separated by semicolon Pointer to a string containing BCC address(es) separated by semicolon Up to 20 pointers containing text lines for the email body Up to 10 file attachments to the email via the ETH_EMAIL_FILE_REF_TYPE structure Priority 0=normal, 1=very high, 2=high, 3=normal, 4=low, 5=very low The subject of the email Para el envió de archivos adjuntos se ha de utilizar también: - la estructura de datos “ETH_EMAIL_FILE_REF_TYPE” Visible variable psNameInMail psFilePath Type Default value Description POINTER TO STRING(255) 0 POINTER TO STRING(255) 0 Pointer to a string containing a name to be used for the file in the email. (Can differ from the actual filename in the PLC.) Pointer to a string containing the full path to the file to be attached including the filename 8.- El envío del correo electrónico puede realizarse mediante el estado de una señal o desde la ventana del VISU. Transferir la aplicación al PLC y proceder a las pruebas. 7/9 Guía técnica nº1 - PLC AC500 y protocolo SMTP Plataforma de automatización AC500 de ABB Guía técnica nº1 - PLC AC500 y protocolo SMTP ¿Cómo mandar correos electrónicos desde el PLC AC500? Posibles mensajes de error A continuación se encuentran los posibles mensajes error: DEC 12293 12307 12309 12313 HEX 3005 3013 3015 3019 12314 12320 12321 12325 12328 12540 301A 3020 3021 3025 3028 30FC 12823 3217 12839 3227 12840 3228 Error description ETH_SMTP_EMAIL_SEND: Internal error (ulHandle wrong) ETH_SMTP_EMAIL_SEND: Server timeout ETH_SMTP_EMAIL_SEND: Syntax error in mail address ETH_SMTP_EMAIL_SEND: Could not connect to server. Not reachable or does not answer. ETH_SMTP_EMAIL_SEND: Internal error. Mail not sent. (e.g. out of resources) ETH_SMTP_EMAIL_SEND: File for attachment cannot be opened ETH_SMTP_EMAIL_SEND: File for attachment not found ETH_SMTP_EMAIL_SEND: Internal error (Could not bind sockets) ETH_SMTP_EMAIL_SEND: Out of sockets. Mail not sent (resource starvation) ETH_SMTP_EMAIL_SEND: Mailbox unavailable or not found on target server. SMTP Error by server. ETH_SMTP_EMAIL_SEND: Wrong user login and/or password. Check configuration. SMTP Error by server. ETH_SMTP_EMAIL_SEND: Mailbox unavailable or not found on target server. SMTP Error by server. ETH_SMTP_EMAIL_SEND: Exceeded mailbox storage on target server. SMTP Error by server. Notas importantes: 1.- Cualquier cambio en la configuración del protocolo SMTP en Control Builder Plus PS501 requiere introducir de nuevo la contraseña de la cuenta de correo. 2.- Si la cuenta de correo elegida está asociada a un servidor que requiere autentificación SMTP, obtendrá un mensaje de error. Solo funcionan las cuentas de correo que están asociadas a servidores que NO requieren autentificación SMTP. 8/9 Guía técnica nº1 - PLC AC500 y protocolo SMTP Plataforma de automatización AC500 de ABB Guía técnica nº1 - PLC AC500 y protocolo SMTP ¿Cómo mandar correos electrónicos desde el PLC AC500? Ejemplos de recepción del correo electrónico: 1.- Directamente mediante explorador Web: Ejemplo de recepción en bandeja de Hotmail: Al abrir el correo, podemos leer el mensaje enviado desde el PLC: 2.- Mediante cliente de correo electrónico: Ejemplo de recepción en bandeja de Lotus Notes: Al abrir el correo, podemos leer el mensaje enviado desde el PLC: 9/9 Guía técnica nº1 - PLC AC500 y protocolo SMTP