今天在DAQmx程序设计中,发现没有所需要的属性节点。比如需要使用下图所示的AI.Coupling属性。
 
Picture
想到以前大概遇到过这样的问题,好像出现在I/O过滤的设定上面。
用鼠标右键点击“DAQmx通道”属性,在弹出的快捷菜单中选择“选择过滤”参见下图。
Picture
用鼠标双击“选择过滤”系统会弹出一个对话框,设定对话框中的“显示全部属性”后,点击确定后,就可以看到和选择“AI.Coupling属性”啦!
 
Picture
 
在撰写《LabVIEW编程思想》时,我遇到了困惑。
LabVIEW是一种编程语言,或者说LabVIEW是一种图形化编程语言,绝对没错!
LabVIEW是一种通用编程语言?,对此划问号。

理由是LabVIEW是一种基于可视化操作系统下的编程语言,而C、C++、Java则不然。
假如,LabVIEW是一种通用编程语言,它可以用来编写操作系统吗?我认为不行!


 
以前作的一个程序在LabVIEW8.5.1下打包,配备DAQmx8.7、MAX4.1、LabVIEW8.5.1Runtime,制作成安装包后大约700M。压缩后一个CD肯定装得下。

这次源程序不变,仍在LabVIEW8.5.1下打包,配备DAQmx9.0.2、MAX4.6、LabVIEW8.5.1Runtime,制作成安装包后大约1G。压缩后一 个CD肯定装不下,很讨厌。

看来NI应该在这方面下下功夫了,至少应该作的更智能化一些。比如是否可以根据使用的硬件自动配置所需的驱动程序。

在论坛上曾看到有一个老外谈到,通常的情况下他将设计完成的程序另存到LabVIEW7的版本,然后在打包,具他讲这样的安装包大小在200-300M。
   
不知是否真的是这样?以后有机会应该试试!

 
Picture
 
      看到许多网友在制作安装包时出现的”定位“问题后无法完成安装包的制作。
      这个问题好像以前谈过,但是没有引起重视。这两天打包时也遇到这样的问题。这里简单的谈谈我的认识和理解。
 
 
      在LabVIEW2009的帮助文件中看到了这样的说法。
Picture
      对“显示缓冲区分配”有了新的改进,对比之下看了看。
 
有网友问到:
      我在您的空间看到了您关于labview安装文件的制作过程,我按照制作了一遍之后。在其它机器可以运行,但是我在labview中加载的ActiveX控件无法加载,我的ActiveX已经注册,并可以用其他应用程序加载。您可否告诉我还需要设置什么相关选项。

 
      在许多场合我都谈到过:在函数选板上,图标背景为浅黄色的是“内置函数”,内置函数于内置vi或子vi间的最大差别就是我们无法打开它。可是事实并非如此。
 
      最近在整理过去的程序时发现,很多程序设计的看起来很合理,没有任何违反原则的问题出现。但实质确是没有能够做到、更清晰、更简洁、更易读。
      下面我们来看一个比较常见的问题。

 
      STOP和EXIT是Application Control函数选板上的两个内置函数。STOP相当于点击了工具条上的Abort Execution按钮;EXIT用来停止所有运行中的vi然后退出LabVIEW开发环境。
 

     在某项目的测试中,要求双通道同步采样,且采样速率高达到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