FTP 服务器与CP443-1 Advanced EX40 建立连接后为何又会清除掉FTP 连接?

描述:
下面的信息仅适用于工业以太网模板 CP 443-1 Advancedn

  • 6GK7 443-1EX40-0XE0

在PLC 的用户程序中共有5个通信函数用于FTP 数据传输。这些通信函数在STEP 7的SIMATIC_NET_CP 库可以找到。具体如下:
n

函数 函数的名称 描述
FC 40 FTP_CONNECT 建立FTP 连接
FC 41 FTP_STORE 在 FTP 服务器上保存文件
FC 42 FTP_RETRIEVE 从FTP 服务器上检索文件
FC 43 FTP_DELETE 删除FTP 服务器中的文件
FC 44 FTP_QUIT 使能FTP 连接

通过FTP 进行数据传输的原理
通过 TCP/IP 协议建立用于 FTP 数据传输的两个连接。连接通过所谓的 CONTROL 连接实现,实际的用户数据是通过 data连接 进行传输。
一旦通过 FTP_CONNECT 功能建立了连接, 文件可以通过 FTP_STORE 功能保存在 FTP 服务器上并且可以通过 FTP_RETRIEVE 功能从 FTP 服务器上检索文件,还可以选择使用 FTP_DELETE 功能删除 FTP 服务器中的文件。
一旦完成了数据传输,该连接必须通过 FTP_QUIT 功能清除。n

每一个 FTP 通信函数的接口( 输出参数: STATUS )中都有大量的状态信息。通过状态信息可以判断数据传输的状态或在建立通信时可能出现的问题。n

意外情况
当通过 FTP_CONNECT 函数已经建立连接之后,FTP 服务器有时会向CONTROL连接发送一个错误代码(425),而不是发给建立的数据连接。此外还将再次清除CONTROL连接。n

由于连接已经被建立,下面的错误代码将在调用FTP_STORE函数和 FTP_RETRIEVE 函数中报告一次:n

  • 8F62H:FTP服务器不支持或拒绝该任务

然后函数FTP_STORE和 FTP_RETRIEVE 将不断地发出如下的错误代码:n

  • 8F62H :FTP 连接在这次调用中处于不正确的状态,如在两个连接调用的情况下或没有检索到先前的连接(因为有相同的 NetPro ID)

由于 FTP_CONNECT 功能已经被成功的执行了,所以这两个错误代码仅仅是描述意外的情况,不需要标示出来。

这种意外情况仅在连接被建立并且在一段长的循环周期中被清除时才会出现。

补救措施:
FTP通信的诊断功能在固件版本为 V2.5的CP443-1 Advanced EX40 和固件版本为 V1.0 的 CP443-1 Advanced EX41 的通信模板中已经得到改善。如果出现上述的现象,在功能 FTP_STORE 和 FTP_RETRIEVE 的接口参数(输出参数: STATUS)中将出现如下错误代码:

  • 8F62H:FTP Control 连接错误;不能发送和接收数据;出现该错误后 FTP Control连接必须再次重新建立。

这意味必须评估用户程序中的 FTP_STORE和 FTP_RETRIEVE 函数的状态信息。 当状态信息出现 8F64H时,为了能够继续进行数据传输, FTP_CONNECT 必须被调用。

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc337083.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论