Ajustes del servidor para la conexión HTTP
Esta instrucción FP define los ajustes del servidor para la conexión con el cliente HTTP 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: p. ej., 'HOST=HTTP.pidsx.com'
Número de puerto (parámetro opcional)
Palabra clave: 'PORT'
Sintaxis: 'PORT=xxxxx'
Valores: 1–65535 (Por defecto: 80)
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 HTTP número 0 con la dirección IP 192.255.2.10, puerto número 80, utilizando autenticación SSL3/TLS1: 'SV0,IPv4=192.255.2.10,PORT=80,SSL'
Conectar con el servidor HTTP número 1 con la dirección IP 1111:1222::1555:0:0:1888, puerto número 8080, utilizando autenticación SSL3/TLS1: 'SV1,IPv6=1111:1222::1555:0:0:1888,PORT=8080,SSL'
Conectar con el servidor HTTP número 2 con el nombre de host HTTP.pidsx.com, puerto número 80, no utilizar autenticación: 'SV2,HOST=HTTP.pidsx.com,PORT=80,NON'
Configurar los datos de inicio de sesión
Nombre de usuario (máx.32 caracteres)
Palabra clave: USER
'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='
Ajustar el nombre de usuario a "Support", no cambiar la contraseña: 'USER=Support'
'USER=,PASS='
Restaurar el nombre de usuario y la contraseña a los valores por defecto: 'INITIAL'
'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.
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í.
Se puede omitir una parte de la sintaxis del parámetro. Los ajustes no se modifican cuando los parámetros se omiten parcialmente.
Al omitir la parte que precede a una palabra clave especificada, omitir solo la palabra clave, pero no la coma "," que separa las palabras clave: ',RTRY=25,RTTM=3000'
.
Al omitir la parte que va después de una palabra clave especificada, omitir tanto la coma "," como la palabra clave: 'TOUT=30,RTRY=25'
.
No especificar la misma palabra clave más de una vez. Si se especifica la misma palabra clave más de una vez, se produce un error.
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 especificado es "FALSE: Ninguna solicitud de transferencia". Cuando la bandera de solicitud de transferencia es "TRUE: Transferencia solicitada", 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 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 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
bSetConnectionError: BOOL:=FALSE;
bSetConnection: BOOL:=FALSE;
wErrorCode: WORD:=0;
bSetConnectionOK: 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 := 10 ;
NETWORK_BODY
B(B_VARIN,,'SV1~IPv4=192.255.2.10~PORT=21~OPEN=act~SSL',20,6,22,8,);
B(B_VARIN,,'USER=root~PASS=passwd',20,7,22,9,);
B(B_VARIN,,'TOUT=30~RTRY=2~RTTM=500',20,8,22,10,);
B(B_CONTACT,,bSetConnection,4,1,6,3,R);
B(B_VAROUT,,bSetConnectionError,36,6,38,8,);
B(B_CONTACT,,sys_bIsEthernetInitializing,17,1,19,3,N);
B(B_F,FP_HTTP_SET_CONNECTION!,,22,4,36,10,,?DEN?DsServer?DsLogin?DsCommunication?AENO?CbError);
L(1,2,4,2);
L(6,2,17,2);
L(19,2,19,6);
L(19,6,22,6);
L(1,0,1,10);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 4 ;
NETWORK_BODY
B(B_CONTACT,,bSetConnectionError,4,1,6,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(6,2,25,2);
L(1,2,4,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,,bSetConnectionError,4,1,6,3,N);
B(B_COIL,,bSetConnectionOK,28,1,30,3,);
L(6,2,28,2);
L(1,2,4,2);
L(1,0,1,3);
END_NETWORK_BODY
END_NET_WORK
END_BODY
If DF(bSetConnection) AND NOT sys_bIsEthernetInitializing then
FP_HTTP_SET_CONNECTION(sServer := 'SV1,IPv4=192.255.2.10,PORT=21,OPEN=act,SSL',
sLogin := 'USER=root,PASS=passwd',
sCommunication := 'TOUT=30,RTRY=2,RTTM=500',
bError => bSetConnectionError);
End_if;
If (bSetConnectionError) then
wErrorCode := sys_iEthernetConnectionErrorCode;
Else
bSetConnectionOK := True;
End_if;