FP_FTP_SET_CONNECTION

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.

Parámetros

Entrada

sServer (STRING)
  • 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)

Ejemplos:
  1. 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'

  2. 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'

  3. 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'

sLogin (STRING)

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.

Para este parámetro, hay disponibles dos palabras clave adicionales:
  • 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:

  1. Ajustar el nombre de usuario a "Admin" y la contraseña a "Panasonic": 'USER=Admin,PASS=Panasonic'

  2. Ajustar el nombre de usuario a "Supervisor" y borrar la contraseña: 'USER=Supervisor,PASS='

  3. Borrar el nombre de usuario y la contraseña: 'USER=,PASS='

  4. Restaurar el nombre de usuario y la contraseña a los valores por defecto: 'INITIAL'

  5. Mantener el nombre de usuario y la contraseña actuales: 'KEEP'

sCommunication (STRING)

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:

  1. 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'

  2. Establecer el tiempo de espera de la conexión: 270 segundos, sin reintentos, intervalo de reintentos: 4900 segundos: 'TOUT=270,RTRY=0,RTTM=4900'

  3. 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'

  4. Ajustar tiempo de espera de la conexión: no cambiar, número de reintentos: 25, intervalo de reintentos: 3000 segundos: ',RTRY=25,RTTM=3000'

  5. 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'

  6. Mantener todos los ajustes actuales: 'KEEP'

Salida

bError (BOOL)

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.

Observaciones

  • 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.

Banderas de error

sys_bIsOperationErrorHold (pasa a TRUE y permanece TRUE)
  • 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.

sys_bIsOperationErrorNonHold (pasa a TRUE para un ciclo de scan)
  • 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.

sys_bIsCarry (pasa a TRUE para un ciclo de scan)
  • 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".

Ejemplo

Cabecera de la POU

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

Cuerpo de la POU

Si bSetConnection cambia de FALSE a TRUE y sys_bIsEthernetInitializing está a FALSE, se ejecuta la instrucción.

Cuerpo LD

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

Cuerpo en ST

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;

Modificado el: 2024-11-28Comentarios sobre esta páginaLínea directa de Panasonic