0

我正在使用 USB-6356 DAQ 板通过 SPI 控制 IC。

我正在使用NI SPI 数字波形库的一部分来创建数字波形,然后使用一个小型包装 VI 来传输代码。

我的 IC 在 RTD 上测量温度,目前控制 VI 有一个“推动单次测量”样式按钮。当我按下它时,运行 SPI 通信的一系列其他 VI 返回温度。

在按了一些次数后(非常快速地单击按钮会使这在时间上更快地发生,但不一定在单击次数上),VI 生成错误 -200361,名义上是 DAQ 板上的 FIFO 缓冲区溢出。

我不清楚这是否真的是问题的原因,但我不这么认为......

描述 USB-600{0,8,9} 设备此错误的NI 指南看起来很有希望,但遵循这些建议并没有帮助我。我用“DI.UsbXferReqCount”代替模拟等效项,因为我的读取任务是数字的。读取默认返回 4,所以我将属性更改为 write 并选择了“1”,但这没有什么区别。

我尝试使用设备管理器卸载 DAQ 板,拔下并重新插入,但这也没有改变任何东西。

我的猜测是,在读取和写入任务的“有限样本”部分结束后会生成额外的时钟样本,这些可能会添加溢出的空白数据,但返回的温度并不表示奇怪的数据,而且我会假设如果是这种情况,我的 VI 将无法将读入的数据解释为正确的温度。

我附上了我正在使用的 Transmit VI 的框图图像,但实际上要让它运行需要整个 VI 库。

控制 VI 附在NI 论坛上几乎相同的论坛帖子上

Transmit VI的框图

4

1 回答 1

0

我认为 USB-6356 没有用于数字信号的输出缓冲器。你可以用NI-MAX试试,如果你选择数字输出,你可能会发现Samples没有参数。它一次只输出一个布尔值(0或1)。

您也可以在 LabVIEW 中使用 DAQ 助手,当您配置数字输出时,如果您选择 N-Samples 或 Continuous samples,然后按 OK 按钮,这里会出现一个对话框,告诉您选择的行没有缓冲区。

于 2016-07-19T02:18:14.537 回答