TCON:建立通信连接 (S7-1200, S7-1500) TCON: 建立通信连接 (S7-1200)有效性 以下“TCON”说明适用于 S7-1200 CPU 固件版本 V4.0 及更低版本。 说明使用“TCON”指令可设置并建立通信连接。设置并建立连接后,CPU 将自动持续监视该连接。 “TCON”为异步执行指令。 为参数CONNECT 和 ID 指定的连接数据用于设置通信连接。要建立该连接,必须检测到参数 REQ 的上升沿。成功建立连接后,参数DONE 将被设置为“1”。 说明 编程连接时的技术支持 如果在程序块中选择通信指令 TCON、TSEND_C 或 TRCV_C创建类型为 TCP、UDP 或 ISO-onTCP 的连接,并为这些连接分配参数,则可使用连接参数分配支持功能。在程序编辑器的巡视窗口中,可进行连接参数分配。
可能的连接数有关可能的通信连接数量信息,请参见 CPU 的技术规范。 TCP and ISO-on-TCP 连接两个通信伙伴都调用“TCON”指令,以设置和建立通信连接。参数分配期间,用户需要指定哪 个伙伴是主动通信端点以及哪个是被动通信端点。例如,如果连接由于断线或远程通信伙伴而中止,主动伙伴会尝试重新建立组态的连接。此时,不必调用“TCON”。这仅适用于成功执行一次“TCON”(DONE = 1)的情况。 执行“TDISCON(页 5615)”指令或 CPU 切换到 STOP 模式时,会终止现有连接并删除所设置的相应连接。要设置并建立连接,需要执行“TCON”。 参数 下表列出了“TCON”指令的参数: 参数 声明 数据类型 存储区说明 REQ Input BOOL I、Q、M、D、L 或 常量 在上升沿时,启动相应作业以建立 ID 所指 定的连接。 IDInput CONN_OUC I、Q、M、D、L 或 常量 指向已分配连接的引用。 值范围:W#16#0001 到 W#16#0FFFCONNECT InOut TCON_Param D 指向连接描述的指针 另请参见“AUTOHOTSPOT” 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 状态参数 ERROR: • 0:无错误 •1:出错 STATUS Output WORD I、Q、M、D、L 指令的状态有关有效数据类型的更多信息,请参见“有效数据类型概述。BUSY、DONE 和 ERROR 参数 使用 BUSY、DONE、ERROR和 STATUS 参数可以检查作业的状态。参数 BUSY 表示作业正在 执行。使用 DONE参数可检查作业是否已成功执行。如果在“ERROR”的执行过程中出错,则 置位参数 TCON。错误信息通过参数 STATUS 输出。下表列出了参数 BUSY、DONE 和 ERROR 之间的关系: BUSY DONE ERROR 说明 1 0 0 作业正在处理。 01 0 作业已成功完成。 0 0 1 由于出错,导致作业结束。错误原因通过参数 STATUS 输出。 0 0 0 未分配新作业。ERROR 和 STATUS 参数 ERROR STATUS* (W#16#...) 说明 0 0000 已成功建立连接。 07000 当前无作业处理 0 7001 启动作业执行,建立连接。 0 7002 正在建立连接(与 REQ 无关)。 1 8085 连接ID(ID 参数)已经被已组态的连接使用。 1 8086 ID 参数超出了有效范围。 1 8087 已达到Zui大连接数;无法建立更多连接1 8089 CONNECT 参数没有指向某个数据块。 1 809A 集成接口不支持参数 CONNECT中的结构,或长度无效,或连接描述 (SDT) 中指定的的 “InterfaceID”错误。 1 809B TCON_xxx 结构中的InterfaceId 元素不会引用 CPU 或 CM/CP 接口的硬件标识符,或 其值为“0”。 1 80A0 组错误,用于错误代码W#16#80A1 和 W#16#80A2。 1 80A1 指定的连接或本地端口正在使用中。 1 80A2 系统正在使用本地端口。 180A3 正尝试重新建立现有连接。 1 80A4 连接远程端点的 IP 地址无效,即它与本地伙伴的 IP 地址重复。ERRORSTATUS* (W#16#...) 说明 1 80A5 连接 ID 已被使用。 1 80A7通信错误:在“TCON”完成前执行了“TDISCON (页 5615)”。 1 80B2 CONNECT参数指向通过属性“仅存储在装载内存中”(Only store in load memory) 生 成的某个数据块。 1 80B4 使用ISO-on-TCP 协议选项 (connection_type = B#16#12) 建立被动连接时,违反了以 下一个或两个条件:• local_tsap_id_len >= B#16#02 • local_tsap_id[1] = B#16#E0 •local_tsap_id_len >= B#16#03 时,local_tsap_id[1] 是 ASCII 字符。• local_tsap_id[1] 是 ASCII 字符,且 local_tsap_id_len>= B#16#03。 1 80B5 连接类型 13 = UDP 仅支持建立被动连接。 1 80B6 SDTTCON_Param 的 connection_type 参数存在参数分配错误。 1 80B7在进行连接描述的数据块中,以下某个参数错误:block_length、local_tsap_id_len、rem_subnet_id_len、rem_staddr_len、rem_tsap_id_len、next_staddr_len。 注:如果在 TCP 中为被动端调用 TCON,则 local_tsap_id_len 的值必须为 2且 rem_tsap_id_len 的值必须为 0。 1 80B8 结构元素 ID 和块参数 ID 的连接描述不同。 1 80C3所有连接资源均已使用。 1 80C4 临时通信错误: • 此时无法建立连接。 • 由于连接路径中防火墙的指定端口未打开,无法建立连接。• 接口当前正在接收新参数。 • “TDISCON (页 5615)”指令当前正在删除已组态的连接。 *在程序编辑器中,错误代码可显示为整数或十六进制值。有关切换显示格式的信息,请参见“另请参见”。TCON:建立通信连接(S7-1200, S7-1500) 说明 使用“TCON”指令可设置并建立通信连接。设置并建立连接后,CPU 将自动持续监视该连接。“TCON”为异步执行指令。 在 S7-1500-CPU 固件版本 V2.0 及更高版本中,通过集成 PROFINET接口可将网络接入点设 置为使用指令“TCON”进行 IPv4 多播通信。 为参数 CONNECT 和 ID指定的连接数据用于设置通信连接。在参数 CONNECT 中,若可能,只能使用通过连接参数分配在程序编辑器的巡视窗口中创建的预定义结构。 在 S7-1500 CPU 固件版本 V2.0及以上版本中,可通过参数 Interface ID 将特殊结构 TCON_xxx 的值指定为0。这样,该固件版本即可选择使用此工业以太网接口。可通过以下 SDT,将该值指定为0:TCON_IP_V4_SEC、TCON_QDN、TCON_QDN_SEC、 TMail_QDN_SEC、TMail_V4 和TMAIL_V4_SEC。对于其它所有 SDT,接口 ID 必须指定为一 个固定值。 要建立该连接,必须检测到参数 REQ的上升沿。成功建立连接后,参数 DONE 将被设置为 “1”。 说明 编程连接时的技术支持 如果在程序块中选择通信指令TCON、TSEND_C 或 TRCV_C 创建类型为 TCP、UDP、 ISO‑on‑TCP 或 FDL类型的连接并分配参数,则可使用连接参数分配功能。 在程序编辑器的巡视窗口中,可进行连接参数分配。