定义 TCP 传输

借助 TCP 传输定义面板,您可以指定 TCP 服务器应用的 IP 地址或主机名以及端口号。您还可以使用其指定:

  • 连接和事务超时
  • 连接模式:面向连接或无连接
  • 传输是否会接收并处理从 TCP 服务器应用发送的响应数据。

流程


请按照以下步骤操作:

  1. 使用工作台访问节点并导航到传输面板,然后选择 New(新建)按钮以调出传输定义面板。
  2. Name(名称)参数中,键入传输的唯一名称。
    TCP 传输名称长度最多为 64 个字符,可以包括字母、数字和下划线字符。您将无法键入无效字符。例如,不允许输入空格。您将无法在名称中插入空格。
  3. 使用 Transport Type(传输类型)向下箭头,然后选择 TCP
    Transport(传输)窗口会发生更改,以容纳 TCP 传输的定义。

Parameters(参数)选项卡


参数 描述
Host(主机) 输入您想要发送消息的计算机的 IP 地址或主机名称。这是 TCP 服务器应用运行的位置。
Port(端口) 用于连接到 TCP 服务器应用的端口号。
Mode(模式) TCP 连接管理的类型
选项有:
  • connection_oriented(面向连接):事务服务器建立并维护 TCP 连接,以便随后将数据发送到 TCP 服务器应用。
  • connectionless(无连接):事务服务器建立 TCP 连接,将数据发送到 TCP 服务器应用,然后关闭该连接。在传输处理下一个 Transaction(事务)动作提供的数据时,将建立一个新的连接。
Load transport at initialization(在初始化时加载传输) 当节点启动时,可以选择使用 TCP 传输对与 TCP 服务器应用的连接进行测试。
Include header in payload(将标头纳入有效负载) TCP 传输发送的数据或有效负载将以 8 字节标头为开头。前 4 个字节是数据的长度(不包括 8 字节标头),而接下来的 4 个字节设置为 0 并予以保留,以供将来使用。通过发送带有数据的标头,TCP 服务器应用可以更轻松、更高效地知晓要接收和处理的字节数量。
标头的字节排序采用大端法。
Handle Response(处理响应) 该选项表示 TCP 传输可以接收 TCP 应用程序发送的响应数据。
仅当 Mode(模式)设置为 connectionless(无连接)并且未选中 Include header in payload(将标头纳入有效负载)复选框时,才允许使用此功能。
您可以指定在传输映射中如何处理响应数据。
选择此选项后,将如下所述启用其他字段。
Timeout (sec)(超时(秒)) TCP 传输将等待来自 TCP 服务器应用的响应数据的秒数。此值应小于 Timeout(超时)选项卡上指定的 Execution(执行)超时。如果正在处理的事务动作具有输出数据参数,则 TCP 传输将等到出现以下情况之一:
  • TCP 服务器应用发送响应数据并关闭套接字。TCP 传输会按照传输映射中的定义,将响应数据映射到输出映射参数。
  • 收到的数据量已达到Max Msg Size(KB)(最大消息大小(KB))。这将导致事务动作失败。
  • Timeout (sec)(超时(秒))数已过。这将导致事务动作失败。
Max Msg Size(KB)(最大消息大小(KB)) TCP 传输将在 TCP 服务器应用的响应中接收的最大响应消息大小(千字节)。如果响应中有更多字节可用,则传输会将其报告为错误。

Timeout(超时)选项卡


参数 描述
Connection (seconds)(连接(秒)) 系统将尝试连接到目标 TCP 服务器应用的时长。有关更多信息,请参阅连接超时
Execution (seconds)(执行(秒)) 系统应等待(建立连接后)TCP 事务完成的时间。有关更多信息,请参阅执行(秒)
如果已将 TCP 传输定义为处理响应数据,请确保该值大于 Handle Response(处理响应)部分中指定的“超时”。

Custom Payloads(自定义有效负载)选项卡

有关自定义有效负载选项卡上的信息,请参阅自定义有效负载选项卡

测试并保存 TCP 传输

  1. 要测试连接,请选择 Validate(验证)。验证包括建立与 TCP 服务器应用的连接。
  2. 如果没有收到错误,请选择 Save(保存)。传输定义保存至节点中。

新传输的名称已添加至 Transports(传输)选项卡中,可用于传输映射。

限制(无法检测到连接已重置)

此限制适用于 13.1 版和更早版本(对于 Mitsubishi MESInterface IT 产品,则为 1.12N 版和更早版本)。在 13.2 版(和 1.14Q 版)中,TCP 传输对面向连接模式的支持包括可以更好地探测终止连接的伙伴 TCP 服务器应用。

TCP 传输可能未检测到 TCP 服务器应用已终止连接。
发生这种情况时,将根据节点和 TCP 服务器应用所涉及的操作系统发生特定的行为。在 TCP 服务器应用终止连接之后,通过 TCP 传输发送的事务在传输端可能已成功,但是 TCP 服务器应用实际上并未接收到数据。

1可能的解决方法

如果应用逻辑允许,则可以使用触发动作来控制 TCP 连接的状态。在使用“事务”动作通过 TCP 传输发送数据的触发器中,在“事务”动作周围插入控制传输状态(恢复操作)和控制传输状态(挂起操作)。每次触发发送事务时,这都将导致 TCP 传输在动作之前连接(“恢复”),并在动作之后断开连接(“挂起”)。
由于在两次数据发送之间不维持连接,因此大大降低了旧连接的可能性。

相关主题

超时选项卡

自定义有效负载选项卡