我可以使用NI HSDIO修改板载内存上面已经存在的波形吗?



主要软件:
主要软件版本: 1.1
主要软件修正版本: 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>>PXI-6561, Digital I/O (DIO)>>High-Speed Digital I/O>>PCI-6562, Digital I/O (DIO)>>High-Speed Digital I/O>>PCI-6561, Digital I/O (DIO)>>High-Speed Digital I/O>>PXI-6562

问题: 我将一个很大的波形下载到了NI-HSDIO设备的板载内存上。有没有办法在不重新加载整个波形的情况下,修改板载内存中的波形的某些数据?我可以在运行时实现这个功能,还是必须首先停止任务才能实现这个功能?

解答: 是的,NI-HSDIO驱动允许用户修改板载内存上已经存在的波形,你可以在LabVIEW环境下使用niHSDIO Set Named Waveform Next Write Position VI或者在C/C++环境下使用niHSDIO_SetNamedWaveformNextWritePosition 函数。你还可以在运行时,也就是任务在进行的时候完成这个功能。你可以参考附件中的范例,按照以下的步骤来实现:
  1. 将初始的波形写到内存中。你需要确保对波形命名,因为你需要使用波形名称来修改板载内存中的波形。
  2. 开始生成。
  3. 当你需要修改板载内存中的已有波形的时候,你需要使用niHSDIO Set Named Waveform Next Write Position VI或者niHSDIO_SetNamedWaveformNextWritePosition函数来设置需要重写波形的位置和偏移。当你调用了这个VI或者函数以后,你只需要再使用另一个写入的命令将新的波形写入即可。需要注意的是,你无法修改原始波形的大小。上文所述的功能,只能允许你修改原始波形的数据的一个子集。
当你在波形生成的同时,修改波形,你可能会发觉新波形的初始几个周期并不如预期的一样。这是由于无法确定你的波形何时会被更新。例如,如果传输修改波形所耗费的时间大于波形产生的时间,板卡会对输出波形稍作修改,直到所有的波形都传输完毕。为了避免这个现象,建议你在修改波形的时候,先停止任务。

相关链接: Developer Zone Community: Modify Existing Waveforms in Onboard Memory with NI HSDIO

附件:





报告日期: 11/10/2009
最近更新: 07/25/2010
文档编号: 539B5SDE