方法 ConnectToServer 发起到服务器的 TCP 连接。
此方法用于发起建立到服务器的 TCP 连接,此服务器由其 IPv4 地址和相应的端口指定。HTTP 的标准端口为 80 和 443(安全,HTTPS)。将参数 i_xUseTls 设置为 TRUE,以指定要建立安全连接。
方法的返回值仅指示是否能够成功发起连接。必须使用属性 State 来检查连接状态。如果返回值为 FALSE,则评估方法的诊断输出。这些输出指示的错误不需要复位。
如果在控制器与远程 HTTP 服务器之间设置有 HTTP 代理,必须在 ConnectToServer 方法中指定代理的连接参数。如果客户端连接到代理,这通过代理服务器在客户端与远程服务器之间转发 HTTP 通讯流。地址和端口将从代理服务器获得,提取自所发送的 HTTP 请求的标头。它们对应于 HTTP 请求相应发送方法的参数 i_sHost。
注意: 有关更多详细信息,请参阅示例代码。
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_etResult和 q_etResultMsg。 |
q_etResult |
以数字值的形式提供诊断和状态信息。 |
|
q_sResultMsg |
STRING[80] |
以文本消息的形式提供附加的诊断和状态信息。 |