使用面向Arduino的LabVIEW接口报5003错误:发生超时

更新 Jun 20, 2023

适用于

软件

  • LabVIEW
  • Third Party Add-Ons

其他

  • Arduino
  • 面向Arduino的LabVIEW接口(LIFA)

问题详述

我有一个调用LabVIEW接口的Arduino工具包的VI。为什么在运行我的应用程序时会产生以下错误?

使用LabVIEW接口调用Arduino.lvlib时,LabVIEW接口出现错误5003:Analog Read Pin.vi.尝试从Arduino读取时发生超时。

解决方案

错误5003表示LabVIEW已失去与Arduino的连接。使用无线连接(如Xbee或蓝牙)时,当VI与Arduino通信或无线信号强度较差时,断开USB或串行电缆可能会导致连接中断。

实际上,当LabVIEW无法从Arduino读取数据一段预定义的时间(默认情况下每次预定义100毫秒,10次重试)时,就会发生超时。

请按照以下故障排查步骤解决问题:
  1. 如果使用有线连接或使用无线连接时信号强度足够强,请确保所有电缆都已牢固连接。位于台式计算机背面的USB端口通常比前面板的USB端口电源更加稳定。如果您在台式计算机上,则尽可能使用这些端口。如果您使用的是笔记本电脑,请确保在故障排除过程中插入笔记本电脑。
  2. 检查以确保为Arduino板指定了正确的波特率和COM端口,以便正确定义通信协议。未能指定正确的设置可能会导致此错误。
  3. 每个使用LabVIEW Arduino(LIFA)工具包的程序都应以Init命令开头,并以Close命令结束。确保尽可能避免使用LabVIEW的Abort按钮。当您使用Abort按钮中止任务时,您的代码将无法运行Close VI。下次运行代码时,Arduino将以未知状态启动,将可能导致错误5003 。您可能需要重新启动电路板并重新加载LIFA固件才能解决此问题。
  4. 确保没有其他打开的程序也试图与Arduino进行通信。例如,打开Arduino集成开发环境(IDE)可能会保留Arduino资源,从而导致LabVIEW尝试访问COM端口时出现错误5003
  5. 您可以尝试打开与相同I / O引脚交互的内置示例程序,以查看是否仍然出现错误5003 。这中做法可以确保Arduino能够与您的计算机实际进行通信。
  6. 您可以通过修改Send Receive功能中超时最大重试次数的输入终端进而手动更改超时时间或超时重试次数。让上位机具有更长的超时时间值或更多尝试次数(重试)可以与您的设备建立通信。

相关信息

注意:用于Arduino(LIFA)的LabVIEW接口包已被LINX取代。强烈建议迁移到LINX,因为LIFA未来并不会做更新。请参阅How to download Digilent LINX for LabVIEW?获得更多信息。