FB_FtpSecureClient 功能块专用于安全 FTP (FTP over TLS) 连接。它包括用于执行文件和目录操作的相关 FTP 功能。每个实例处理一个安全 FTP 连接。如果您尝试建立第二个传输,则功能块响应为 ET_Result.UnableToEstablishMutlipleConnections。
FB_FtpSecureClient 功能块是通过 TLS 安全连接来与外部 FTP 服务器进行交互的用户接口。要实现安全通讯,其前提条件是,必须将与 FTP 服务器的连接声明为可信连接。有关更多信息,请参阅 将与 FTP 服务器的连接声明为可信连接。
启用该功能块之后,会使用藉由 iq_stCredentials 提交的安全用户凭据,来建立安全 FTP 连接。一旦建立了安全连接,该功能块便能够处理由 i_etCommand 提交的命令以及在 i_xExecute 处检测到的上升沿。
在执行命令期间,输出 q_xBusy 一直设置为 TRUE。命令成功完成之后,q_xDone 设置为 TRUE。
状态消息和诊断信息使用输出 q_xError(如果检测到错误则为 TRUE)q_etResult 和 q_etResultMsg 提供。
如果 q_xError 为 TRUE,则表示在执行期间检测到错误。只要存在错误状态,便无法再执行此功能块。可以使用输入 i_xErrorQuit 来复位某些错误消息。
如果错误状态在 i_xErrorQuit 的上升沿之前一直存在,则必须禁用功能块,以便复位错误状态。
在禁用了功能块 (i_xEnable = FALSE) 时,只要 q_xActive = TRUE,就必须调用此功能块,以便完成内部清理例程。然后可重新启用此功能块。
如果建立连接时发生了超时,则下一个 FTP 命令 (ET_FtpCommand) 会被检测为错误。为避免这种情况,应在马上执行相关操作之前启用该功能块,之后再禁用它。
在 TLS 的环境中,可以使用证书来验证通讯合作伙伴的身份。证书在连接建立期间发送;这被称为 TLS 握手。除非服务器要求客户端证书,否则证书发送对于客户端是可选的。服务器每次都会发送其证书。只有在证书验证结果为肯定结果时,才能够建立与通讯合作伙伴的连接。如要实现安全 FTP 连接,必须将 FTP 服务器证书提供到 Modicon M262 Logic/Motion Controller 的控制器文件系统的 /pki/trusted/certs 文件夹中。自签名证书和签名证书的处理方式如下:
自签名 FTP 服务器证书的处理方式
首次连接到 FTP 服务器时,自签名服务器证书存储在控制器的 /pki/untrusted 目录中。下面介绍了如何使用 Logic Builder 中设备编辑器的文件选项卡将证书转移到 /pki/trusted/certs 目录:
步骤 |
操作 |
---|---|
1 |
从 EcoStruxure Machine Expert FTP 客户端应用程序登录到控制器。 |
2 |
选择设备编辑器的文件选项卡,然后单击刷新图标。 |
3 |
在显示 Runtime 系统的设备编辑器的右侧部分中,导航至 /pki/untrusted 目录,然后选择 FTP 服务器的证书 (.crt) 文件。 |
4 |
在显示主机的设备编辑器的左侧部分中,选择临时位置,然后通过单击设备编辑器中心的 << 箭头按钮来传递证书。 |
5 |
在设备编辑器的右侧部分中,导航至 /pki/trusted/certs 目录。 |
6 |
在设备编辑器的左侧部分中选择证书,然后通过单击设备编辑器中心的 >> 箭头按钮,将证书从临时位置传递到 /pki/trusted/certs 目录。 |
签名 FTP 服务器证书的处理方式
如果 FTP 服务器证书已由 Certificate Authority 签名,则可以在首次连接到 FTP 服务器之前,将此证书保存到控制器的 /pki/trusted/certs 目录。继续执行下列步骤:
步骤 |
操作 |
---|---|
1 |
从 EcoStruxure Machine Expert FTP 客户端应用程序登录到控制器。 |
2 |
选择设备编辑器的文件选项卡,然后单击刷新图标。 |
3 |
在设备编辑器的右侧部分中,导航至 /pki/trusted/certs 目录。 |
4 |
在设备编辑器的左侧部分中选择证书,然后通过单击设备编辑器中心的 >> 箭头按钮,将证书从临时位置传递到 /pki/trusted/certs 目录。 |
输入 |
数据类型 |
描述 |
---|---|---|
i_xEnable |
BOOL |
功能块的激活与初始化。 |
i_xExecute |
BOOL |
输入 i_etCommand 指定的命令在此输入的上升沿时执行。 |
i_xErrorQuit |
BOOL |
某些诊断消息(例如,错误的命令或者包含错误参数的命令)可在此输入的上升沿复位。 |
i_etCommand |
ET_FtpCommand |
如果输入 i_xExecute 为 TRUE时执行的 FTP 命令。 |
输入/输出 |
数据类型 |
描述 |
---|---|---|
iq_stCredentials |
ST_SecureCredentials |
用于传递包含用户名或密码等安全用户设置的结构体。 |
iq_stContent |
ST_Content |
用于传递工作目录以及此目录中文件的数量和名称(如适用)。 |
输出 |
数据类型 |
描述 |
---|---|---|
q_xActive |
BOOL |
如果此功能块活动,则输出设置为 TRUE。 |
q_xReady |
BOOL |
如果初始化成功,则输出在功能块能够接受输入期间一直设置为 TRUE。 |
q_xBusy |
BOOL |
如果此输出设置为 TRUE,则功能块执行在 i_etCommand 处指定的命令。 |
q_xDone |
BOOL |
如果此输出设置为 TRUE,则功能块已成功完成在 i_etCommand 处指定的命令。 |
q_xError |
BOOL |
如果此输出设置为 TRUE,则检测到错误。有关详细信息,请参阅 q_etResult 和 q_etResultMsg。 |
q_etResult |
ET_Result |
提供诊断和状态信息。 |
q_sResultMsg |
STRING[255] |
提供附加诊断和状态信息。 |