跳到主要内容

7.15.7 终止并重连指定的连接

T_RESET(终止并重连指定的连接)

功能

  • T_RESET系统库用于异步重置当前TCP连接

设置并建立通信连接

  • 用户在connect块中配置好正确的IP地址和端口号之后,通过将REQ参数置为true,开始启用重置连接功能,终止当前通信连接并重新创建连接请求

  • 重置连接函数只有在通信连接已经成功建立的情况下才作用

  • 正确重置过程需要先给req引脚一个上升沿,可以看到T_RESET块中的状态字由0x7004(已经建立连接)→0x7003(正在终止连接)→0x7007(已经终止连接)→0x7002 (正在建立连接)表示连接已经重置成功;待对端重新触发连接动作,己方状态码可顺利更新成0x7004(连接建立成功)

  • 建立连接后,若此时对端主动断开连接,状态码会由0x7004(已经建立)→0x7002(正在建立连接);若此时重置连接,则不会触发重连操作

LD图形

alt text

参数说明

接口变量声明数据类型说明
REQInputBOOL识别到上升沿才主动重置连接
CONNECTInOutTCP_ConnectConfig配置连接参数的函数块实例,具体参见TCP_Connectconfig
DONEOutputBOOL状态参数,可具有以下值:
0:重置连接尚未启动或仍在进行
1:重置连接已成功执行。此状态将仅显示一个周期
BUSYOutputBOOL状态参数,可具有以下值:
0:重置连接尚未启动或已完成
1:重置连接尚未完成
ERROROutputBOOL状态参数,可具有以下值:
0:无错误
1:重置连接出错
STATUSOutputWORD当前函数执行过程的状态

状态码说明

STATUS(WORD 16#)说明
0000未调用
7002正在建立通信连接
7004成功建立连接
8000正在重置连接
以下为异常情况状态码说明
8080创建套接字失败,系统套接字资源不足
8081IP地址错误
8082设置IP地址和端口号可复用错误
8083bind地址和端口号与socket失败
8084将服务端套接字加至EPoll监听队列失败
8086接收新连接失败
8087移除客户端对应的Epoll Event失败
80A0客户端主动连接服务端失败
80A2主动断开连接失败
80A3重置连接失败
80AC异步函数入队失败

实例

  • LD示例如下动图所示:

alt text

  • ST示例如下代码所示:
T_RESET_1(
REQ:=RESET,
CONNECT:=TCP_CONNECTCONFIG_1,
DONE=>OUT,
BUSY=>OUT2,
ERROR=>OUT3,
STATUS=>OUT4
);