TRCV_C 的接收模式: • TCP(Ad-hoc 模式) Ad-hoc 模式仅在使用 TCP协议选项时才可用。使用 Ad-hoc 模式通过“TRCV_C”指令接收 动态长度的数据。 将值“1”赋给参数 ADHOC,可以设置为Ad-hoc 模式。 接收到一个数据块之后,“TRCV_C”指令会立即将该数据块传送至接收区,并置位 DONE。 RCVD_LEN中包含有关该数据块内所含数据字节数量的信息。RCVD_LEN 的Zui小值为 1。 使用 Ad-hoc模式时,所有数据类型均可用于具有标准访问权限的数据块。只有 ARRAY of BYTE 或长度为 8位的数据类型才可用于具有优化访问权限的数据块(如 CHAR、 USINT、SINT 等)。 • TCP(接收指定长度的数据)将值“0”赋给参数 ADHOC,可接收指定长度的数据。如果禁用 Ad-hoc 模式,在接收完 LEN参数指定的数据长度后,才能完成数据接收。此后接收区中便有数据了(DATA 参数)。 接收完成后,RCVD_LEN参数中实际接收的数据长度(以字节为单位)与 LEN 参数中的 数据长度一致。 • ISO‑on‑TCP(面向消息的数据传输)完整消息块通过使用 ISO‑on‑TCP 协议的连接进行发送;接收方依此识别这些消息块。接 收区由参数 LEN 和 DATA定义。如果接收缓冲区(DATA 参数)对于发送的数据而言过小, “TRCV_C”便会报告错误。接收完成后,RCVD_LEN参数中实际接收的数据长度(以字节 为单位)与 LEN 参数中的数据长度一致。 下表列出了接收数据如何输入到接收区中。 协议选项接收区中数据的可用性 连接描述的参数 connection_type 参数 LEN TCP (Ad-hoc 模式) 如果 DONE置位,则至少一个数据 字节可用。 十六进制值:B#16#11 整数值:17 1 到Zui大长度(取决 于 CPU) TCP(接收指定长度的数 据) 全部接收到参数 LEN 中指定的数据 长度后,该数据立即可用。 十六进制值:B#16#11 整数值:17 1到 8192 ISO‑on‑TCP (面向消息的数据传 输) 全部接收到参数 LEN 中指定的数据 长度后,该数据立即可用。十六进制值:B#16#12 整数值:18 1 到 8192 FDL 全部接收到参数 LEN 中指定的数据 长度后,该数据立即可用。十六进制值:B#16#15 十进制:21 1 到 240
终止通信连接 参数 CONT 置位为“0”时,当前进行的数据传送尚未完成,也将终止通信连接。但如果使用了组态连接,将不会终止连接。 可随时通过将参数 COM_RST 设置为“1”来重置连接。这会终止现有通信连接并建立新连接。如果此时正在传送数据,则可能会丢失数据。 参数 下表列出了“TRCV_C”指令的参数: 参数 声明 数据类型 存储区 说明 EN_RInput BOOL I、Q、M、D、 L、T、C 或常量 启用接收功能 出现 16#80C5 后,EN_R 可设为 FALSE。这样会避免客户端终止连接后输出错误代码 16#80C4: • 0:指令 TRCV_C 可停止调用指令 TRCV。如果未建立连接,将不会返回状态 代码 16#80C4。 • 1:指令 TRCV_C 开始执行时会调用指令TRCV。如果未建立连接,将返回状 态代码 16#80C4。 CONT Input BOOL I、Q、M、D、L 控制通信连接:• 0:断开通信连接。 • 1:建立通信连接并在接收数据后保持该连 接。 LEN Input UDINT I、Q、M、D、L 或常量要接收数据的Zui大长度。如果在 DATA 参数中 使用具有优化访问权限的接收区,LEN 参数值 必须为“0”。 ADHOC InputBOOL I、Q、M、D、L 或常量 可选参数(隐藏) TCP 协议选项使用 Ad-hoc 模式。 如果未使用 TCP 协议,则ADHOC 的值需为 FALSE。参数 声明 数据类型 存储区 说明 CONNECT InOut VARIANT D指向连接描述的指针 • 设定连接: – 对于 TCP 或 UDP,使用结构 TCON_IP_v4相关说明,请参见“AUTOHOTSPOT” – 对于采用 secure communication 的 TCP,使用结构TCON_IP_V4_SEC 或 TCON_QDN_SEC。 相关说明,请参见“基于 TCON_IP_V4_SEC 的连接参数”或“基于 TCON_QDN_SEC 的连接参数” – 对于 ISO-on-TCP,使用结构 TCON_IP_RFC相关说明,请参见“AUTOHOTSPOT” – 对于 ISO,使用结构 TCON_ISOnative (CP 1543‑1/ CP 1545‑1) 相关说明,请参见“TCON (页 5606)” 指令:“基于TCON_ISOnative 的连接 描述结构” – 连接 SMS 客户端时,可使用 TCON_PHONE 系统数据类型。相关说明,请参见“AUTOHOTSPOT” – 使用 CM 1542‑5 进行 FDL 连接时,需 使用系统数据类型TCON_FDL;请参见 “AUTOHOTSPOT”。 • 组态的连接: – 对于现有连接,使用TCON_Configured系统数据类型。相关 说明,请参见下文中的“已组态连接的 系统数据类型”。 DATA InOutVARIANT I、Q、M、D、L 指向接收区的指针。 传送结构时,发送端和接收端的结构必须相 同。 ADDR InOutVARIANT D UDP 需使用的隐藏参数。此时,将包含指向系 统数据类型 TADDR_Param 的指针。发送方的 地址信息(IP地址和端口号)将存储在系统数 据类型为 TADDR_Param 的数据块中。 另请参见“远程通信伙伴 UDP 地址信息的结 构”参数声明 数据类型 存储区 说明 COM_RST InOut BOOL I、Q、M、D、L 可选参数(隐藏) 重置连接: • 0:不相关• 1:重置现有连接。 COM_RST 参数通过“TRCV_C”指令进行求值后 将被复位,不应静态互连。 DONE OutputBOOL I、Q、M、D、L 状态参数,可具有以下值: • 0:接收尚未启动或仍在进行。 • 1:接收已经成功完成。此状态将仅显示一个周期。 BUSY Output BOOL I、Q、M、D、L 状态参数,可具有以下值: • 0:接收尚未启动或已完成。 •1:接收尚未完成。无法启动新发送作业。 ERROR Output BOOL I、Q、M、D、L 状态参数,可具有以下值: •0:无错误 • 1:在连接建立、数据接收或连接终止过程 中出错。 由于“TRCV_C”指令或在内部使用的通信指令 出错,可置位输出参数ERROR。 STATUS Output WORD I、Q、M、D、L 指令的状态 RCVD_LEN Output UDINTI、Q、M、D、L 实际接收到的数据量(以字节为单位) 有关有效数据类型的更多信息,请参见“有效数据类型概述(页 255)”。 EN_R、CONT 和 COM_RST 参数 “TRCV_C”指令的参数 CONT 控制连接的建立,而与EN_R 参数无关。CONT 参数的行为部分 取决于使用的是设定连接还是组态连接: • CONT=“0”时:未收到数据(与使用的是设定连接还是组态连接无关)。 • CONT 的值从“0”变为“1”时: –对于设定连接,通过“TCON”建立连接。 – 对于组态连接,通过“T_DIAG”检查连接。