Ajustes del servidor para la conexión FTP
Esta instrucción FP define los ajustes del servidor para la conexión con el cliente FTP especificado en la CPU de acuerdo con los parámetros indicados.
Entrada
Dirección del servidor (parámetro requerido)
Palabra clave: SV
Valores: SV0–SV3 (Servidor 0–Servidor 3)
Dirección IP o nombre del host (parámetro requerido).
Dirección IP
Para una dirección IP, especificar la palabra clave IPv4
o IPv6
al principio.
Sintaxis para IPv4: por ejemplo, 'IPv4=111.122.133.144'
Sintaxis para IPv6: por ejemplo, 'IPv6=1111:122:2:1555:0:0:1888'
Tener en cuenta que para las direcciones IPv4 existen restricciones de rango. Cuando se especifica una dirección IP no válida con una instrucción, no habrá ningún error de operación, pero la salida bError se ajustará a TRUE.
Nombre del host
Palabra clave: HOST
Sintaxis: por ejemplo, 'HOST=FTP.pidsx.com'
Número de puerto (parámetro opcional)
Palabra clave: 'PORT'
Sintaxis: 'PORT=xxxxx'
Valores: 1–65535 (Por defecto: 21)
Método de apertura (parámetro opcional)
Palabra clave: OPEN
Sintaxis: 'OPEN=xxxx'
Valores: act
(activo), pasv
(pasivo) (por defecto: act
)
Autenticación SSL3/TSL1 (parámetro opcional)
Especificar si se utiliza o no la autenticación SSL3/TSL1.
Palabras clave:
SSL
: Usar SSL3/TLS1
NON
: SSL3/TLS1 no se utiliza (por defecto)
Conectar con el servidor FTP número 0 con la dirección IP 192.255.2.10, puerto número 21, método de apertura activo, utilizando autenticación SSL3/TLS1: 'SV0,IPv4=192.255.2.10,PORT=21,OPEN=act,SSL'
Conectar con el servidor FTP número 1 con la dirección IP 1111:1222::1555:0:0:1888, número de puerto omitido (utilizar por defecto el puerto 21), método de apertura omitido (utilizar por defecto = activo) utilizando autenticación SSL3/TLS1: 'SV1,IPv6=1111:1222::1555:0:0:1888,SSL'
Conectar con el servidor FTP número 2 con el nombre de host FTP.pidsx.com, puerto número 28, método de apertura pasivo, no utilizar autenticación: 'SV2,HOST=FTP.pidsx.com,PORT=28,OPEN=pasv,NON'
Configurar los datos de inicio de sesión
Nombre de usuario (máx.32 caracteres)
Palabra clave: USER
Sintaxis: 'USER=xxx'
(por defecto: root). Usar 'USER='
para borrar el nombre de usuario.
Contraseña (máximo 32 caracteres, se permiten mayúsculas y minúsculas)
Palabra clave: PASS
Sintaxis: 'PASS=passwd'
(por defecto: root). Usar 'PASS='
para borrar la contraseña.
INITIAL
: Restaura el nombre de usuario y la contraseña a los ajustes por defecto "root" y "root".
KEEP
: Mantiene los ajustes de inicio de sesión actuales.
Ejemplos:
Ajustar el nombre de usuario a "Admin" y la contraseña a "Panasonic": 'USER=Admin,PASS=Panasonic'
Ajustar el nombre de usuario a "Supervisor" y borrar la contraseña: 'USER=Supervisor,PASS='
Borrar el nombre de usuario y la contraseña: 'USER=,PASS='
Restaurar el nombre de usuario y la contraseña a los valores por defecto: 'INITIAL'
Mantener el nombre de usuario y la contraseña actuales: 'KEEP'
Configure parámetros de comunicación opcionales como sea necesario.
Tiempo de espera
Palabra clave: TOUT
Sintaxis: 'TOUT=xxx'
(por defecto: 60 segundos)
Valores: de 30 a 300 segundos
Número de reintentos
Palabra clave: RTRY
Sintaxis: 'RTRY=x'
(por defecto: 3 veces)
Valores: 0–3
Tiempo entre reintentos
Palabra clave: RTTM
Sintaxis: 'RTTM=xxxxx'
(por defecto: 600 segundos)
Valores: de 10 a 86400 segundos
El valor se puede especificar de 10 en 10 segundos. Se redondeará a la baja al 10.
Ejemplo: Cuando se especifica 38 segundos, se establecen 30 segundos.
Para este parámetro, hay disponibles dos palabras clave adicionales:
INITIAL
: Restablece el tiempo de espera de la conexión, el número de reintentos y el intervalo de reintentos a los valores predeterminados.
KEEP
: Mantiene los ajustes de comunicación actuales.
Ejemplos:
Establecer el tiempo de espera de la conexión: 30 segundos, número de reintentos: 2, intervalo de reintentos: 500 segundos: 'TOUT=30,RTRY=2,RTTM=500'
Establecer el tiempo de espera de la conexión: 270 segundos, sin reintentos, intervalo de reintentos: 4900 segundos: 'TOUT=270,RTRY=0,RTTM=4900'
Establecer el tiempo de espera de la conexión: 30 segundos, número de reintentos: 25, intervalo de reintentos: no cambiar: 'TOUT=30,RTRY=25'
Ajustar tiempo de espera de la conexión: no cambiar, número de reintentos: 25, intervalo de reintentos: 3000 segundos: ',RTRY=25,RTTM=3000'
Restablecer la configuración por defecto (tiempo de espera de la conexión: 60 segundos, número de reintentos: 3, intervalo de reintentos: 600 segundos): 'INITIAL'
Mantener todos los ajustes actuales: 'KEEP'
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'
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.
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, 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 se especifica la misma palabra clave más de una vez
Si la bandera de solicitud de transferencia para la configuración de transferencia especificada es "TRUE: Transferencia solicitada" cuando se ejecuta la instrucción.
Si la bandera de solicitud de transferencia para un número nLogID especificado es TRUE, p. ej., si sys_blsLog0DataRecordingActive es TRUE.
Si los números del servidor no se especifican en orden ascendente.
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 el valor especificado para un parámetro está fuera del rango permitido.
Si se especifica la misma palabra clave más de una vez
Si la bandera de solicitud de transferencia para la configuración de transferencia especificada es "TRUE: Transferencia solicitada" cuando se ejecuta la instrucción.
Si la bandera de solicitud de transferencia para un número nLogID especificado es TRUE, p. ej., si sys_blsLog0DataRecordingActive es TRUE.
Si los números del servidor no se especifican en orden ascendente.
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 la instrucción se ejecuta con una dirección IP incorrecta, sys_iEthernetConnectionErrorCode pasa a "1: Se ha especificado una dirección IP incorrecta"
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
bError: BOOL:=FALSE;
wErrorCode: WORD:=0;
bSetConnectionOK: BOOL:=FALSE;
bSetConnectionError: BOOL:=FALSE;
bSetConnection: BOOL:=FALSE;
END_VAR
Si bSetConnection 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 := 9 ;
NETWORK_BODY
B(B_CONTACT,,bSetConnection,5,1,7,3,R);
B(B_CONTACT,,sys_bIsEthernetInitializing,16,1,18,3,N);
B(B_VARIN,,'SV0~IPv4=192.168.178.64~PORT=21~OPEN=pasv~NON',21,5,23,7,);
B(B_VARIN,,'USER=user~PASS=user',21,6,23,8,);
B(B_VARIN,,'TOUT=30~RTRY=0~RTTM=120',21,7,23,9,);
B(B_VAROUT,,bSetConnectionError,36,5,38,7,);
B(B_F,FP_FTP_SET_CONNECTION!,,23,3,36,9,,?DEN?DsServer?DsLogin?DsCommunication?AENO?CbError);
L(7,2,16,2);
L(1,2,5,2);
L(18,2,18,5);
L(18,5,23,5);
L(1,0,1,9);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 4 ;
NETWORK_BODY
B(B_CONTACT,,bSetConnectionError,6,1,8,3,);
B(B_F,E_MOVE!,,25,0,31,4,,?DEN?D?AENO?C);
B(B_VARIN,,sys_iEthernetConnectionErrorCode,23,2,25,4,);
B(B_VAROUT,,wErrorCode,31,2,33,4,);
L(8,2,25,2);
L(1,2,6,2);
L(1,0,1,4);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 3 ;
NETWORK_BODY
B(B_CONTACT,,bError,6,1,8,3,N);
B(B_COIL,,bSetConnectionOK,28,1,30,3,);
L(8,2,28,2);
L(1,2,6,2);
L(1,0,1,3);
END_NETWORK_BODY
END_NET_WORK
END_BODY
If DF(bSetConnection) AND NOT sys_bIsEthernetInitializing then
FP_FTP_SET_CONNECTION(sServer := 'SV0,IPv4=192.168.178.64,PORT=21,OPEN=pasv,NON',
sLogin := 'USER=user,PASS=user',
sCommunication := 'TOUT=30,RTRY=0,RTTM=120',
bError => bSetConnectionError);
End_if;
If (bSetConnectionError) then
wErrorCode := sys_iEthernetConnectionErrorCode;
End_if;
If NOT bError then
bSetConnectionOK := TRUE;
End_if;