Establecer el modo de transferencia SMTP
Esta instrucción FP configura los ajustes de transmisión para los correos electrónicos activados por eventos. Utilizar esta instrucción junto con las instrucciones FP_SMTP_CONNECTION para realizar la configuración del servidor SMTP y FP_SMTP_SET_GROUP para especificar el grupo de destino.
Entrada
Establecer el ID de ajuste de transferencia.
Valores: 0–15 (los valores deben introducirse en orden ascendente)
Establecer el tipo de activación con una de las siguientes configuraciones de palabra clave:
'TRIG=BITON,xxx'
: Envía un correo electrónico en el flanco ascendente del bit especificado.
Valores:X, Y, R, L, SR, E, DT.n, LD.n, SD.n
Ejemplo:'TRIG=BITON,R100'
envía un correo electrónico en el flanco ascendente de R100.
'TRIG=TIME,xxxx,yyyy'
: Envía un correo electrónico en el día y/o la hora especificados.
Valores:
\min,ss (cada minuto, ajustar el tiempo en segundos)
\hour,mm:ss (cada hora, ajustar la hora en minutos y segundos)
\day,hh:mm:ss (cada día, ajustar la hora en horas, minutos y segundos)
\mon,DD:hh:mm:ss (cada mes, ajustar la fecha como día, horas, minutos y segundos)
\year,MM:DD:hh:mm:ss (cada año, ajustar la fecha como mes, día, horas, minutos y segundos)
\week,hh:mm:ss-w (cada semana, ajustar el día y la hora como horas, minutos, segundos y día de la semana)
ss=segundos (0-59), mm=minutos (0-59), hh=horas (0-23), DD=día (1-31), MM=mes (1-12), w=día de la semana (0=domingo, 1=lunes, 2=martes, 3=miércoles, 4=jueves, 5=viernes, 6=sábado)
Cada día a las 13:30: 'TIME,/day,13:30:00'
Cada año el 1 de abril a las 9:00: 'TIME,/year,4:1:9:0:0'
Cada semana el viernes a las 23:50: 'TIME,/week,23:50:00-5'
'TRIG=CYCLIC,xxxx'
: Envía un correo electrónico a intervalos regulares.
Valores:
30SEC (30 segundos)
1MIN, 2MIN, 3MIN, 4MIN, 5MIN, 6MIN, 10MIN, 15MIN, 30MIN (minutos)
1HOUR, 2HOUR, 3HOUR, 4HOUR, 6HOUR, 12HOUR, 24HOUR (horas)
El ciclo más corto es de 30 segundos. Solo se puede establecer un tiempo de ciclo (no se pueden configurar valores como '1MIN30SEC'
).
Ejemplo:'TRIG=CYCLIC,30SEC'
envía un correo electrónico cada 30 segundos.
'TRIG=PROGRAM'
: Envía un correo electrónico cuando se ejecuta la instrucción FP_SMTP_TRANSFER_REQUEST.
TRIG=STATUS,xxx1,xxx2,xxx3
: Envía un correo electrónico cuando se produce uno de los cambios de estado del PLC especificados.
Valores:
PROG>RUN (al pasar de PROG a RUN)
RUN>PROG (al pasar de RUN a PROG)
ERR>STOP (cuando se produce un error de autodiagnóstico y se detiene la operación)
ERR>RUN (cuando se produce un error de autodiagnóstico y la operación continúa)
ERRCLR (cuando se borra un error)
Cuando el estado del PLC cambia de PROG a RUN: 'TRIG=STATUS,PROG>RUN'
Cuando se cumple una de las siguientes condiciones: se produce un error de autodiagnóstico o cuando se borra un error: 'TRIG=STATUS,ERR>STOP,ERR>RUN,ERRCLR'
Establecer el número de grupo de destino y el asunto del correo electrónico.
Configurar hasta ocho números de grupo de destino con la sintaxis de palabra clave 'GRPNO=n1+n2+…+n8'
.
Valores: 0–7
Establecer el asunto con una de las dos configuraciones de palabra clave siguientes:
'SUBJECT=xxxxxx'
: Establece un texto de asunto definido por el usuario.
'SUBJECTAUTO'
: Asunto generado automáticamente que contiene información sobre el tipo de activación del envío.
Asuntos generados automáticamente:
Japonés |
Inglés |
---|---|
ビットON 検出(R100) |
Bit ON detect (R100) |
一定周期メール(1分毎) |
Interval mail (1 minute) |
一定周期メール(24 時間毎) |
Interval mail (24 hour) |
指定時刻メール(毎分・0 秒) |
Specified time (every minute 0s) |
指定時刻メール(毎時・0 分0 秒) |
Specified time (every hour 0m0s) |
指定時刻メール(毎日・17 時30 分0 秒) |
Specified time (every day 17h30m0s) |
指定時刻メール(毎週・金曜・17 時30 分0 秒) |
Specified time (every Friday 17h30m00s) |
PLC 状態変化(電源ON) |
PLC status change (power on) |
PLC 状態変化(PROG>RUN スイッチ切り替え) |
PLC status change (PROG > RUN) |
PLC 状態変化(RUN>PROG スイッチ切り替え) |
PLC status change (RUN > PROG) |
PLC 状態変化(演算停止自己診断エラー検知) |
PLC status change (operation stop error) |
PLC 状態変化(演算継続自己診断エラー検知) |
PLC status change (operation continuous error) |
PLC 状態変化(エラー解除) |
PLC status change (error release) |
SMTPcREQ 命令による |
SMRPcREQ command |
Nota:
El idioma utilizado para la información generada automáticamente se especifica con la instrucción FP_SMTP_SET_CONNECTION. Usar el parámetro sCommunication para cambiar el idioma del japonés (por defecto) al inglés.
Si se han especificado varios cambios de estado del PLC como tipo de activador, el asunto contendrá el cambio de estado real que activó el envío del correo electrónico.
Las palabras clave 'GRPNO'
y 'SUBJECT'
deben estar separadas por comas e introducirse en este orden.
Grupo de destino número 0, asunto definido por el usuario "Time notification e-mail": 'GRPNO=0,SUBJECT=Time Notification E-Mail'
Grupo de destino números 1, 3, 4, 7, asunto definido por el usuario "Cyclic notification e-mail": 'GRPNO=1+3+4+7,SUBJECT=Cyclic notification e-mail'
Números de grupo de destino 0 a 7, asunto generado automáticamente: 'GRPNO=0+1+2+3+4+5+6+7,SUBJECTAUTO'
Especificar una variable que contenga el texto del correo electrónico o una cadena de caracteres.
Longitud máxima de la cadena: 4096 caracteres de un byte para CPUs versión 4.1 o posterior y versión 3.4 a 3.x.
256 caracteres de un byte para todas las demás versiones.
Especificar si se envía o no información adicional o un archivo adjunto.
Incluir información adicional en el texto del correo electrónico con una de las siguientes configuraciones de palabra clave:
'INFO=NON'
: No añadir ninguna información automáticamente
'INFO=ADD'
: Añadir información sobre el evento (qué evento ha desencadenado el correo electrónico)
La siguiente información se añade al texto del correo electrónico:
Japonés |
Inglés |
---|---|
基本項目
|
Basic information
|
トリガ種類 |
Detailed information |
ビットON 検出(R100) |
Bit ON detect (R100) |
一定周期メール(1分毎) |
Interval mail (1 minute) |
一定周期メール(24 時間毎) |
Interval mail (24 hour) |
指定時刻メール(毎分・0 秒) |
Specified time (every minute 0s) |
指定時刻メール(毎時・0 分0 秒) |
Specified time (every hour 0m0s) |
指定時刻メール(毎日・17 時30 分0 秒) |
Specified time (every day 17h30m0s) |
指定時刻メール(毎週・金曜・17 時30 分0 秒) |
Specified time (every Friday 17h30m00s) |
PLC 状態変化(電源ON) |
PLC status change (power on) |
PLC 状態変化(PROG>RUN スイッチ切り替え) |
PLC status change (PROG > RUN) |
PLC 状態変化(RUN>PROG スイッチ切り替え) |
PLC status change (RUN > PROG) |
PLC 状態変化(演算停止自己診断エラー検知) |
PLC status change (operation stop error) |
PLC 状態変化(演算継続自己診断エラー検知) |
PLC status change (operation continuous error) |
PLC 状態変化(エラー解除) |
PLC status change (error release) |
SMTPcREQ 命令による |
SMRPcREQ command |
Nota:
La información de la dirección depende de si se ha especificado una dirección IPv4 o IPv6 mediante FP_SMTP_SET_CONNECTION.
El idioma utilizado para la información generada automáticamente se especifica con la instrucción FP_SMTP_SET_CONNECTION. Usar el parámetro sCommunication para cambiar el idioma del japonés (por defecto) al inglés.
Incluir datos y/o archivos adjuntos con una de las siguientes configuraciones de palabra clave:
'ATT=NONE'
: No añadir ningún dato al correo electrónico.
'ATT=DATA,xxxxxxx'
: Añadir datos del área de memoria al texto del correo electrónico.
La siguiente información se añade al texto del correo electrónico:
Información añadida al texto del correo electrónico (japonés) |
Información añadida al texto del correo electrónico (inglés) |
---|---|
デバイス取得項目
|
Device get information
|
Especificar la dirección de inicio, el número de datos transferidos, el método de conversión y la posición de avance de línea.
Valores:
Área de memoria y dirección de inicio: WX, WY, WR, WL, DT, LD, SD
Número de datos transferidos: 1–1000
Método de conversión:
BIN1w (binario de 16 bits no convertido, no puede utilizarse para añadir datos a los textos de los correos electrónicos, utilizar en su lugar la palabra clave 'FILE'
)
US (16 bits, decimal sin signo)
SS (16 bits, decimal con signo)
UL (32 bits, decimal sin signo)
SL (32 bits, decimal con signo)
SF (32 bits, coma flotante de precisión simple)
DF (64 bits, coma flotante de doble precisión)
HEX1w (16 bits HEX)
HEX2w (32 bits HEX)
HEX1w (64 bits HEX)
ASCII (carácter ASCII, la salida está encerrada entre "")
Posición del salto de línea: 0–255.
0: salto de línea de salida solo al final del archivo.
n: salto de línea de salida después de cada n puntos de datos.
'ATT=DATA,xxxxxxxxxxx,FILE=yyyyyyyyyyy'
: Añadir datos del área de memoria al texto del correo electrónico y adjuntar también los datos como archivo. Utilizar los mismos valores que para 'ATT=DATA,xxxxxxx'
.
'ATT=FILE,Filename'
: Adjuntar un archivo de una carpeta especificada en la tarjeta SD.
Utilizar las palabras clave 'TOP'
y 'END'
para añadir automáticamente la fecha y la hora al nombre de archivo (yymmdd_hhmmss).
TOP
: Añadir datos al principio del nombre de archivo
END
: Añadir datos al final del nombre de archivo
Nota:
El idioma utilizado para la información generada automáticamente se especifica con la instrucción FP_SMTP_SET_CONNECTION. Usar el parámetro sCommunication para cambiar el idioma del japonés (por defecto) al inglés.
No es posible especificar nombres de carpeta LOG para los archivos adjuntos ('\LOG0'
a '\LOG15'
.
Para generar la cadena sAttachment también se puede usar FP_SMTP_GET_DATA_FORMAT.
No añadir ninguna información o dato de forma automática: 'INFO=NON,ATT=NONE'
Añadir información automáticamente, no añadir datos: 'INFO=ADD,ATT=NONE'
No añadir información automáticamente, sino añadir datos hexadecimales de 16 bits de DT100 a DT109 al texto de correo electrónico: 'INFO=NON,ATT=DATA,DT100,10,HEX1w'
No añadir información automáticamente, sino adjuntar un archivo de la tarjeta SD: 'INFO=NON,ATT=FIL,\Folder\FileName.bin'
Salida
si se supera el tiempo de espera de la conexión
si la dirección IP no es válida
Cuando se produce un error, consulte la variable del sistema sys_iEthernetConnectionErrorCode para conocer el número de código de error.
El número de caracteres de los datos de la cadena no debe exceder de 4096 para unidades CPU Ver.3.4 a Ver.3.x y Ver.4.1 o posteriores, y de 256 para otras unidades CPU.
Esta instrucción no está disponible en los programas de interrupción.
Se pueden utilizar caracteres en mayúsculas y minúsculas para los operandos en los que se puede especificar una constante de caracteres. "Abcd", "ABCD" y "abcd" son sinónimos, pero los nombres de archivo distinguen entre mayúsculas y minúsculas.
Antes de ejecutar la instrucción, necesita especificar el servidor de transmisión de correo electrónico utilizando FP_SMTP_SET_CONNECTION o el diálogo de configuración del cliente SMTP.
Antes de ejecutar la instrucción, necesita especificar la configuración de correo electrónico del grupo y evento utilizando FP_SMTP_SET_GROUP o el diálogo de configuración del cliente SMTP.
Antes de ejecutar la instrucción, asegurarse de que sys_bIsEthernetInitializing es FALSE. sys_bIsEthernetInitializing pasa a TRUE cuando se ejecuta la instrucción. Cuando ejecuta la instrucción mientras sys_bIsEthernetInitializing es TRUE, se produce un error.
La instrucción solo puede ejecutarse cuando la bandera de solicitud de transferencia para el ajuste de transferencia o el número nLogID especificado es FALSE. Cuando la bandera de solicitud de transferencia es TRUE, se produce un error de operación.
Cuando esta instrucción se ha ejecutado con éxito, las variables del sistema sys_bIsCarry y sys_iEthernetConnectionErrorCode se reinician.
Cuando se produce un error, consulte la variable del sistema sys_iEthernetConnectionErrorCode para conocer el número de código de error.
Si el valor especificado para un parámetro está fuera del rango permitido.
Si los ID de transferencia no se han especificado en orden ascendente.
si la instrucción se ejecuta en un programa de interrupción
Si se especifica un servidor de transmisión de correo electrónico que no ha sido especificado con la instrucción FP_SMTP_SET_CONNECTION o con el diálogo de configuración del cliente SMTP.
Si se especifica el mismo número de grupo de destino de forma redundante.
Si se especifica un número de grupo destino que no ha sido definido con la instrucción FP_SMTP_SET_GROUP o con el diálogo de configuración del cliente SMTP.
Si la bandera de solicitud de transmisión de correo electrónico para la configuración de transferencia especificada es "TRUE: Transferencia solicitada".
Si la bandera de solicitud de transferencia para un número nLogID especificado es TRUE, p. ej., si sys_blsLog0DataRecordingActive es TRUE.
Si el número de caracteres de los datos de la cadena supera su límite superior. El límite superior es de 4096 caracteres para unidades CPU Ver.3.4 a Ver.3.x y Ver.4.1 o posteriores, y de 256 caracteres para otras unidades CPU.
Si el valor especificado para un parámetro está fuera del rango permitido.
Si los ID de transferencia no se han especificado en orden ascendente.
si la instrucción se ejecuta en un programa de interrupción
Si se especifica un servidor de transmisión de correo electrónico que no ha sido especificado con la instrucción FP_SMTP_SET_CONNECTION o con el diálogo de configuración del cliente SMTP.
Si se especifica el mismo número de grupo de destino de forma redundante.
Si se especifica un número de grupo destino que no ha sido definido con la instrucción FP_SMTP_SET_GROUP o con el diálogo de configuración del cliente SMTP.
Si la bandera de solicitud de transmisión de correo electrónico para la configuración de transferencia especificada es "TRUE: Transferencia solicitada".
Si la bandera de solicitud de transferencia para un número nLogID especificado es TRUE, p. ej., si sys_blsLog0DataRecordingActive es TRUE.
Si el número de caracteres de los datos de la cadena supera su límite superior. El límite superior es de 4096 caracteres para unidades CPU Ver.3.4 a Ver.3.x y Ver.4.1 o posteriores, y de 256 caracteres para otras unidades CPU.
si la instrucción se ejecuta durante la inicialización de Ethernet, sys_iEthernetConnectionErrorCode pasa a "11: Ethernet se está inicializando".
Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU. Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.
VAR
bSetModePlcData: BOOL:=FALSE;
bSetModePlcDataError: BOOL:=FALSE;
arRealArray: ARRAY [0..15] OF REAL:=[16(0.0)];
iID10: INT:=10;
END_VAR
Si bSetModePLCData cambia de FALSE a TRUE y sys_bIsEthernetInitializing está a FALSE, se ejecuta la instrucción.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_COMMENT,, ^Set mode to attach File located on SD card of FP7 PLC,4,1,34,4,);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 10 ;
NETWORK_BODY
B(B_VARIN,,iID8,32,2,34,4,);
B(B_CONTACT,,bSetMode,4,1,6,3,R);
B(B_VAROUT,,bError,47,2,49,4,);
B(B_VARIN,,'GRPNO=0~SUBJECT=Time Notify Mail',32,4,34,6,);
B(B_VARIN,,'Hello~ this is time notify Mail from system. See attachment',32,5,34,7,);
B(B_VARIN,,'TRIG=TIME~/day~13:30:00',32,3,34,5,);
B(B_CONTACT,,sys_bIsEthernetInitializing,13,1,15,3,N);
B(B_VARIN,,'INFO=ADD~ATT=FILE;FILE=',26,7,28,9,);
B(B_VARIN,,sFilename,26,8,28,10,);
B(B_F,CONCAT-2!,,28,7,34,10,,?D?D?C);
B(B_F,FP_SMTP_SET_MODE!,,34,0,47,8,,?DEN?DnTransferID?DsTrigger?DsGroupNumber_Subject?DsBodyText?DsAttachment?AENO?CbError);
L(1,2,4,2);
L(34,7,34,8);
L(15,2,34,2);
L(6,2,13,2);
L(1,0,1,10);
END_NETWORK_BODY
END_NET_WORK
END_BODY
If DF(bSetMode) AND NOT sys_bIsEthernetInitializing then
FP_SMTP_SET_MODE(nTransferID := iID8,
sTrigger := 'TRIG=TIME,/day,13:30:00',
sGroupNumber_Subject := 'GRPNO=0,SUBJECT=Time Notify Mail',
sBodyText := 'Hello, this is time notify Mail from system. See attachment',
sAttachment := CONCAT('INFO=ADD,ATT=FILE;FILE=', sFilename),
bError => bError);
End_if;