解决方案
这种超时错误可能是由于错误地配置TCP/IP函数导致的,通常情况下只要正在接收数据,超时错误可以在没有损害的情况下清除。如果未收到数据,则下面有几个故障排除步骤可以尽量避免发生该错误。
如果使用特定的LabVIEW应用程序:
- 确保生成错误的VI正确设置了超时值。比如:使用HTTP客户端下的“GET.vi”从慢速服务器接收体量较大的字符串时,默认的10秒超时时间可能不够。
- 如果使用TCP/IP函数编写了可重入VI ,请尝试关闭可重入功能。因为可能会产生竞争状态,导致网络在写入或读取时变得忙碌从而发生超时。
- 超时错误可能是您的应用程序的预期行为。使用读取TCP数据函数接收数据时,TCP函数将在超时期间等待指定的字节数。如果该函数未收到足够的数字,它将返回收到的数据并显示错误56。有关清楚错误的详细信息,请参阅从错误簇中清除指定错误。
- 确保网络电缆已正确连接到每个系统,或已正确建立无线网络连接。
- 打开连接时,用IP地址代替域名来检查与域名服务器(DNS)相关的问题。
- 示例:使用“http://74.125.224.72/”而不是“http://www.google.com”
- 使用 telnet 命令检查 TCP 端口是否已打开,请参阅此文章 了解如何使用 telnet 命令。
- 如果 telnet 命令显示与 TCP 端口的连接失败,请联系贵公司的 IT 部门寻求协助或请求允许计算机使用并访问该 TCP 端口。 某些时候 IT 部门出于安全目的会阻挡某些 TCP 端口。
- 您还可以尝试导航到工具(Tools)» 选项(Options)» VI服务器(VI Server),将*加入到机器访问列表(Machine Access List)中,方法是点击列表底部的添加(Add),在计算机名称/地址字段中输入*,并确保选择允许访问(Allow access)。但是这将授予所有机器访问终端的权限。
- 尝试使用ping命令访问相关网络设备,以验证设备是否仍处于连接并通信的状态。
- 关闭计算机上安装的所有防火墙和杀毒软件以确保没有端口被屏蔽。
- 确保两个设备位于同一子网上,并且具有相同的子网掩码。有关配置NI网络设备的更多信息,请参见NI MAX中连接到RT终端时出现“不一致的IP设置” 。
- 检查过多的本地网络流量是否降低了您的网络通信速度,并导致传输时间超出预期。
- 如果您正在使用FTP VI,请检查所使用的密码是否包含任何不可打印的字符或空格。
- 确保发送信息的VI正在运行。
- 如果通信部分放在子VI中,请尝试将其从子VI中取出,并查看它是否在子VI之外工作。
- 尝试使用LabVIEW范例查找器中的范例“Simple TCP.lvproj”。
- 如果使用循环重复读取和/或写入,请尝试在循环中插入等待函数 (大约200 ms)。
如果使用VeriStand:
- 尝试仅指定控制器设置来部署空白的系统定义(System Definition)。
- 确保在系统定义中指定了正确的IP地址和控制器系统。
- 确保网络电缆已正确连接到每个系统,或已正确建立无线网络连接。
- 如果可能,尝试在主机PC和RT终端之间用以太网连接直连。
- 尝试使用ping命令访问相关网络设备,以验证设备是否仍处于连接并通信状态。
- 应尽量减少响应时间,以确保VeriStand有足够的时间来部署必需的依赖项,如自定义设备(Custom Devices)。
- 关闭主机上安装的所有防火墙和杀毒软件,确保没有端口被屏蔽。
- 确保两个设备位于同一子网上,并且具有相同的子网掩码。有关配置NI网络设备的更多信息,请参见NI MAX中连接到RT终端时出现“不一致的IP设置” 。
- 检查过多的本地网络流量是否降低了您的网络通信速度,并导致传输时间超出预期。
如果使用RT控制器VI:
- 确保连接到VI的MAC地址准确无误,并且格式正确。确保您的字符串控件或常量ID以十六进制格式显示数据,比如:0080 2F0A 14FF。如果您的字符串控件不是十六进制格式,请右键单击它并选择十六进制显示(Hex Display)。
如果在Open Suse 11.1上使用带有LabVIEW for Linux的“FTP传送文件.vi”或“等待TCP侦听器.vi”:
使用数据包嗅探进行故障排除:
如果上述步骤无效,请使用数据包嗅探程序查看数据是否通过网络发送。比如第三方工具Wireshark可以帮助您查看数据是否到达。如果没有数据到达且您看到此错误,则发送方设备或网络出现问题。如果数据到达Wireshark,且您仍然看到此错误,那么很可能是您遇到防火墙问题或TCP函数使用出错。 Wireshark官网提供
Wireshark下载,同时您可以将
Capture Filters与Wireshark一起使用,限制数据包只和某一个特定IP地址传输。
此外,如果数据包成功发送到网络,但终端设备没有响应,则终端设备的网络适配器可能存在问题。