ConnectToServer - 方法

概述

类型:

方法

适用的版本:

V1.0.0.0

G-SE-0076329.2.gif-high.gif

 

 

任务

方法 ConnectToServer 发起到服务器的 TCP 连接。

功能描述

此方法用于发起建立到服务器的 TCP 连接,此服务器由其 IPv4 地址和相应的端口指定。HTTP 的标准端口为 80 和 443(安全,HTTPS)。将参数 i_xUseTls 设置为 TRUE,以指定要建立安全连接。

方法的返回值仅指示是否能够成功发起连接。必须使用属性 State 来检查连接状态。如果返回值为 FALSE,则评估方法的诊断输出。这些输出指示的错误不需要复位。

使用 HTTP 代理时的注意事项

如果在控制器与远程 HTTP 服务器之间设置有 HTTP 代理,必须在 ConnectToServer 方法中指定代理的连接参数。如果客户端连接到代理,这通过代理服务器在客户端与远程服务器之间转发 HTTP 通讯流。地址和端口将从代理服务器获得,提取自所发送的 HTTP 请求的标头。它们对应于 HTTP 请求相应发送方法的参数 i_sHost

注意: 有关更多详细信息,请参阅示例代码

使用 TLS 建立安全连接时的注意事项

TLS 用于加密客户端与服务器之间的通讯。除加密之外,TLS 还让您能够使用证书验证通讯合作伙伴的身份。

证书在连接建立期间交换,亦即 TLS 握手。TLS 握手期间的证书发送是可选的,但如果通讯合作伙伴要求使用证书,则必须发送证书。只有在证书验证结果为肯定结果时,才能够建立与通讯合作伙伴的连接。如果在 xUseTls = TRUE 时执行 ConnectToServer 方法并得到 ErrorResult = ConnectFailed 的状态 Error,则可能是因为存在证书问题。

在这种情况下,请检查服务器和客户端的 TLS 配置。

如果...

则...

如果服务器被配置为验证客户端证书。

确保参数 i_stTlsSettings.xSendClientCertificate 设置为 TRUE。

如果服务器被配置为验证服务器证书,i_stTlsSettings.etCertVerifyMode 不同于 NotVerified

确保服务器发送其证书。

如果客户端被配置为仅接受可信证书,i_stTlsSettings.etCertVerifyMode = TrustedOnly,

确保服务器证书被认定为可信。

为此,需要手动管理您控制器上的证书。这可以使用 Machine Expert Logic Builder 中的安全栅栏编辑器来完成。

有关控制器上证书管理的更多信息,请参阅如何在 EcoStruxure Machine Expert 中管理控制器上的证书 - 用户指南

客户端的状态切换

阶段

描述

1

初始状态:Idle

2

功能调用

3

状态:Connecting,否则提示检测到错误

4

最终状态:Connected,否则提示检测到错误

接口

输入

数据类型

描述

i_sServerIP

STRING[15]

指定要连接的服务器的 IP 地址。

i_uiServerPort

UINT

指定服务器的端口地址。

i_xUseTls

BOOL

设置为 TRUE 时,指定使用 TLS 建立安全连接。

i_stTlsSettings

TlsSettings

指定安全连接所用的 TLS 设置。

输出

数据类型

描述

q_xError

BOOL

如果此输出设置为 TRUE,则检测到错误。有关详细信息,请参阅 q_etResultq_etResultMsg

q_etResult

ET_Result

以数字值的形式提供诊断和状态信息。

q_sResultMsg

STRING[80]

以文本消息的形式提供附加的诊断和状态信息。