T_RESET: 复位连接(S7-1200, S7-1500) 说明 使用指令“T_RESET”可终止并重新建立现有的连接。本地端点将被保留。它们将在以下情况下自动生成: • 组态了一个连接并将其加载到 CPU 中。 • 通过调用指令“TCON(页 5602)”等方式由用户程序生成了一个连接。 所有连接类型(TCP、UDP、ISO-on-TCP等)均可执行指令“T_RESET”,无需考虑连接使用的 是 CPU 本地接口还是 CM/CP 接口。 使用 REQ参数调用指令“T_RESET”后,由 ID 参数指定的连接就会被终止,如有必要,数据发送和接收缓冲区将被清空。取消连接也会取消正在进行的任何数据传输。在传输数据时 会有丢失数据的风险。随后,定义为主动连接伙伴的CPU 将自动尝试恢复中断的通信连接。 无需调用指令“TCON (页 5602)”重新建立通信连接。 输出参数DONE、BUSY 和 STATUS 用于指示作业状态。 参数 下表列出了“T_RESET”指令的参数: 参数 声明 数据类型 存储区说明 REQ Input BOOL I、Q、M、D、L 或 常量 控制参数 REQUEST 启动用于终止 ID 所指定的连接的作业。在上升沿时启动该作 业。 ID Input CONN_OUC I、Q、M、D、L 或 常量指向要终止的被动伙伴连接的引用。ID 必 须与本地连接描述信息中的相关参数 ID 相 同。 值范围:W#16#0001 到W#16#0FFF DONE Output BOOL I、Q、M、D、L 状态参数 DONE • 0:作业未启动,或者仍在执行之中。• 1:作业已执行,且无任何错误 BUSY Output BOOL I、Q、M、D、L 状态参数 BUSY • 0:作业已完成。 •1:作业尚未完成。
CPU 1 的结果 程序段 1(TUSEND): 根据输入参数 ID(“connectionID”),指令“TUSEND”可确定待使用的通信连接。根据输入参 数ADDR(“SLI_plcDB_taddr_param_TUSEND”),对通信伙伴 (CPU 2) 进行寻址。 输入参数REQ(“TUSEND.start”)的信号状态为“TRUE”时,启动指令“TUSEND”。进行多次调用时,“TUSEND”指令将传送输入参数 DATA(“SLI_plcDB_sendData_TUSEND”)处检测到的数据记录。待传送数据记录的大小取决于输入参数 LEN(“TUSEND.maxLength”)的值。 数据记录传送成功时,输出参数DONE(“#doneSEND”)的信号状态为“TRUE”,且输出参数STATUS(“TUSEND.status”)的值为“0000”。由于输出参数的值仅在有效时才显示,成功状态将保存在变量“TUSEND.done”中。 输出参数ERROR(“TUSEND.error”)或变量“TUSEND.memErrStatus”)可用于指示本示例中 的执行过程是否出错。程序段 2 (TUSEND): 如果 TUSEND 发出信号指示错误(“TUSEND.error”为“TRUE”),则所报告的状态(“TUSEND.status”)将进行yongjiu性存储(“TUSEND.memErrStatus”)。 CPU 2 的结果程序段 1 (TURCV): 根据输入参数ID(“connectionID”),指令“TURCV”可确定待使用的通信连接。根据输入参数ADDR(“SLI_plcDB_taddr_param_TURCV”),对通信伙伴 (CPU 1) 进行寻址。 输入参数EN_R(“TURCV.start”)的信号状态为“TRUE”时,启动指令“TURCV”。进行多次调用时,“TURCV”指令将接收所传送的数据记录。并检查输入参数 DATA(“SLI_plcDB_rcvData_TURCV”)处的该数据记录。并通过输出参数 LEN(“#length”),确定 BYTE中实际传送的数据记录长度。仅当传送成功 时,才显示该值。之后,将检查“0”。数据记录接收成功时,输出参数DONE(“#doneRCV”) 的信号状态为“TRUE”,且输出参数STATUS(“TURCV.status”)的值为“0000”。 由于输出参数的值仅在有效时才显示,请进行以下操作步骤: •成功状态保存在变量“TURCV.done”中。 • BYTES 中的长度保存在变量“TURCV.readLength”中。 输出参数ERROR(“TURCV.error”)或变量“TURCV.memErrStatus”)可用于指示本示例中的执 行过程是否出错。程序段 2 (TURCV): 如果 TURCV 发出信号指示错误(“TURCV.error”为“TRUE”),则所报告的状态(“TURCV.status”)将进行yongjiu性存储(“TURCV.memErrStatus”)。参数 声明 数据类型 存储区说明 ERROR Output BOOL I、Q、M、D、L 状态参数 ERROR • 0:未发生错误。 •1:处理期间出错。STATUS 参数提供 有关错误类型的详细信息 STATUS Output WORD I、Q、M、D、L 状态参数STATUS 错误信息(请参见“STATUS 参数”表)。 有关有效数据类型的更多信息,请参见“有效数据类型概述。T_RESET的编程示例 (S7-1200, S7-1500) 简介 在以下示例中,将使用两个 CPU (S7-1500)间已组态的连接(如,UDP 连接)。并使用指令 “T_RESET”复位连接。 要求 • 两个 S7-1500 系列的 CPU 通过PROFINET 进行互连,UDP 连接已组态。 • “> 属性 > 保护”(> Properties >Protection) 中的低保护级别,可确保各 CPU 可进行读写访问。 创建变量并互连参数(CPU 1 中的程序)要对该数据进行存储,需使用以下结构和变量,创建一个全局数据块 (“SLI_gDB_T_RESET”)。创建函数块“SLI_FB_T_RESET”,并在该数据块中创建以下局部变量。分配通信连接 必须根据连接对寻址参数进行相应调整。 •所组态 UDP 连接中硬件标识符的十六进制值都将存储到输入参数 ID(“connectionID”) 中。 该硬件 ID位于“连接”(Connections) 中的“网络视图”(Network view) 内。 结果 程序段 1: 根据输入参数ID(“connectionID”),指令“T_RESET”可确定待使用的通信连接。 输入参数REQ(“T_RESET.start”)的信号状态为“TRUE”时,启动指令“T_RESET”。指令“T_RESET”将终止指定的通信连接。将终止使用该连接的所有作业。之后,活动的连接伙伴 (CPU 1) 将自动重新建立连接。数据记录传送成功时,输出参数 DONE(“#done”)的信号状态为“TRUE”,且输出参数 STATUS(“T_RESET.status”)的值为“0000”。由于输出参数的值仅在有效时才显示,成功状态将保存在变量“T_RESET.done”中。 输出参数ERROR(“T_RESET.error”)或变量“T_RESET.memErrStatus”)可用于指示本示例中的执行过程是否出错。 程序段 2: 如果 T_RESET发出信号指示错误(“T_RESET.error”为“TRUE”),则所报告的状态(“T_RESET.status”)将进行yongjiu性存储(“T_RESET.memErrStatus”)。 程序段 3:T_RESET(“T_RESET.done”)成功执行后,T_RESET 将停止。T_DIAG: 检查连接 (S7-1200,S7-1500) 说明 使用“T_DIAG”指令,可检查连接状态并读取该连接的本地端点详细信息。 •可通过“ID”参数引用连接。可读取连接编辑器中组态的连接端点和程序编写的连接端点 (例如,使用“TCON”指令)。无法诊断临时连接端点(例如,连接至工程师站时创建的端点),因为在此过程中不会 生成连接 ID。 • 读取的连接信息存储在通过RESULT 参数引用的结构中。 • 输出参数 STATUS 指示是否可以读取连接信息。仅当“T_DIAG”指令完成时 STATUS= W#16#0000 和 ERROR = FALSE,RESULT 参数处该结构中的连接信息才有效。发生错误时无法评估连接信息。