我正在使用USB-6356 DAQ板通过SPI控制IC。
我正在使用NI SPI Digital Waveform library的部分来创建数字波形,然后使用一个小的包装器VI来传输代码。
我的IC测量RTD的温度,目前控制VI有一个“推送单次测量”样式按钮。 当我按下它时,温度由运行SPI通信的一系列其他VI返回。
经过一定数量的推动(非常快速地点击按钮使得这种情况更快地发生,但不一定是点击次数),VI会产生错误-200361,这在DAQ板上名义上是FIFO缓冲区溢出。
我不清楚这是否真的可能是问题的原因,但我不这么认为......
NI guide describing this error for USB-600{0,8,9} devices看起来很有希望,但遵循这些建议对我没有帮助。我将'DI.UsbXferReqCount'替换为模拟等效,因为我的读取任务是数字的。读取默认值返回4,所以我将属性更改为写入并选择“1”,但这没有区别。
我尝试使用设备管理器卸载DAQ板,拔掉插头并重新插入,但这也没有改变任何内容。
我的猜测是,在“有限样本”部分结束后,为读取和写入任务生成了额外的时钟样本,并且这些样本可能会添加溢出的空白数据,但返回的温度并不表示奇怪的数据,我假设如果是这种情况,我的VI将无法将读入的数据解释为正确的温度。
我附上了我正在使用的传输VI的框图图像,但实际上要运行它需要一个完整的VI库。
控制VI附加到几乎相同的forum post at NI forums。
答案 0 :(得分:0)
我认为USB-6356没有用于数字信号的输出缓冲器。您可以通过NI-MAX尝试,如果您选择数字输出,您可能会发现样品没有参数。它一次只输出一个bool值(0或1)。
您也可以在LabVIEW中使用DAQ助手,当您配置数字输出时,如果选择N样本或连续样本,然后按OK按钮,会出现一个对话框,告诉您没有所选行的缓冲区。