CPU、所用协议选项(connection_type)以及可以传输的数据长度之间的关系 (S7-300,S7-400) CPU、所用协议选项(connection_type)以及可以传输的数据长度之间的关系 下表列出了在每种 CPU上可使用的协议选项,以及可传输数据的长度。示例 4: 两台 S7-400 CPU 之间通过 ISO on TCP 和集成的PROFINET 接口进行通信 其中一个通信伙伴是 CPU 414-3 PN/DP(固件版本为 V5.0 及更高版本),另一个是固件版本为 V5.0 的 CPU 416-3 PN/DP。通信由集成的 PROFINET 接口实现。下表列出了两个通信伙伴Zui重要的数据。
TCON: 建立通信连接(S7-300, S7-400) 可建立的连接数 有关可建立的 TCP 或 UDP 连接数目,请参见相关的 CPU 规格。 与 TCP和 ISO on TCP 一起使用 两个通信伙伴都调用“TCON”指令,以设置和建立通信连接。分配参数时,可以指定哪个伙伴为主动通信端点,哪个是被动通信端点。 设置并建立连接后,CPU 会自动保持和监视该连接。如果连接被终止(例如由于线路中断或由于远程通信伙伴的原因),主动伙伴将试图重建已 经组态的连接。此时,不必调用“TCON”。调用指令“TDISCON”之后,或者 CPU 进入 STOP 模式之后,将会终止并删除当前连接。设置并建立该连接需要重新调用“TCON”。 与 UDP 一起使用两个通信伙伴均调用指令“TCON”,以组态它们的本地通信接入点(本地端口)。在用户程序和操作系统通信层之间组态了一个连接。未建立与远程通信伙伴之间的连接。 本地接入点用于发送和接收 UDP 消息帧。 本地接入点(UDT65)或者远程通信伙伴(UDT 66)等组态内,以下参数必须相互匹配。 • 对于 UDP:指向连接和本地端口号的引用 功能描述“TCON”指令为异步执行,也就是说,作业的处理可以延长并跨越多个调用。可通过调用 “TCON”且REQ = 1,启动连接建立与设置作业。 其作业状态由输出参数 BUSY 和 STATUS指示。此时,STATUS 相当于该异步指令的输出参数 RET_VAL。 另请参见“同步指令和异步指令之间的不同之处下表列出了BUSY、DONE 和 ERROR 之间的关系。使用该表,可以查看“TCON”的当前状态、 或者设置或建立连接的时间(适用于 TCP和 ISO-on-TCP)。 BUSY DONE ERROR 说明 TRUE 不相关 不相关 作业正在处理。 FALSE TRUEFALSE 作业已成功完成。 FALSE FALSE TRUE 由于出错,导致作业结束。错误的原因可以从参数 STATUS 中找出。FALSE FALSE FALSE 没有为该指令分配(新)作业。 参数 下表列出了“TCON”指令的参数: 参数 声明 数据类型存储区 说明 REQ Input BOOL I、Q、M、D、L、 T、C 控制参数 REQUEST 可以启动相关作业以 建立 ID所指定的连接。在上升沿时启动该 作业。 ID Input WORD M、D 或常数 指向待建立的远程伙伴连接、或者用户程序与操作系统通信层之间连接的引用。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 = 1:作业尚未完成。 •BUSY = 0:作业已完成。 ERROR Output BOOL I、Q、M、D、L 状态参数 ERROR: •ERROR=1:处理作业时出错。STATUS 提供了错误类型的详细信息。参数 声明 数据类型 存储区 说明 STATUS OutputWORD M、D 状态参数 STATUS:错误信息 CONNECT InOut ANY D 指向相关连接描述信息 (UDT 65)的指针 另请参见 • 为 TCP 和 ISO on TCP 通信连接分配参 数 (页 8751) • 为本地通信 UDP接入点分配参数 (页 8756) 注:可通过这两种方式输入 CONNECT 参 数: •juedui。示例:P#DB13.DBX0.0 字节 64 • 符号。示例:CONN_DB.Conn1有关有效数据类型的更多信息,请参见“有效数据类型概述。TDISCON: 终止通信连接 (S7-300, S7-400) 与 TCP 和ISO on TCP 一起使用 指令“TDISCON”可以终止 CPU 与某个通信伙伴之间的连接。 与 UDP 一起使用“TDISCON”指令可以关闭本地通信接入点。 这意味着,用户程序与操作系统通信层之间的连 接被终止。 功能描述“TDISCON”指令为异步执行,也就是说,作业的处理可以延长并跨越多个调用。 使 REQ = 1,调用指令“TDISCON”,可以启动连接终止作业。 “TDISCON”指令成功执行完毕之后,为指令“TCON(页 8771)”指定的 ID 不再有效,且不能 用于发送或接收操作。 其作业状态由输出参数 BUSY 和 STATUS指示。此时,STATUS 相当于该异步指令的输出参数 RET_VAL(另请参见: 同步指令和异步指令之间的不同之处(页 6480)). 参数 下表列出了指令“TDISCON”的参数: 参数 声明 数据类型 存储区 说明 REQ InputBOOL I、Q、M、D、L、 T、C 在上升沿时,启动相应作业以终止 ID 所指 定的连接。 ID Input WORD M、D或常数 指向使用“TCON (页 8771)”所建立的连 接的引用。 取值范围: W#16#0001 至 W#16#0FFFDONE Output BOOL I、Q、M、D、L 状态参数,可具有以下值: • 0: 作业未启动,或者仍在执行过程中 • 1:作业已经成功完成 BUSY Output BOOL I、Q、M、D、L 状态参数,可具有以下值: • 0: 作业尚未启动或已完成 •1: 作业尚未完成。 无法启动新作业。参数 BUSY、DONE 和 ERROR 使用 BUSY、DONE、ERROR 和 STATUS参数可以检查作业的状态。 参数 BUSY 表示作业正在 执行。 使用参数 DONE,可以检查作业是否已成功执行完毕。 参数 ERROR被置位,表明 TDISCON 的执行过程出现了错误。 错误信息通过参数 STATUS 输出。 下表列出了参数 BUSY、DONE 和ERROR 之间的关系TSEND: 通过通信连接发送数据 (S7-300, S7-400) 说明“TSEND”指令可以通过现有通信连接发送数据。 功能描述 "TSEND"指令为异步执行,也就是说,它的执行可以延长并跨越多个调用。使 REQ = 1,调用 “TSEND”,将启动作业。 其作业状态由输出参数BUSY 和 STATUS 指示。此时,STATUS 相当于该异步指令的输出参数 RET_VAL。 另请参见:同步指令和异步指令之间的不同之处 (页 6480). 如果全部传送了待发送到本地接口的数据,则置位 DONE 输出参数。下表列出了 BUSY、DONE 和 ERROR 之间的关系。 通过该表格,可以确定“TSEND”的当前状 态。 BUSY DONEERROR 说明 TRUE 无关 无关 作业正在处理。 FALSE TRUE FALSE 作业已成功完成。 FALSE FALSETRUE 由于出错,导致作业结束。 错误的原因可以从参数 STATUS 中找出。 FALSE FALSE FALSE没有为该指令分配(新)作业。 说明 由于“TSEND”采用异步执行方式,在参数 DONE 或者参数 ERROR 的值变为TRUE 之前, 必须保证发送区的数据一致性。下表列出了指令“TSEND”的参数: 参数 声明 数据类型 存储区 说明 REQInput BOOL I、Q、M、D、L、 T、C 控制参数 REQUEST 在上升沿时启动发送 作业。 数据从 DATA 和 LEN指定的区域传出。 ID Input WORD M、D 或常数 指向相关连接的引用。ID 必须与本地连接 描述信息内的对应参数 ID相同。 取值范围: W#16#0001 至 W#16#0FFF LEN Input INT I、Q、M、D、L作业需要发送的Zui大字节数 另请参见:CPU、所用协议选项 (connection_type)以及可以传输的数据 长度之间的关系(页 8760) DONE Output BOOL I、Q、M、D、L 状态参数 DONE: • 0:作业未启动,或者仍在执行之中。 • 1: 数据已全部传输到本地接口,等待 发送。 BUSY Output BOOL I、Q、M、D、L• BUSY = 1:作业仍未完成。 无法启动 新作业。 • BUSY = 0:作业已经完成。 ERROR Output BOOLI、Q、M、D、L 状态参数 ERROR: • ERROR=1:处理期间出现错误。 STATUS 提供有关错误类型的详细信息。