cDAQ——计数器使用(4) 08/02/2011
在cDAQ——计数器使用(3)中,我们使用DAQ助手在cDAQ-9172上通过NI 940已经创建了一个脉冲发生器。现在我们将通过一个例程来实现同样的脉冲发生器。 2、使用NI提供的例子 在LabVIEW2009SP1的启动界面,点击打开“NI 范例查找器”选择: 〉硬件输入输出 〉DAQmx 〉生成数字脉冲 〉Gen Dig Pulse Train-Continuous.vi 该vi的前面板和程序框图如下: 对于这个例子,无需做任何改动既可以使用。使用时只需按硬件的物理通道设定既可(参见cDAQ图4-1)。 测量结果参见下图(如何测量后面会谈到)。 这样我们通过NI 提供的例程也完成了脉冲发生器的设计(管脚连接不变)。 但是这个脉冲发生器还存在一个问题:就是改变频率需要停下来设定后在重新运行。如果期待实时改变频率最好使用下面的例子。 generatePulseTrain2.vi 这个vi已经经过验证使用没问题。下面给出下载。
Add Comment cDAQ——计数器使用(3) 08/01/2011
通常cDAQ产品手册中的介绍不多,更多的内容来自DAQmx的帮助文件。所以在使用前必须仔细阅读DAQmx的帮助文件 在cDAQ产品手册中,对于计数器原理介绍是这样表述的,参见下图。 这个电路图实际上是cDAQ机箱内部的计数器电原理图,它具备8个输入端和两个输出端。 我们初看起来的确会一头雾水,真不知道该如何使用这8个输入端。 其实,根本不用恐怖。我们在作计数器使用时,只会用到少数几个端口。其他的端口在机箱内部都已经自动连接完成。 在MAX中我们可以看到Device Routes表。如果一时还看不明白,我们就默认它的连接就行了。 实际上在cDAQ上使用计数器很简单,下面以脉冲发生为例进行实际应用。 上图中的 CTR n——表示第n个计数器。 CTR n OUT——表示第n个计数器的输出端。 一、cDAQ-9172 脉冲发生器(使用NI 9401) 在cDAQ-9172上配置NI 9401使用时,必须将NI 9401插在cDAQ-9172的5或6槽。因为其它的槽不支持计数器使用,这个问题在NI 9174和NI 9178中不存在,它们所有槽都支持计数器的使用。 所以这里我们将NI 9401插入cDAQ-9172的第五槽。硬件安装即宣告完成。 下面开始程序设计。 1、使用DAQ助手实现脉冲发生器为了简化设计,通常我们使用DAQ助手来完成这个任务。 在程序框图中选择: 编程〉 测量I/O〉 DAQmx_数据采集〉 DAQ助手 将DAQ助手拖放到程序框图上,在对话框中选择: 生成信号〉 计数器输出〉 脉冲输出,参见下图。 点击:脉冲输出后,进入下图所示的内容。 由于我们实际的的硬件使用的是:cDAQ1,第5槽上的NI 9401,所以我们选择:cDAQ1Mod5(NI 9401)的ctr0。 注意:cDAQ-9172仅仅可以提供两个计数器,Ctr0、Ctr1。 Ctr0、Ctr1分别是2个计数器的名称。 然后点击:完成,参见下图。 这里,我们仅仅选择设定了: 生成模式。 连续脉冲和待写入采样(100) 其他都是默认值,高低电平都为10ms意味着我们将生成50Hz频率信号。通过修改这个参数可以控制脉冲发生器的频率。 特别注意:上图中的红色部分,它标志着产生的信号输出将出现在PFI3(CTR 0 OUT)的端口。我们暂时先继续,后面会谈到这个问题。 点击确定按键(上图中没有包含进来),在对话框中选择包含While循环,参见下图。 这样使用DAQ助手的程序就创建完成,现在的问题是如何实现硬件连接。 前面我们已经知道脉冲的输出在PFI3(CTR 0 OUT)的端口,通过端口表(DAQmx帮助文件),我们知道在NI 9401的PFI3(CTR 0 OUT)对应19脚(参见下图——表1)。 现将NI 9401的19角作为信号输出(1角为信号地)连接后,运行该程序测量结果参见下图。 关于如何测量我们以后会谈到。 这样我们通过DAQ助手已经实现的脉冲信号的生成。操作本身很简单,主要问题是如何确定实际的物理输出端。 使用DAQ助手有个问题,就是无法实时的控制脉冲发生器的输出频率(每次都需要重新配置DAQ助手)。下回我们将给出一个例程来实现输出频率可控的脉冲发生器。 cDAQ——计数器使用(2) 07/29/2011
在cDAQ——计数器使用(1)中,我们介绍了cDAQ的机箱。归纳起来有1槽、4槽、8槽。槽数表明cDAQ中可插入的C系列模块个数。 cDAQ使用C系列模块,目前大约有50种C系列模块支持在cDAQ下使用。但是在计数器使用方面,并没有直接实现计数器功能的C系列模块。只有将C系列数字模块与cDAQ配合使用,才能够实现计数器的功能。 目前我所涉及到的数字模块是:NI 9401和NI 9402。 NI 9401 ![]() cDAQ图2-1 NI 9401外观
NI 9401 工业标准25针D-Sub连接器 NI 9402 ![]() cDAQ图2-3 NI 9402 外观
NI 9402 BNC连接器,注意:它只有0、1、2、3四个自上而下排列的连接端口。 这两款C系列模块常被用在cDAQ上实现计数器功能。但是由于这两款C系列模块作为计数器使用时,cDAQ上都已经配置好了一些端口。所以在使用中反倒会出现一些难于理解的问题。 下面就这两个模块在cDAQ上如何实现脉冲生成和计数进行梳理。 它们除了数字通道数和接线端有差别外,还有就是NI 9402比NI 9401在速度上块一倍。 注意: 我们已经分别介绍了多种cDAQ机箱和NI 9401与NI 9402等硬件。实现计数器功能需要这些硬件间相互配合。 但需要注意的是: 计数器硬件部分在cDAQ机箱内,对于不同的机箱使用计数器数量不同(Ctr n 是计数器编号的缩写)。 NI cDAQ-9172(8槽):2个计数器,Ctr0、Ctr1。 NI cDAQ-9171(1槽):4个计数器,Ctr0、Ctr1、Ctr2、Ctr3。 NI cDAQ-9174(4槽):4个计数器,Ctr0、Ctr1、Ctr2、Ctr3。 NI cDAQ-9178(8槽):4个计数器,Ctr0、Ctr1、Ctr2、Ctr3。 这里NI 9401和NI 9402所起的作用是匹配计数器的实际输入、输出端口。 这些输入、输出端口功能不是固定不变的,随着不同的应用,其定义也不同。 NI 9401:有25个端口 NI 9402:有4个端口 cDAQ——计数器使用(1) 07/29/2011
NI CompactDAQ 模块化数据采集平台,是基于USB和以太网总线快速实现简单、便携型的测量应用。 NI CompactDAQ使用C系列模块(50多款),拥有完备的多种功能模块,将高性能与灵活性集于一身,在小规模、简便且价位适中的系统内实现了快速精确的测量。在许多应用中包括振动测试分析、应变测试、电信号测试分析等等都得到了广泛的应用。 前不久我们准备使用cDAQ的计数器功能,但是遇到了许多实际问题。NI AE给与了很大的帮助解决了这些问题。根据我们的情况现在总结出来记录在这里,一是自己备案,二是希望对其他使用者有所帮助。 这里我们仅针对基于USB的cDAQ在计数器使用方面做讨论。 目前NI cDAQ基于USB的已经提供了四种型号的机箱,分别是:
NI cDAQ-9171 Chassis可以接入一个C系列模块。NI cDAQ-9171 Chassis提供了四个32位通用计数器和一个频率发生器。 所以我们完全可以使用它的计数器功能。
NI cDAQ-9174 Chassis可以接入四个C系列模块。NI cDAQ-9174 Chassis提供了四个32位通用计数器和一个频率发生器。 所以我们完全可以使用它的计数器功能。
NI cDAQ-9178 Chassis可以接入八个C系列模块。NI cDAQ-9178 Chassis提供了四个32位通用计数器和一个频率发生器。 所以我们完全可以使用它的计数器功能。
其实,NI还有一款早期产品,NI cDAQ-9172 Chassis(8槽)。目前该产品基本上被NI cDAQ-9178 Chassis逐渐取代。它只能提供两组计数器供使用。此次介绍以它为主体,因为使用方法上都一致。 Wire = variable..... or wire != variable... 07/01/2011
连线到底是不是LabVIEW中的变量(Wire = variable..... or wire != variable...)? 这是一个有趣的话题,我的看法: 图形化语言是一种采用特殊方式进行计算机程序设计的编程语言。其实,任何计算机程序都可以简单理解为:数据+计算方法。图形化语言也不会例外,只是在数据的表达方式和程序的运行机制有所不同。所以我们在学习图形化语言中,切不可将其它语言中的概念生拉硬套的搬到图形化语言中来寻找对应关系。 变量在计算机程序中起着数据存储和数据传递以及数据交换的基本作用,所以在图形化语言中也一定会有变量的存在。 在C语言中,程序中的所有数据都被声明为变量。数据的存储和交换是通过表达式(借助于变量名)来实现的。所以变量的概念在C语言中非常重要。 在图形化语言中,程序中的数据被抽象到控件中,控件并不是传统意义中的变量。数据的存储和交换是通过控件(节点)间的连线依照图形化语言数据流运行机制来实现的。连线是数据的通道,也不是传统意义中的变量。 尽管变量的使用破坏了LabVIEW图形化语言数据流的运行机制,但在LabVIEW中还是有变量存在的。局部变量、全局变量、共享变量才是图形化语言中的真正变量(通过控件来创建)。这些变量在图形化语言中进行数据传递和数据交换。 如果不考虑LabVIEW内部的机制,比如数据拷贝、编译器等,这样的理解更简单、更直观、更清晰。 VI脚本(VI Scripting) 06/10/2011
VI脚本(VI Scripting)在LabVIEW 2010可以公开使用。VI脚本不仅包括了基本函数还包括许多属性节点和方法节点。通常在安装LabVIEW后不会呈现出来。使用它之前需要重新设置VI服务器。 运行LabVIEW后,在工具栏选择》选项》VI服务器,参见下图。 勾选上图中的VI脚本选项,即可在LabVIEW中看到VI脚本函数。 显然,带有VI脚本的属性节点要丰富的多,程序更加多样化。 控件替换后标题不对 05/26/2011
如果我们在前面板上放置一个LabVIEW对象,具体操作是:控件选板》新式》变体与类》LabVIEW对象。 我们在前面板和程序框图上都可看到控件和接线端。见下图。 如果我们替换这个控件,在前面板上鼠标右击,弹出的快捷菜单中选择:替换》新式》变体与类》变体 我们看到的是控件已经被替换,标题确还是:LabVIEW对象。见下图 即时帮助也显示的不对! 类似这样的情况很多!!!! 前面板上的ActiveX容器,不能移动(激活) 05/26/2011
在LabVIEW 2010 SP1中,前面板上的ActiveX容器不能移动和删除。在程序框图中的接线端中选择:查找输入控件可以激活ActiveX容器并移动和删除。 NET容器可以被激活,见上图。ActiveX容器则不行! LabVIEW 2009 SP1也如此! 程序框图中的数字波形图没有“即时帮助”显示 05/26/2011
正弦信号的生成——频率与#S及Fs的关系 04/12/2011
| 写着玩! 外行当然说的就是我自己,内行是指NI的那些AE,因为他们更清楚LV的内涵和机理。就LV学习和使用而言,我的确就是个外行。但是,我想通过“看热闹”使自己尽可能的接近于内行。这肯定是一个可望而又不可及的目标。 历史纪录十一月 2011 分类
All | ||||||
































RSS Feed