我应该如何在超时后获取NI-HSDIO的数据



主要软件:
主要软件版本: 1.0
主要软件修正版本: N/A
次要软件: LabVIEW Run-Time Engine
硬件: Digital I/O (DIO)>>High-Speed Digital I/O>>PXI-6551, Digital I/O (DIO)>>High-Speed Digital I/O>>PXI-6552, Digital I/O (DIO)>>High-Speed Digital I/O>>PCI-6551, Digital I/O (DIO)>>High-Speed Digital I/O>>PCI-6552, Digital I/O (DIO)>>High-Speed Digital I/O>>PCI-6541, Digital I/O (DIO)>>High-Speed Digital I/O>>PCI-6542, Digital I/O (DIO)>>High-Speed Digital I/O>>PXI-6542, Digital I/O (DIO)>>High-Speed Digital I/O>>PXI-6541

问题:
我使用NI-HSDIO的参考触发进行数据采集。我想在我没有收到触发信号的时候,仍旧可以获取板卡的板载数据,这个可以实现么,应该如何实现呢?


解答:
首先,这是可能的,在下面的链接中就有展示在LabVIEW实现上述要求的步骤。这些步骤详细地描述了如何在超时错误后仍然获取到板卡的数据。
1. 在发生超时错误的后面增加一个case结果或者if语句,需要注意我们要知道错误超时的代码是-1074118624。参考下面的图片关于超时错误的信息。


 
2. 在发生错误的case分支里面,清除错误并且更改驱动所取数据的位置。我们可以使用清除错误的VI或者手工的方式来清除错误。当设置了参考触发以后,默认情况下驱动取回对应于第一个触发发生前的数据,如果取数据发生超时说明没有触发前得数据。为了更改这样的属性,我们可以使用niHSDIO Fetch Relative To and Fetch Offset 属性。

在LabVIEW中,上述属性的位置在:
Dynamic Acquisition»Fetch»Fetch Relative To
Dynamic Acquisition»Fetch»Fetch Offset


在C和C++中,需要使用niHSDIO_SetAttributeViInt32 和 niHSDIO_GetAttributeViInt32这两个函数来完成设置。这些信息都可以在NI Digital Waveform Generator/Analyzer Help中可以找到,上述的帮助文件在Programs»National Instruments»NI HSDIO»Documentation中。
3. 为了确保在没有触发信号的时候能够获取大量的数据信息,需要指定一个比较大的记录大小。第一个Fetch函数(只有在参考触发发生的时候)被设置为获取这些数据的一个比较小的子集。


相关链接: Developer Zone Community: Handling the Timeout Error to Fetch All Data from Onboard Memory with NI HSDIO Devices

KnowledgeBase 44KF4H17: Triggering An Acquisition Session of a HSDIO Device

Products and Services: High-Speed Digital I/O

Support: NI-HSDIO Driver Software


附件:






报告日期: 11/09/2009
最近更新: 08/08/2011
文档编号: 538FETDE