# TCPClient

TCPClient 函数将电子表格单元格定义为 TCP/IP 客户端，它发起与另一个 TCP/IP 设备的通信以通过网络共享数据。

注意:

- 在添加 TCPClient函数或将作业加载到电子表格时，TCP 电子表格和函数和另一个 TCP/IP 设备之间的连接会立即开始。

- TCPClient 在收到数据包后生成事件。此事件更新电子表格。

## TCPClient 输入

参数 | 说明
--- | ---
主机名 | 指定与您建立连接的 TCP 设备的名称或 IP 地址。如果不指定主机名，则 TCPClient 函数返回 #ERR。
端口号 | 指定 TCP/IP 设备之间建立连接的端口号。端口号是一个无符号的 16 位端口号。0 不是有效端口。默认端口号为 3000。 注意: 您需要在服务器上分配此处输入的端口号。
数据包类型 | 定义在 TCP/IP 设备之间通信的数据字符串的格式。
类型 | 说明
--- | ---
0 = 字符串 CR+LF（默认） | ASCII 格式。在 TCP Spreadsheet 函数发送时，软件将 ASCII 字符 13（回车）和 10（换行）追加到数据字符串；接收时，CR+LF 结束数据字符串。
1 = 字符串 CR (13) | ASCII 格式。在 TCP Spreadsheet 函数发送时，软件将 ASCII 字符 13（回车）追加到数据字符串；接收时，CR 终止数据字符串。
2 = 字符串 LF (10) | ASCII 格式。在发送 TCP 电子表格函数时，软件将 ASCII 字符 10（换行）追加到数据字符串；接收时，LF 终止数据字符串。
3 = 字符串 Nullchar (0) | ASCII 格式。在发送 TCP 电子表格函数时，软件将 ASCII 字符 0 (Nullchar) 追加到数据字符串；接收时，Nullchar 终止数据字符串。 注意: 无论数据包类型如何，在 In-Sight 视觉系统 接收数据时，ASCII 字符 0 (Nullchar) 终止数据字符串。
5 = 带有自定义终止符的字符串 | ASCII 格式。TCP Spreadsheet 函数发送时，软件将指定的终止符追加到数据字符串；接收时，指定的终止符终止数据字符串。
超时 | 等待 TCPClient 在中止连接尝试之前建立 TCP/IP 连接的毫秒数（1000 到 15000；默认值为 1000） 如果没有连接，WriteDevice 尝试重新连接。如果在超时期间尝试不成功，则会显示 #ERR。如果有连接但 TCPClient 在超时期间无法将数据包排队到网络套接字中，则 WriteDevice 还显示#ERR。TCPClient不返回 #ERR。
终止符 | 指定在为数据包类型指定带客户终止符的字符串或带客户终止符的二进制时使用的字节值。
最大数据包大小 | 指定 TCPClient 可以接收的最大数据包大小。如果远程发送者超过最大数据包大小，ReadDevice 显示 #ERR。

## TCPClient 输出

返回 | Device 数据结构。如果任何输入参数无效，则返回 #ERR。
结果 | 在将 TCPClient 函数插入单元格时，WriteDevice 函数会自动插入到右侧的相邻单元格中。

## 示例

配置名为 SYSTEM0 的In-Sight 主机 视觉系统，关联的单元格包含以下参数值：

A3=TCPClient("SYSTEM1",3000,0,1000,0,1024)

B3=WriteDevice($A$0,A3,C3)

假设您配置第二个主机系统，名为 SYSTEM1，其中包括 TCP/IP 服务器，关联的单元格包含以下参数值：

A4=TCPServer(3000,0,0,1024)

B4=ReadDevice(A4)

SYSTEM0 和 SYSYEM1 两个系统都联机。

每当采集 SYSTEM0 上单元格 $A$0 中的默认图像时，单元格 A3 中的 TCP/IP 客户端就会通过端口 3000 与 SYSTEM1 上单元格 A4 中的 TCP/IP 服务器建立连接（如果尚未连接）。

然后，SYSTEM0 上单元格 B3 中WriteDevice 函数将单元格 C3 中的数据导出到 SYSTEM1 上单元格 B4 中ReadDevice 函数。