Establecer el modo de transferencia FTP para los archivos de histórico de datos
Esta instrucción FP define los ajustes de transferencia de los archivos de histórico de datos a través del protocolo FTP.
Entrada
Número de LOG (rango permitido: 0–15). El compilador genera internamente la cadena para el número de archivo de registro, p. ej., 'LOG=0'
Establecer los parámetros del método de transferencia.
Dirección del servidor (parámetro requerido)
Solo se puede especificar un servidor al mismo tiempo. Especificar un número de servidor FTP con tres caracteres de un byte.
Palabra clave: SV
Valores: SV0–SV3 (Servidor 0–Servidor 3)
Método de transferencia (parámetro opcional)
Sintaxis |
Método de transferencia |
---|---|
|
Método de sobrescritura (valor por defecto) Realizar la transferencia de archivos con los nombres de archivo especificados por la configuración del histórico de datos. Si la transferencia se interrumpe debido a algún problema con la red o los servidores, la transferencia de archivos podría haberse ejecutado solo parcialmente. Comprobar si la transferencia se ha completado con éxito con una instrucción como FP_FTP_GET_STATUS. |
|
Método de renombrado Realizar la transferencia de archivos con nombres de archivo temporales, y renombrarlos a nombres de archivo específicos una vez que la transferencia haya tenido éxito. Para comprobar si la transferencia de archivos se ha completado con éxito, comparar los nombres de archivo reales con los nombres de archivo especificados por la configuración del histórico de datos. El tiempo de procesamiento es mayor que el del método de sobrescritura. |
Ejemplo: Enviar el archivo de histórico de datos al servidor FTP 3 utilizando el método de renombrado: 'SV3,MODE=REN'
Definir el directorio de destino (máx. 256 caracteres). Se creará con una ruta relativa desde el directorio origen que ha sido asignado al usuario tras iniciar sesión en el servidor FTP. Si el directorio de destino no existe, se creará automáticamente con un máximo de ocho jerarquías.
Salida
Pasa a TRUE bajo las siguientes condiciones:
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.
Separar todas las entradas de palabras clave por medio de una coma, p. ej., 'NAME=abcd,FROM=sender@server.com'
No cambiar el orden de las palabras clave. Especificar las palabras clave y sus parámetros de ajuste en el orden en que se enumeran aquí.
El número de caracteres de los datos de cadena no debe superar los 256.
Esta instrucción no está disponible en los programas de interrupción.
Antes de ejecutar la instrucción, es necesario especificar el servidor FTP utilizando FP_FTP_SET_CONNECTION o el diálogo de configuración del cliente FTP.
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.
La instrucción solo puede ejecutarse cuando la bandera de solicitud de transferencia para el número nLogID especificado es FALSE. Cuando la bandera de solicitud de transferencia es TRUE, se produce un error de operación.
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.
Cuando esta instrucción se ha ejecutado con éxito, las variables del sistema sys_bIsCarry y sys_iEthernetConnectionErrorCode se reinician.
La instrucción almacena los ajustes de transferencia del histórico de datos de sOperation y sFTPServerDirectory en el número de archivo LOG especificado por nLogID.
Cuando se produce un error, consulte la variable del sistema sys_iEthernetConnectionErrorCode para conocer el número de código de error.
Si la bandera de solicitud de transferencia para un número nLogID especificado es TRUE, p. ej., si sys_blsLog0DataRecordingActive es TRUE.
Si no se registra la condición de histórico de datos de un número nLogID especificado.
Si el valor especificado para un parámetro está fuera del rango permitido.
si la instrucción se ejecuta en un programa de interrupción
Si el número de caracteres de los datos de cadena supera los 256.
Si se especifica un servidor FTP que no ha sido configurado con la instrucción FP_FTP_SET_CONNECTION o con el diálogo de configuración del cliente FTP.
Si la bandera de solicitud de transferencia para un número nLogID especificado es TRUE, p. ej., si sys_blsLog0DataRecordingActive es TRUE.
Si no se registra la condición de histórico de datos de un número nLogID especificado.
Si el valor especificado para un parámetro está fuera del rango permitido.
si la instrucción se ejecuta en un programa de interrupción
Si el número de caracteres de los datos de cadena supera los 256.
Si se especifica un servidor FTP que no ha sido configurado con la instrucción FP_FTP_SET_CONNECTION o con el diálogo de configuración del cliente FTP.
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
bSetLogTransferFTP: BOOL:=FALSE;
bIsError: BOOL:=FALSE;
bDisableLogTransferFTP: BOOL:=FALSE;
END_VAR
Si bSetLogTransferFTP y bDisableLogTransferFTP están a TRUE, 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 := 6 ;
NETWORK_BODY
B(B_VARIN,,0,18,2,20,4,);
B(B_VARIN,,'SV0',18,3,20,5,);
B(B_VARIN,,'LogData',18,4,20,6,);
B(B_VAROUT,,bIsError,37,2,39,4,);
B(B_CONTACT,,bSetLogTransferFTP,5,1,7,3,);
B(B_F,FP_FTP_SET_MODE_TRANSFER_LOG!,,20,0,37,6,,?DEN?DnLogID?DsOperation?DsFTPServerDirectory?AENO?CbError);
L(1,2,5,2);
L(7,2,20,2);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_CONTACT,,bDisableLogTransferFTP,5,1,7,3,);
B(B_VARIN,,0,18,2,20,4,);
B(B_VARIN,,'DISABLE',18,3,20,5,);
B(B_VAROUT,,bIsError,39,2,41,4,);
B(B_F,FP_FTP_TRANSFER_CONTROL_LOG!,,20,0,37,5,,?DEN?DnLogID?DsControl?AENO?AbError);
L(1,2,5,2);
L(37,3,39,3);
L(7,2,20,2);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
If (bSetLogTransferFTP) Then
FP_FTP_SET_MODE_TRANSFER_LOG(nLogID := 0, sOperation := 'SV0',
sFTPServerDirectory := 'LogData',
bError => bIsError);
End_if;
If (bDisableLogTransferFTP) Then
FP_FTP_TRANSFER_CONTROL_LOG(nLogID := 0, sControl := 'DISABLE', bError => bIsError);
End_if;