Este método se utiliza para iniciar el establecimiento de una conexión TCP con el servidor, el cual se especifica mediante su dirección IPv4 y el puerto correspondiente. Los puertos estándar de HTTP son el 80 y el 443 (seguros, HTTPS). Ajuste el parámetro i_xUseTls en TRUE para especificar que debe establecerse una conexión segura.
El valor de retorno de este método solo indica si la conexión se ha podido iniciar correctamente. El estado de la conexión debe comprobarse mediante la propiedad State. Si el valor de retorno es FALSE, evalúe los resultados de diagnóstico del método. Los errores que indiquen estos resultados no necesitan un restablecimiento.
Si existe un proxy HTTP entre el controlador y el servidor HTTP remoto, deberá especificar los parámetros de conexión del proxy en el método ConnectToServer. Si el cliente está conectado al proxy, el tráfico HTTP se reenviará entre el cliente y el servidor remoto a través del servidor proxy. La dirección y el puerto se obtendrán del servidor proxy a partir del encabezado de la petición HTTP enviada. Estos se corresponden con el parámetro i_sHost del método en cuestión para el envío de una petición HTTP.
Si un servidor proxy prohíbe el reenvío de tráfico HTTP entre su cliente y el servidor HTTP pero admite el establecimiento de un túnel al servidor remoto, podrá implementar la conexión para el servidor remoto mediante el método ConnectToServerByProxy.
TLS permite cifrar la comunicación entre cliente y servidor. Además del cifrado, TLS ofrece la posibilidad de comprobar la identidad del otro participante en la comunicación con el uso de certificados.
Los certificados se intercambian mientras se establece la conexión, lo que se conoce como protocolo de enlace de TLS. Aunque el envío de certificados durante el protocolo de enlace de TLS es opcional, es posible que el otro participante en la comunicación requiera el certificado. La conexión con el participante en la comunicación solo podrá establecerse si el resultado de la comprobación del certificado es positivo. Si la ejecución del método ConnectToServer con xUseTls = TRUE termina en estado Error con ErrorResult = ConnectFailed, podría tratarse de un problema con el certificado.
En tal caso, compruebe la configuración de TLS del servidor y del cliente.
Si… |
Entonces… |
---|---|
Si el servidor está configurado para que compruebe el certificado del cliente. |
Asegúrese de que el parámetro i_stTlsSettings.xSendClientCertificate esté ajustado en TRUE. |
Si el cliente está configurado para que compruebe el certificado del servidor, i_stTlsSettings.etCertVerifyMode tendrá un valor distinto de NotVerified. |
Asegúrese de que el servidor envíe su certificado. |
Si el cliente está configurado para aceptar únicamente certificados de confianza, i_stTlsSettings.etCertVerifyMode = TrustedOnly. |
Asegúrese de que el certificado del servidor esté clasificado como de confianza. Para ello, gestione los certificados manualmente en el controlador. Para hacerlo, utilice el editor Machine Expert Logic Builder. de |
Para obtener más información sobre la gestión de certificados en el controlador, consulte la Guía del usuario Cómo gestionar certificados en el controlador en EcoStruxure Machine Expert.
Etapa |
Descripción |
---|---|
1 |
Estado inicial: Idle |
2 |
Llamada de función |
3 |
Estado: Connecting; de lo contrario, se detecta un error |
4 |
Estado final: Connected; de lo contrario, se detecta un error |
Input |
Tipo de datos |
Descripción |
---|---|---|
i_sServerIP |
STRING[15] |
Especifica la dirección IP del servidor al que se conecta. |
i_uiServerPort |
UINT |
Especifica la dirección del puerto del servidor. |
i_xUseTls |
BOOL |
Ajústelo en TRUE para especificar el uso de una conexión segura con TLS. |
i_stTlsSettings |
TlsSettings |
Especifica la configuración de TLS de la conexión segura. |
Salida |
Tipo de datos |
Descripción |
---|---|---|
q_xError |
BOOL |
Si esta salida se establece en TRUE, se ha detectado un error. Para obtener información detallada, consulte q_etResult y q_etResultMsg. |
q_etResult |
Proporciona información de diagnóstico y estado en forma de valor numérico. |
|
q_sResultMsg |
STRING[80] |
Proporciona información adicional de diagnóstico y estado en forma de mensaje de texto. |