LabVIEW中的VISA读取发生错误1073807253

更新 Aug 3, 2023

适用于

软件

  • Measurement and Automation Explorer (MAX)
  • LabVIEW

驱动

  • NI-VISA
  • NI-Serial

问题详述

我正在以固定时间间隔从第三方设备输出一系列字符,并使用VISA读取VI读取它。但是,我在读取时出现此错误:

Error -1073807253 occurred at an unidentified location
Possible reason(s):
VISA: A framing error occurred during transfer. 

解决方案

错误-1073807253是帧错误。串行数据一次传输一个字节,每个字节都有一个特定的格式,包括起始位,数据位,奇偶校验位和停止位。当接收到某字节数据,且不满足预期的格式时,会发生帧错误。以下几种原因可能会造成此类错误:

A. 在从该端口接收到第一个字符时,端口可能尚未完全完成其配置。在这种情况下,您可以在VISA配置串口VI之后设置延迟(大约10-100毫秒),这样可以使得让串行端口有足够的时间完成自我配置。然后,通过使用VISA清空I/O 缓冲区VI,您可以清除缓冲区中的任何无效数据。完成这些操作之后,应该能够正确的读取数据。您的程序框图可参照下图所示。



该图像是LabVIEW VI片段,包含了您可以在项目中使用的LabVIEW代码。如要使用该片段,请右键单击此图像,将其保存到计算机,然后将文件拖到LabVIEW程序框图中。

B. 读/写任务完成之前,您可能正在关闭VISA资源。

C. 您的第三方设备和接收串行端口可能配置了不同的设置。要解决此问题,请打开NI Measurement&Automation Explorer(NI MAX)并在设备和接口下选择您的串行端口。验证设置选项卡中VISA资源的名称波特率、数据位奇偶校验停止位是否都与您的第三方设备的设置相匹配。

注意 :您可以在运行时以编程的方式更改这些设置,使用VISA配置串口VI配置(如上述A中程序框图所示),也可以在NI-MAX中完成配置,如下图所示。


D. 您的硬件接线可能存在松动,需要检查以确保连接线已牢固插入。


E. 您可能使用错误的串行连接线或错误类型的串行连接线。尝试使用其他串行连接线并检查设备手册,以确定是否需要使用交叉或者直连串口连接线。相关内容请参阅文章:我应该使用交叉(Null Modem)还是直连(Straight Through)串口连接线?


F. 在串行线路上可能存在噪音,您可以尝试将串行电缆从电源线、显示器或其他潜在噪声源移开。


G. 驱动程序的安装可能存在错误。要使用串行设备,您需要在计算机上安装LabVIEW、NI-Serial和NI-VISA。如果在您已尝试上述所有方法后,仍然报错,则您可能需要修复这些安装。请参阅文章:Force Reinstall Non-Working or Corrupt NI Software (强制重新安装不正常或损坏的NI软件)

相关信息

有关使用VISA配置串口VI的样例,请参阅范例简单串行。该范例可以在NI范例查找器中的硬件输入与输出 -> 串口中访问(如何使用范例可参阅链接:查找LabVIEW范例 )。