同时活动作业的Zui大数量同时活动作业的Zui大数量与 CPU 的 OUC 连接的Zui大数量相同。请求连接 ID,并在必要时指定连接属性 (S7-1200,S7-1500) 预留连接资源 可使用 MODE=0 调用 TCONSettings。可以分配相关参数,如下所示: • 在参数 ID处,输入一个值为 0 的变量。 • 如果不想为关联的连接指定特性,则将 OPTION 参数保留为空。另一方面,如果要为关联的连接指定特性,则将有效值分配给参数 OPTION。另请参见“可以使用“TCONSettings”读取或指定哪些连接属性? (页 5709)” 在假定 DONE 参数的值为 TRUE之后,在 ID 参数处,用于建立新 OUC 连接的连接 ID 可用, 如有必要,还会事先为该连接指定所需的特性。该 ID 使用了OUC 连接资源。已经创建了相 应的诊断对象。因此已准备好相应的连接,但外部通信伙伴尚未得知。没有为连接指定任何详细信息,既没有指定连接伙伴和协议,也没有指定接口和具有连接描 述的数据块。 说明 建立连接TCONSettings 未建立连接。 建立关联的连接 如果要在“TCONSettings”有效版本后建立相应连接,请按下列步骤操作:• 保存“TCONSettings”提供的连接 ID,并使用该 ID 调用指令“TCON”。 可用的 OUC连接数不会更改,因为在调用“TCONSettings”时已将该连接考虑在内。 释放连接 ID 和相应的连接资源如果要释放“TCONSettings”提供的连接 ID 和相应的连接资源,请按下列步骤操作: • 使用此 ID调用“TDISCON”指令: CPU 切换到 STOP 模式 CPU 转入 STOP模式时,系统将再次释放“TCONSettings”提供的所有连接 ID 和相应的连接资 源。
“RUN”模式下进行下载 说明在“RUN”操作状态下进行更新下载时,不会释放任何连接资源。 为防止“RUN”模式下进行下载时预留的连接 ID丢失,请执行以下操作步骤: • 将这些 ID 存储在下载后不初始化的存储区中。 •下载之前,通过调用“TDISCON”指令释放预留的连接。 读取已准备好的或现有的连接的属性 (S7-1200, S7-1500)读取已准备好的或现有的连接的属性 可使用 MODE=1 调用“TCONSettings”。可以分配相关参数,如下所示: • 在 ID参数中,指定对所需连接的引用。 • 在 OPTION参数中,指定要读取的连接属性。另请参见“可以使用“TCONSettings”读取或 指定哪些连接属性? (页 5709)”在假定 DONE 参数的值为 TRUE 之后,所需属性的当前值在 OPTION 指定的数据区域中可用。指定已准备好的或现有的连接的属性 (S7-1200, S7-1500) 指定已准备好的或现有的连接的属性 可使用 MODE=2调用“TCONSettings”。可以分配相关参数,如下所示: • 在 ID 参数中,指定对要为其分配属性的连接的引用。 • 在OPTION 参数中,指明要指定的连接属性。另请参见“可以使用“TCONSettings”读取或 指定哪些连接属性?(页 5709)” 在假定 DONE 参数的值为 TRUE 之后,已为连接分配所需的属性。 通过 OUC 和 Modbus指令创建的连接 以“_C”结尾的 OUC 库指令和 MODBUS-TCP 库的指令通过内部调用指令“TCON”来建立连接。可以使用“TCONSettings”更改此类连接,方法与通过显式调用“TCON”创建的连接相同。可以使用“TCONSettings”读取或指定哪些连接属性?(S7-1200, S7-1500) 通常可以读取和指定的连接属性 可以使用“TCONSettings”指令读取和指定以下连接属性:• TCP 连接的终止方式。另请参见“终止 TCP 连接 (页 5710)” • UDP 多播的 TTL 值(仅S7-1500 CPU)。另请参见“更改 UDP 多播的 TTL 值 (页 5711)”协议或接口与实际可读或可指定的连接属性之间的关系 并非每个协议或接口都可以读取或指定所有上述连接属性。下表显示了各个协议或接口可以使用的连接属性。1) 不能为已组态的连接调用“TDISCON”。因此,无法以有序的方式结束连接。 2) 此属性仅在 UDP组播中可用。组播 TTL 的默认值为 1。 3) UDP 在协议级别没有连接,因此不需要终止。 连接属性的规范冲突每个可预定义的连接属性仅适用于特定的协议或接口。因此,连接属性规范和所需的协议或接口之间可能会发生冲突。在这种情况下,“TCONSettings”返回 STATUS 参数中的值 W#16#8090。
终止 TCP 连接(S7-1200, S7-1500) 如何终止 TCP 连接? 可以通过以下两种方式终止现有的 TCP 连接: • 通过TCP-Reset(默认) 发送帧且标头中的 RST 位置位后,将关闭连接。相关资源将立即删除并释放。其余数据既不发送也不会传送到用户程序中。 说明 终止固件版本小于 V2.9 的 S7-1500 CPU 和固件版本小于 V4.5 的S7-1200 CPU 中的 TCP 连接 在固件版本小于 V2.9 的 S7-1500 CPU 和固件版本小于 V4.5 的S7-1200 CPU 中,将始终 通过 TCP 复位终止 TCP 连接。 • 通过 TCP-Finish 如果已将TCP-Finish 设为终止连接的方式并随后调用指令“TDISCON”,则在使用 DONE=TRUE终止“TDISCON”之后,从用户的角度来看,该连接为关闭状态,即连接 ID 再 次可用。但是,在模块的 TCP/IP协议栈的较低层中,资源已经分配完一段时间,而属于 该连接的诊断对象也是如此。 如果使用 TCP-Finish删除多个连接,并在释放资源定时器到期前预留(使用 “TCONSettings”)或建立(使用“TCON”)连接,则可能导致资源瓶颈。TCP-Finish 的条件 必须满足以下条件,才能使用 TCP-Finish 以有序的方式终止连接: • 使用的协议为 TCP。 •关联的接口位于 CPU 上。 • 连接终止的原因是调用了“TDISCON”指令。 说明 转换到 STOP 期间终止 TCP 连接在转换到 STOP 期间,始终通过 TCP-Reset 终止 TCP 连接。用于终止连接的SDT:TCON_TCPTermination 用于终止连接的 SDT 具有以下结构: 参数 数据类型 起始值 说明GracefulShutd own Bool FALSE • FALSE:使用 TCP-Reset 终止连接。 • TRUE:使用TCP-Finish 终止连接。 更改 UDP 多播的 TTL 值 (S7-1500) UDP Multicast 的 TTL 值与所有 IP 数据包一样,发送到组播地址的 UDP 数据包(UDP:用户数据报协议)中包含 TTL 值(TTL:生存时间)。TTL值用于测量数据包被允许传播的距离。CPU 为其分配值 1;因 此,发送到组播地址的 UDP 数据包不能跨路由器边界发送。 更改 UDPMulticast 的 TTL 值的程序 对于已建立的连接(已设定或已组态),要在 UDP Multicast 中更改 TTL值,请按下列步骤 操作: 1. 可使用 MODE=2 调用“TCONSettings”。在参数 ID中输入对所需连接的引用,并在下面的参数 OPTION 中指定指向 SDT 的指针。 2. 调用“T_RESET”。 说明 新 TTL值的有效性 即刻生效,发送到 Multicast 地址的 UDP 数据包包含新 TTL 值。因此,可以通过(新 TTL 值 -1)路由器发送这些数据包。 新 TTL 值规范的条件 必须满足以下条件,才能指定新 TTL 值: • 使用的协议为 UDP。 •远程地址为 Multicast 地址。