FB_FtpSecureClient

概述

类型:

功能块

适用的版本:

V1.4.3.0

任务

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_etResultq_etResultMsg 提供。

如果 q_xError 为 TRUE,则表示在执行期间检测到错误。只要存在错误状态,便无法再执行此功能块。可以使用输入 i_xErrorQuit 来复位某些错误消息。

如果错误状态在 i_xErrorQuit 的上升沿之前一直存在,则必须禁用功能块,以便复位错误状态。

在禁用了功能块 (i_xEnable = FALSE) 时,只要 q_xActive = TRUE,就必须调用此功能块,以便完成内部清理例程。然后可重新启用此功能块。

如果建立连接时发生了超时,则下一个 FTP 命令 (ET_FtpCommand) 会被检测为错误。为避免这种情况,应在马上执行相关操作之前启用该功能块,之后再禁用它。

将与 FTP 服务器的连接声明为可信连接

在 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_xEnable、i_xExecute 和 i_xErrorQuit 下的行为

i_xExecute

BOOL

输入 i_etCommand 指定的命令在此输入的上升沿时执行。

请参阅 功能块在输入 i_xEnable、i_xExecute 和 i_xErrorQuit 下的行为

i_xErrorQuit

BOOL

某些诊断消息(例如,错误的命令或者包含错误参数的命令)可在此输入的上升沿复位。

请参阅 功能块在输入 i_xEnable、i_xExecute 和 i_xErrorQuit 下的行为

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_etResultq_etResultMsg

q_etResult

ET_Result

提供诊断和状态信息。

q_sResultMsg

STRING[255]

提供附加诊断和状态信息。