前几天,接一个技改小项目,就是做一个转速测量装置的改造。传感器仍为原来的转轮式传感器,输出为数子脉冲。该传感器需要一个外部电源(12V),考虑这个决定采用4槽cDAQ为主体,利用cDAQ为传感器供电,插入一块9401或9402实现正交编码转速测量。

Picture
4槽cDAQ机箱
由于仅插入一块C模块,感觉有些浪费。因要为传感器供电也是没有办法的选择。不幸的是订单刚下后,NI就发布又推出一款可以有计数器功能的以太机箱,同样可以满足我的使用要求。

Picture
单槽以太cDAQ机箱
二者之间的价格差3倍多,这次赔大发了,又一次选择失误!郁闷得很!

我喜欢下面的这款机箱。但这次没机会用了!

 
今天在DAQmx程序设计中,发现没有所需要的属性节点。比如需要使用下图所示的AI.Coupling属性。
 
Picture
想到以前大概遇到过这样的问题,好像出现在I/O过滤的设定上面。
用鼠标右键点击“DAQmx通道”属性,在弹出的快捷菜单中选择“选择过滤”参见下图。
Picture
用鼠标双击“选择过滤”系统会弹出一个对话框,设定对话框中的“显示全部属性”后,点击确定后,就可以看到和选择“AI.Coupling属性”啦!
 
Picture
 
我们知道,Mac版的LabVIEW不能使用DAQmx,它所使用的DAQ驱动被称为:DAQmx Base。

下面给出Mac版的LabVIEW与DAQmx Base间的关系。
Picture
上面的LabVIEW版本是指Mac LabVIEW的版本。
 
 
      Traditional DAQ7.4.4仅支持WindowsXP操作系统,可是有时候还需要看一些老的例程,没有Traditional DAQ则看不成。
      最后还是在NI的网站上找到了支持Vista的Traditional DAQ。但是是Traditional DAQ7.5 Beta。


Picture
下载连接

      安装后,在函数选版上就可以看到Traditional DAQ7.5 Beta的函数。

     实际上,为了实现多元化还安装了DAQmx Base3.3。

Picture
Picture
 
      最近,NI发布了两款cDAQ机箱,分别是NI 9174(4槽)和NI 9178(8槽)。
 

     在某项目的测试中,要求双通道同步采样,且采样速率高达到1MHz/s.

     使用NI所提供的一个例程:Multi-Device Synch-Analog Input-Cont Acquisition.vi.程序框图如下图所示.

      数据采集卡用PXI-6251两块
      PXI-1033机箱
      IBM-400R笔记本电脑

         按上例图进行测试发现,当采样速率设置为:100KHz/s以上时,CPU工作在100%的状态.参见下面的程序前面板图例.

     按常规解决办法,可在While循环中加入一个定时100ms左右的定时器,加入后不起作用,修改定时时间,也没有用.

     PXI-6251的最高采样速率1.25MHz/s,应该不会有问题(当前仅工作在100KHz/s).
     PXI-1033的总线带宽110M,也不会有问题.
     IBM-400R是双核2.0G的更不会有问题.
     Vista,LabVIEW8.6.1,MAX4.5,DAQmx8.9
     那么问题到底出在什么地方呢?百思不得其解!

     求助于NI的AE也没有遇到这样的问题,只好双方都继续做试验共同寻求解决方案.

     我上网查询有关资料,发现有用DAQmxRead属性节点Sleep来解决的例子,我照此试了一下,没有能够解决问题,只是试着给几个数值.

     无奈中,使用了定时While循环来代替普通的While循环,这下可好了,即便是工作在1MHz/s的采样速率下也没有问题了.

     这里面的内部机理我不清楚,但是问题解决了!
     此后,NI的AE也给出了解决方案,就是利用属性节点.见下图.

     到底哪个方法更合理,我不清楚?
     大家遇到这样的问题可以分别试试看.

     至少我们一再强调的打开"任务管理器"监视CPU的运行状态,还是十分必要的.

     附上NI AE提供的解决方案.


20090224020724.zip
File Size: 26 kb
File Type: zip
Download File



Google Analytics