Labview面向对象编程快速入门

Labview面向对象编程快速入门
Labview面向对象编程快速入门

Labview面向对象编程快速入门

一、类和对象的基本概念

在面向对象编程中,类用来表示通用特性。例如,假设有一个描述汽车的类。类中定义了各种汽车的通用特性。对象是类的特定实例。汽车类的一个对象,可以是某一辆特定的汽车。类的定义决定该汽车(对象)的行为。

类中定义了和对象相关的数据和方法。仍以汽车为例。世界上有许多类型的汽车。汽车可分为轿车、卡车、公共汽车等不同类别。汽车的车身上有车门,排挡上有齿轮。车门和齿轮的数量信息都是汽车的相关数据。汽车还可加速或刹车。加速或刹车都是汽车的行为(或称为方法)。汽车相关的数据和方法,构成了汽车类的定义。通过类的创建,可定义对象的数据和方法。下图示范了汽车类在LabVIEW中的表示。LabVIEW将汽车类的数据存储在Vehicle.ctl中,将汽车的方法存储在Start Vehicle VI和Stop Vehicle VI两个VI中。

对象是类的特定实例。指定的某一辆汽车是汽车类的一个特定实现,或称为汽车类的一个对象。下列Main VI的程序框图中,有一个汽车类的对象。对象包含哪些数据和方法,是通过类来定义的。LabVIEW将类的数据存储在一个控件中,用户创建的成员VI即是LabVIEW类的方法。

为使LabVIEW面向对象编程的概念更为清晰,可通过如下方式区分LabVIEW 类的不同用户:

?LabVIEW类开发人员-开发LabVIEW类,以供其他开发人员及程序员使用。

LabVIEW类开发人员适合拥有面向对象编程经验的人员担当。LabVIEW类开发人员必须理解LabVIEW类及其机制。

?LabVIEW类用户-使用LabVIEW类开发人员所创建的类。LabVIEW类用户可以在应用程序中利用面向对象编程的优势,但无需了解类的运行机制,

LabVIEW类用户不一定有面向对象编程的经验。LabVIEW类开发人员发布类之后,LabVIEW类用户可能不具备访问该类内部操作的权限。LabVIEW类开

发人员对LabVIEW类所作的修改,应极少影响LabVIEW类用户所开发的应用程序。

LabVIEW类用户无需了解如何创建LabVIEW类,但必须了解应用程序中通过类定义的数据类型应当如何使用,涉及LabVIEW类的代码有哪些可用于调试的信息,以及LabVIEW类的新版本将如何影响已经生成的应用程序。在只需使用现有的LabVIEW类而无需对LabVIEW类进行开发的情况下,可参考在应用程序中使用LabVIEW类,学习如何使用其他开发人员所提供的LabVIEW类。

二、在LabVIEW中创建类

通过创建LabVIEW类,可在LabVIEW中创建用户定义的数据类型。LabVIEW 类定义了对象相关的数据和可对数据执行的操作(即方法)。通过封装和继承可创建模块化的代码,使代码更易修改而不影响应用程序中的其它代码。

在LabVIEW中,类的数据是私有的,也就是说,只有类的成员VI才有权限访问该数据。类的数据可在私有数据控件中定义。创建和保存LabVIEW类时,LabVIEW将创建一个类库文件(.lvclass),其中定义了新的数据类型。类库文件记录了私有数据控件和所有被创建的成员VI的信息,比如VI列表以及VI各自的不同属性。类库和项目库(.lvlib)相似。不同的是,类库定义了新的数据类型。私有数据控件对应唯一的类库文件,其中为新的数据类型定义了一簇数据,该簇也是类连线上的数据。LabVIEW的私有数据控件并不保存在磁盘上,而是保存在类库文件中。由于在类库文件中保存私有数据,不符合类定义的私有数据一定不会被使用。

提示:如需保存类库文件、类成员VI,以及类自定义默认探针,可在磁盘上创建一个和LabVIEW类同名的目录,将属于该类库的文件保存在该目录中。

如同一目录中包含了多个属于不同类库的文件,那么在不同类库中添加相同名称的VI时将产生冲突。在开发过程中重写动态成员VI将产生命名冲突。

2.1 封装

每个LabVIEW类包括一个数据簇和用于读写该簇的方法。LabVIEW类的数据是私有的,对于不是该类成员的VI来说是隐藏的。如需访问类的私有数据,必须创建方法,即创建该类的成员VI,通过成员VI中的函数对私有数据执行操作。封装就是将数据和方法合并到一个类中,类中数据仅可由类的成员VI访问。通过封装可创建模块化代码,有利于方便地更新或修改代码而不影响应用程序中其它部分的代码。

类中的数据是私有的,但成员VI却可以按不同的程度公开。方法的设置访问范围选项可以有如下设置:

?公共-任何VI都可将该成员VI作为子VI调用。

?库内-只有同类中的VI、类的友元或类的友元库中的VI可以调用库内成员VI。在项目浏览器窗口中,库内成员VI图标中有一个深蓝色的钥匙符

号。

?保护-仅该成员VI所在的类及其子类中的VI可以调用该成员VI。在项目浏览器窗口中,受保护的成员VI图标中有一个暗黄色的钥匙符号。

?私有-仅该成员VI所在类中的VI可以调用该成员VI。在项目浏览器窗口中,私有成员VI图标中有一个红色的钥匙符号。

?未指定-仅当选中一个文件夹时,显示该选项。文件夹的访问范围未指定时,其访问范围默认为公共。默认情况下,如未对类中的文件指定访问范围,则这些文件夹的访问范围为公共。

注:如指定文件夹的访问选项,则访问设置适用于文件夹下的所有

文件,并将覆盖各个文件的原有设置。

注意:如将动态分配VI设置为库内,这些VI将无法运行。为友元创建一个静态分配的包装VI,调用该包装VI并将其设置为库内,以此向友元赋予访问受保护动态分配VI的访问权限。

2.2 分配库的友元

将一个VI分配为库的友元,即是给予该VI调用库内任何成员VI的权限。也可分配一个库作为库的友元。

友元关系不具有传递性。例如,如第一个库分配第二个库为友元,第二个库分配第三个库为友元,第三个库不能作为第一个库的友元。除非第一个库将第三个库作为友元,第三个库无法访问第一个库的VI。如访问权限在库内的库指定某个类为友元,该类的成员VI可访问库的VI,但是友元关系不延展至类的子孙类。

可创建一个在LabVIEW类之外的VI,将公共成员VI作为子VI在程序框图上使用。公共成员VI允许用户操作类的私有数据。用户可在成员VI的程序框图上使用私有和受保护的成员VI操作LabVIEW用户不可见的类私有数据。独立于类

的VI可作为类的友元,友元VI可调用库内的成员。对类的入口点进行限制,可减少对数据引入错误的机会,更便于调试代码。

2.3 定义私有数据控件

创建LabVIEW类时,LabVIEW将自动创建类的私有数据控件。请注意在下列项目浏览器窗口中,LabVIEW类的图标是一个有色立方体。该立方体用于代表一个LabVIEW类。私有数据控件的图标是一个带有绿色圆柱体的有色立方体。圆柱体用于代表数据存储。同时,私有数据控件的图标中有一个红色钥匙符号,表示该控件是私有的。

通过控件编辑器窗口可对类的私有数据控件进行自定义。在项目浏览器窗口中双击类的私有数据控件,即可打开“控件编辑器”窗口。可将类私有数据的簇中的输入控件和显示控件放置到LabVIEW类的定义私有数据控件中。为放置输入控件和显示控件中的输入控件设置的默认值为类的默认值。

注意:私有数据控件不能包含XControl或XControl引用句柄。

以下范例中,汽车类的数据类型包含齿轮数量、车门数量和颜色三个数值,以及制造和型号两个字符串。

注意:如类中不需要任何私有数据,类私有数据的簇中可以不设定任何数据。

用户可创建在前面板或程序框图上代表类的图标。单击类属性对话框常规设置页的编辑按钮,打开图标编辑器对话框。创建类图标后,LabVIEW将把类图标应用于类的所有对象。修改类中各个对象的图标。

2.3 创建成员VI

通过创建成员VI(或称创建方法),可对类的私有数据执行操作。成员VI 是LabVIEW类的方法。在LabVIEW类中创建,并在项目浏览器窗口中该类的私有数据控件下出现的VI,是该类的成员VI。

LabVIEW将类的数据定义为一个簇。所有成员VI都可对类数据的簇进行读写。LabVIEW为创建用于访问簇中各元素的VI提供了捷径。这种访问器VI是LabVIEW 类的成员,可对类数据进行读写操作。如创建一个访问器VI以读取类数据,LabVIEW将取消对类数据的绑定,如下图所示。

如创建用于写入类数据的访问器VI,LabVIEW将把新值绑定至类数据,如下图所示。

也可使用解除捆绑或按名称解除捆绑函数,在成员VI的程序框图中对类的

私有数据解除捆绑。使用捆绑或按名称捆绑函数可在访问和操作私有数据之后,将数据重新捆绑成簇。由于类的数据是私有的,若试图在非该类成员VI的程序

框图中通过“捆绑”和“解除捆绑”节点访问该类数据,节点将自动断开无法运行。

注:建议尽量使用“按名称捆绑”和“按名称解除捆绑”函数替代“捆

绑”和“解除捆绑”函数,以免在私有数据的簇中插入新元素时VI断开。如写入成员VI的操作将取消捆绑某个值,修改该值然后将值捆绑至对象,可使用元素同址操作结构,在结构两边放置解除捆绑和捆绑函数,以实现更高的效率。该结构可保证LabVIEW使用了某些内存优化技术。使用常规取消捆绑和捆绑节点时也可使用该内存优化的方法。但是,在复杂VI的情况下,LabVIEW编译器可能会认为优化不够安全而拒绝使用优化算法,导致运行速度变慢。元素同址操作结构保证了这些优化算法的安全性,确保VI按优化算法运行。

可通过各种方式创建成员VI。右键单击类并在以下快捷菜单项中选择:?新建?VI-打开一个空的成员VI。

?新建?属性定义文件夹-创建一个属性定义文件夹,可在其中创建或添加现有成员VI。如LabVIEW类包含一个属性定义文件夹,可将LabVIEW类连接至属性节点访问私有数据。

?新建?基于动态分配模板的VI-LabVIEW将生成一个新成员VI,该VI带有错误输入簇、错误输出簇、一个用于错误处理的条件结构,以及输入LabVIEW 类和输出LabVIEW类。在VI连线板上,LabVIEW将输入和输出接线端都设置为动态。

?新建?基于静态分配模板的VI-LabVIEW将生成一个新成员VI,该VI带有错误输入簇、错误输出簇、一个用于错误处理的条件结构,以及输入LabVIEW 类和输出LabVIEW类。与创建动态分配VI相反,LabVIEW不将动态分配VI 的连线板上的输入和输出接线端设置为动态。

?新建?用于数据成员访问的VI-打开创建访问器对话框。通过该对话框快速创建用于访问LabVIEW类数据的成员VI。

注:使用该选项之前必须先保存新建的LabVIEW类。如未保存新类,

LabVIEW将用于数据成员访问的VI选项灰暗显示。

?新建?用于重写的VI-创建一个重写祖先类成员VI的成员VI。LabVIEW使用父VI的图标对子类的图标进行覆盖,创建新VI的图标。

注:若不存在可重写的有效成员VI,LabVIEW将禁用新建?用于重写

的VI选项。更多关于“动态VI”和“重写”的信息见继承一节。

右键单击前面板或程序框图上的常量或控件,从快捷菜单中选择显示类库,在项目浏览器窗口高亮显示相关类。如当前类不属于某个LabVIEW项目,LabVIEW 将打开一个类窗口显示该类。

祖先类的数据是私有的,必须使用祖先类提供的函数(成员VI)才能修改这些数据。子孙类的成员VI可以调用祖先类任何“公共”型的成员VI,就像调用LabVIEW中的其它VI一样。子孙类的成员VI也可以调用祖先类“保护”型的成员VI。若指定一个祖先类成员VI为“保护”型,则其任何子类的成员VI可以调用其方法,但该类继承层次结构以外的任何其它VI都不能调用其方法。如需访问卡车类从汽车类继承而来的齿轮数量,可在汽车类中创建一个“公共”型或“保护”型的成员VI,比如Get Gears.vi。在Get Gears.vi的程序框图中可对汽车类解除捆绑,从而得到齿轮数量。然后将齿轮数量分配到连线板的一个输出接线端,用这种方法,汽车类的子孙类(例如,卡车类)就可访问汽车类的某个私有数据(例如,齿轮数量)了。

在汽车类中创建访问数据成员的成员VI,即可访问齿轮数量。创建成员VI 时,勾选创建访问器对话框的通过属性节点实现复选框。然后,将卡车类连接至属性节点,右键单击属性接线端并选择选择属性?齿轮数量。

注:LabVIEW类不可调用另一个LabVIEW类的“私有”型成员VI,即使是父类,也无法调用其子类的私有成员VI。类的“私有”成员VI只能由这个类的其它成员VI在程序框图中调用。

2.5 LabVIEW对象

短语LabVIEW对象是一个特定的类的名称。LabVIEW面向对象编程中,LabVIEW对象是继承树的根类。默认状态下,所有LabVIEW类都是从“LabVIEW 对象”继承而来的。通过“LabVIEW对象”创建的VI,能对多个LabVIEW类执行通用的操作。例如,可创建一个由若干LabVIEW类构成的数组,该数组的类型是某个基类,数组中的数据可以是这个基类或它的任何子孙类类型的元素,因此数组中的数据是异构的。如果一个数组的类型为“LabVIEW对象”,则该数组可包含汽车类、卡车类和保龄球类。保龄球类并不是从汽车类或卡车类继承而来的,因此LabVIEW将创建一个通用于这些类的最近的祖先基类,此处便以“LabVIEW 对象”为基类。

下图显示了汽车类数组,一个包含汽车类和卡车类的数组。由于卡车类是从汽车类继承而来的,汽车类就是通用于这两个类的最近的祖先基类。该图还显示了包含“LabVIEW对象”类、汽车类、卡车类和保龄球类的LabVIEW对象数组。保龄球类不是从汽车类或卡车类继承而来的,但所有的这三个类都是从

“LabVIEW对象”这个根类继承而来,因此LabVIEW对象数组的类型是“LabVIEW 对象”。

2.6 设置继承

默认状态下,所有LabVIEW类都是从“LabVIEW对象”继承而来的。如果要更改一个类的继承关系,必须在创建该类之后更改继承。通过类属性对话框,可设置类的继承关系和其它选项。在LabVIEW类层次结构窗口中,可查看LabVIEW 类的层次结构。类继承的层次结构可包括下列类型的类。

父类-供其它LabVIEW类继承数据、“公共”型成员VI和“保护”型成员VI的LabVIEW类。

?子类-继承父类的公共和受保护成员VI的LabVIEW类。除非父类提供访问VI,否则子类不继承父类的私有数据。

?兄弟类-和一个LabVIEW类继承同一个父类的另一个LabVIEW类。

?祖先类-一个LabVIEW类的上一层(父类)、上二层(父类的父类)、上三层等等。“LabVIEW对象”是所有LabVIEW类的始祖。

?子孙类-一个LabVIEW类的下一层(子类)、下二层(子类的子类)、下三层等等。

2.7 连线外观

类定义了新的数据类型。在程序框图中,通过类定义的数据类型采用默认的LabVIEW类连线外观,或者继承父类的连线外观。通过类属性对话框可对LabVIEW 类更改连线外观。适当地更改不同LabVIEW类的连线外观,可提高程序框图的可读性。而使用过多的连线色彩和连线模式将破坏程序框图的可读性。下图左侧显示了LabVIEW内置的连线外观,右侧显示了自定义连线外观的样例。

关于在LabVIEW中避免过多连线和色彩的技巧,见LabVIEW Style Checklist。

2.8 动态和静态分配成员VI

方法是在对象上执行的操作。在LabVIEW面向对象编程中,方法是用户创建的成员VI。成员VI在LabVIEW类的数据上进行运算。某些方法可用单个VI定义。这些方法称为静态分配方法,因为LabVIEW每次调用的是同一个VI。有时也可在类层次结构的多个VI中定义同名的方法。这些方法称为动态分配方法,因为直

到运行才可确定LabVIEW调用的是哪一个VI。动态分配方法和多态VI类似:多态VI根据连入数据的类型来确定调用哪一个VI;动态分配方法在运行时根据输入接线端到达的数据确定调用类层次结构中的哪一个VI。

通过设置成员VI的连线板,成员VI既可指派为静态,也可指派为动态。若连线板上包含一个动态分配的输入接线端,则该成员VI是动态分配方法的一部分。如连线板上没有动态分配输入接线端,则该成员VI定义了一个静态分配方法。

一个LabVIEW类继承另一个LabVIEW类时,子类将继承父类中定义的所有“公共”和“保护”型的方法。通过在子类中创建和父类成员VI相同名称的成

员VI,可定义该方法的子类实现。

由于LabVIEW通过单个VI定义静态分配方法,子类成员VI的名称不可与祖先类的静态分配成员VI的名称相同。例如,当父类“汽车”中包含了“开门”VI 这一静态分配成员VI,则子类“卡车”便无法将名为“开门”的VI作为其成员VI。由于“卡车”从“汽车“继承了其成员VI,故“开门”VI这一方法已在“卡

车”上定义。如在程序框图中将静态分配方法作为子VI调用,则调用这些静态分配方法和调用普通子VI没有任何区别。

对一个方法可定义多个动态VI,可在继承层次结构中的每一层对该方法定义一个动态分配VI。如动态分配成员VI在父类中定义,且也在子类中定义,则子类的执行将覆盖或扩展父类的执行。在以下范例中,“汽车”类和“卡车”类都定义了动态分配方法Set Make VI。若在程序框图中将一个动态分配VI作为子VI调用,在编辑状态下,该节点和一般子VI调用没有区别。然而如果运行VI,则流入动态分配输入接线端的数据将决定LabVIEW会调用类层次结构中的哪一个动态成员VI。LabVIEW类连线可传递本身及任意子类所允许的数据类型,不同的数据类型被定义了不同的成员VI,该节点将根据连线上的数据类型执行相应的动态分配VI。阅读下列范例。只有Set Make VI的“汽车”类在主VI的程序框图上。第一次循环时,由于“汽车”类的数据在类连线上,故LabVIEW执行Set Make VI的“汽车”类。第二次循环时,由于“卡车”类的数据在类连线上,故LabVIEW 执行Set Make VI的“卡车”类。

如父类定义了一个动态分配VI但是不提供该VI的执行,每个子类必须覆盖其父VI。在许多情况下,用户需提供父类VI的有意义的动作。例如,如有一个Shape类,定义Area VI。Area VI返回Shape对象的面积。没有一个公式可计算任意形状的面积。所以,每个继承类必须用相应的面积计算公式覆盖Area VI。如创建了一个子类Circle,子类Circle就必须提供一个Area VI,计算

pi * radius* radius。

如不定义父类VI的执行,父VI就仅仅是所有覆盖VI必须匹配的连线板和VI属性。每个子类必须提供一个类似的覆盖VI。要确保LabVIEW强制执行该要求,可在父类中标示VI为子类必须覆盖的VI。

一些子类可能无法覆盖成员VI的功能。例如,如Shape类有子类Quadrilateral,无法提供四边形面积计算公式,除非知道四边形为特定类型的四边形。用户可使Quadrilateral类迁移覆盖要求至其子类,以避免在Quadrilateral类中创建Area VI的空执行。右键单击子类,从快捷菜单中选择属性,打开对象属性对话框。在继承页上,勾选将全部重写要求传递至子孙类复选框。LabVIEW将要求Quadrilateral的所有子类(例如,梯形和矩形)覆盖Area VI。

要求子孙类覆盖父类成员VI对成员VI的运行没有影响。

注:LLB无法包含同名文件。因此,若类层次结构中存在同名的动态成员VI,这些VI不可放置在同一个LLB中。

注: 如子类的VI 覆盖了父类的VI ,子类的VI 必须和父类的VI 在以下方面吻合:重入设置、首选执行设置、优先级设置、连线板接线端、连线板模式,以及访问范围。

双击程序框图上的一个动态分配子VI 以显示选择实现对话框。通过该对话框可查看当前内存中动态分配子VI 的所有实现,然后将该子VI 的一个或多个实现打开。

如选择新建?重写VI 而创建一个VI 以覆盖一个动态分配成员VI 的父实现,则将创建另一个动态分配成员VI ,因为重写父类成员VI 的VI 与其父类VI

同名

且具有动态分配接线端。LabVIEW会自动将调用父类方法节点和正确的动态分配输入和输出类接线端及其它匹配祖先类VI所需的接线端放在程序框图上。若不存在可重写的祖先类成员VI,则LabVIEW将禁用重写VI选项。

2.9 动态分配输出

右键单击连线板上的输出接线端并选择动态分配输出(推荐),可将LabVIEW 类的输出接线端标记为动态。将一个含有动态分配输出端的VI作为子VI调用时,动态分配输出端的数据将转换为与动态分配输入端相同的类型。例如,将汽车类连接到一个动态分配输入接线端,则该成员VI的输出数据类型将和输入数据类型相同,即为汽车类类型。动态分配输入端和动态分配输出端之间的数据是可修改的。然而,为了确保LabVIEW类运行时的安全,动态分配输入端的数据必须流入所有动态分配输出端。同时,为了确保LabVIEW仅从动态分配输入端读取一次,仅向动态分配输出端写入一次,不可将动态的程序框图接线端放置在结构之中。

注:调试动态分配成员VI时,可检查动态分配输入端和动态分配输出端之间的连线是否出错。若一条连线从动态输入出发,且未通过任何能改变运行时数据类型的函数,则该连线的背景颜色将是灰色而不是通常的白色。若该连线通过一个能改变其数据类型的函数,则连线的背景颜色将变成红色。

为使动态输出正常运作,不可改变LabVIEW类的数据类型。

若已知成员VI的程序框图中LabVIEW类的输出数据类型不同于输入数据类型,则须确保连线板上的LabVIEW类动态输出接线端设置为推荐而不是动态分配输出(推荐)。例如,若LabVIEW类的输入是汽车类而输出是卡车类,则必须改变连

线板上LabVIEW类的默认接线端。此外,也可从空VI创建成员VI,此时可手动设定连线板接线端。

注:如在一个有动态分配输入和动态分配输出的成员VI中使用条件结构或事件结构,不能在输出隧道上选择未连线时使用默认选项。若在输出隧道上使用未连线时使用默认,LabVIEW将断开该VI。必须连接结构中的所有分支。考虑将隧道配置为自动连接输入和输出隧道。

2.10 动态分配的内存拷贝优化

如上所述,创建动态分配的方法时,每个子类都会继承父类上定义的所有公共方法和受保护的方法。子类可覆盖或扩展这些成员VI。VI调用动态分配的方法时,LabVIEW只有当运行时才知道将调用哪个方法。LabVIEW将优化调用方VI 的内存分配,并认为子类含有的任何成员VI的设置与父类中成员VI的设置相同。如父类VI的输入为常量,调用方将认为在所有子类VI中输入也是常量。如父类成员VI的输入返回为输出,调用方VI认为所有子类成员VI也会有相同的操作。

如上述假设有误,则优化失败。例如,如创建了一个成员VI,其中包含未改变的输入。这将使调用方VI认为所有输入都不改变,即使每次覆盖都会改变部分或所有输入。或者,如未将任何输入连接至父类成员VI的输出,调用方VI将认为没有任何输出与输入共享内存,即使在相邻的VI之间,上一个VI的输出可能是下一个VI的输入。LabVIEW必须创建代码来处理子类中导致优化失败的非预期行为。

更好的优化是指写入父类VI时,在子类VI中发生尽可能一致的操作。创建一个动态分配方法,可使用元素同址操作结构明确表示各个接线端的作用。将元

labview专题实验报告_xjtu

LABVIEW专题实验报告 *** 04054035 自动化 42 班 2007-6-22

一、实验任务: 1.虚拟信号发生器设计。设计一个虚拟信号发生器,能够产生正弦波、三角波、锯齿波、 直流、随机白噪声等信号,且可以调整波形参数。通过示波器可以观察虚拟信号发生器 的输出信号。 2.利用第一次做的信号发生器做一个双踪示波器,使它能够模拟真实的示波器。 二、实验目的: 学生能够独立进行编程,熟悉LabVIEW的基本模块,掌握LabVIEW的基本使用方法。 三.设计过程与结果: 1.设计虚拟信号发生器。 分析:根据要求,由于需要选择产生产生正弦波、三角波、锯齿波、直流、随机白噪声等信号,所以使用了case 结构,在面板上使用一个数字控制器-Pointer Slide来选择信号发生器发生一个需要的信号,同时也可使白噪声叠加在每个波形之上,它的幅值也可以在前 面板中设置一个数字控制器-Pointer Slide来控制。每一个case 就可以产生一个信号,而 用来产生信号的则是一个可以现成调用的子VI ,可以用三个数字控制器(旋钮)来分别控 制每个信号的偏移量,频率以及幅值。 产生正弦信号 产生三角波信号

直流信号 方波信号 锯齿波信号前面板如下所示:

前面板中的偏移量、频率和幅值旋钮分别用来调节信号的偏移量、频率和幅值。而信号选择控制器则用来选择产生的信号。噪声大小控制器用来调节加在信号上的噪声大小。 2.双踪示波器的设计: 分析:要模拟真实的示波器,那么就要实现两个独立的通道 A 和 B,并且能够同时显示两个通道中的信号波形( A&B),以及两个通道波形的叠加情况( A+B)。同时给每个通道的波 形配备上各自独立的调节控制器,这些控制器(旋钮)包括垂直灵敏度,水平灵敏度,水平 位移,垂直位移。为了更好的模拟现实的示波器,给每个通道配备一个信号发生器,用来给 每个通道送来所需要的信号,现在主要分析一下示波器部分的功能如何实现。 设计示波器部分时,先利用 1 中的方法产生信号,然后再将所产生的信号的有关参数, 如频率和幅值信息提取出来,然后利用提取出来的信息通过Waveform Generation函数来产生波形。之所以要通过这种方式来产生波形,主要是想在将提取的波形信息后,通过垂直灵敏度和水平灵敏度两个旋钮来调节波形,进而达到模拟现实示波器能够改变垂直灵敏度和水 平灵敏度的目的。 下面将流程图分解成三个模块进行解释。 模块 1. 信号发生器模块:

虚拟仪器LabVIEW实验报告

实验报告一 课程名称虚拟仪器 实验项目熟悉编程环境与基本编程操作 实验仪器计算机 系别: guangdian 专业: 班级/学号: 学生姓名: 实验日期:2011年3月 成绩: _____________________ 指导教师: ____________________

实验一熟悉编程环境与基本编程操作 一、实验目的 1.理解LabVIEW的运行机制,熟悉LabVIEW编程环境。 2.掌握基本编程操作,包括VI程序的创建、编辑、运行与调试。 3.理解LabVIEW模块化编程思想,掌握子VI的创建、编辑及调用。 二、实验仪器及材料 主要设备有计算机, LabVIEW8.5软件。 三、实验内容及步骤 教材第82—83页练习4.2,创建VI后保存为Thermometer.vi。 1.打开一个新的前面板 2.从控件菜单选择一个温度计放到前面板 3.在温度计上用右键单击设定一个精确的温度值,选择Visible》Digital Display 4.将VI保存为Thermometer.vi 教材第107—108页练习5.2,打开练习4.2所创建的VI,将其转变成一个子VI。 1打开4.2创建的Thermometer.vi 2.为该VI创建一个图标,从VI图标窗格选择Edit Icon…,单击OK返回主VI

3从图标弹出菜单中选择Show Connector创建连接器。 4将端子指派给温度指示器,使用Writing工具单击连接器端子,端子就会变成黑色,然后单击温度计指示器。 5在温度计指示器的弹出菜单选择Description and Tip…为温度指示器编制文档 6选择File》Save将修改保存。 四、收获与体会

运动控制的基础

运动控制的基础 概观本教程是在NI测量基础系列的一部分。每个在这个系列的教程,教你一个常用的测量应用的特定主题的解释理论概念,并提供实际的例子。在本教程中,学习运动控制系统的基础知识,包括软件,运动控制器,驱动器,电机,反馈装置,I / O。您还可以查看交互式演示,通过本教程的材料在自己的步伐。有关更多信息,返回到NI测量基础主页。目录运动控制系统的组成部分软件配置,原型设计,开发运动控制器移动类型电机放大器和驱动器汽车和机械要素反馈装置和运动的I / O NI相关产品运动控制系统的组成部分图1显示了一个运动控制系统的不同组件。图1。运动控制系统组件应用软件-您可以使用应用软件,以命令的目标位置和运动控制型材。运动控制器-运动控制系统的大脑作用到所需的目标位置和运动轨迹,并建立电机的轨迹遵循,但输出±10 V的伺服电机或步进和方向脉冲信号,步进电机。 放大器或放大器(也称为驱动器)驱动器-从控制器的命令和需要开车或关闭电机的电流产生。电机-电机机械能变成电能和生产所需的目标位置移动到所需的扭矩。机械部件-电机的设计提供一些力学的扭矩。这些措施包括线性滑轨,机械手臂,和特殊的驱动器。反馈装置或位置传

感器-位置反馈装置是不是需要一些运动控制应用(如步进电机控制),但重要的是为伺服电机。反馈装置,通常是一个正交编码器,感应电机的位置和结果报告控制器,从而结束循环的运动控制器。软件配置,原型设计,开发应用软件分为三大类:配置,原型和应用程序开发环境(ADE)。图2说明了运动控制系统的编程过程和相应的NI产品设计过程:图2。运动控制系统开发过程组态 做的第一件事情之一,是您的系统配置。为此,美国国家仪器公司提供测量与自动化浏览器(MAX),不仅运动控制,但所有其他NI硬件配置的交互式工具。对于运动控制,MAX 提供交互式的测试和调整面板,帮助您验证系统功能之前,你的程序。图3 NI MAX是一个交互式工具,用于配置和调整您的运动控制系统。 应用笔记 了解伺服调谐 使用1D互动的环境测试电机功能 轴运动控制器的配置 轴运动控制器设置 运动控制器的编码器设置 运动控制器的参考设置 数字运动控制器的I / O设置原型 当你配置你的系统,你可以开始原型和开发应用程序。在

labview实验报告

LabVIEW课程设计 报告书 班级 学号 姓名 一、基础题

1、用labview的基本运算函数编写以下算式的程序代码: 首先在前面板创建一个数值输出控件,然后在程序框图中按照上图连接线路,点击运行,程序结果。 2、利用摄氏温度与华氏温度的关系C = 5(F ?32) / 9编写一个程序,求华氏温度 (F)为32, 64, 4, 98.6 , 104, 212时的摄氏温度。

在程序前面板创建一个数值输入控件和一个数值显示控件,在程序框图中添加一个公式节点,添加一个输出和一个输入分别输入和显示控件项链,在公式节点框图中输入温度转换公式,然后在面前扮输入相应的温度点击运行,得到相应的结果。 3、创建一个2行3列的二维数组控制件,为数组成员赋值如下: 00 .600.500.400.300.200.1 在前面板创建一个数组显示控件,然后将1、2、3创建成数组第一行,4、5、6创建成数组第二行,再将两行创建成一个两行三列的二位数组,点击运行显示输 出结果。 4、用数组创建函数创建一个二维数组显示件,成员为:

1 2 3 4 5 6 2 3 4 5 6 1 3 4 5 6 1 2 4 5 6 1 2 3 编程将上述创建的数组转置为: 1 2 3 4 2 3 4 5 3 4 5 6 4 5 6 1 5 6 1 2 6 1 2 3 先在面前板上创建一个上图这样的数组。再创建两个显示数组(一个为显示数组,另一个为转换后数组),在程序框图上面按照下图连线,在原数组和转换后数组之间接一个“二维数组转制”, 点击运行后显示为:

5、创建一个簇控制件,成员分别为字符型控制件姓名,数值型控制件学号,布 尔型控制件注册。从这个簇控制件中提取出簇成员注册,显示在前面板上。 在面板上添加一个簇,在族里分别添加一字符显示控件,数值显示控件,布尔型 显示控件,程序框图连接如图: 先解除捆绑然后再捆绑,输入姓名、学号点击运行在输出簇里显示。 6、创建一个字符串显示件,程序运行后显示当前系统日期、时间和自己的班级、姓名。

虚拟仪器技术实验报告

成都理工大学工程技术学院 虚拟仪器技术实验报告 专业: 学号: 姓名: 2015年11月30日

1 正弦信号的发生及频率、相位的测量实验内容: ●设计一个双路正弦波发生器,其相位差可调。 ●设计一个频率计 ●设计一个相位计 分两种情况测量频率和相位: ●不经过数据采集的仿真 ●经过数据采集〔数据采集卡为PCI9112〕 频率和相位的测量至少有两种方法 ●FFT及其他信号处理方法 ●直接方法 实验过程: 1、正弦波发生器,相位差可调 双路正弦波发生器设计程序:

相位差的设计方法:可以令正弦2的相位为0,正弦1的相位可调,这样调节正弦1的相位,即为两正弦波的相位差。 2设计频率计、相位计 方法一:直接读取 从调节旋钮处直接读取数值,再显示出来。 方法二:直接测量 使用单频测量模块进行频率、相位的测量。方法为将模块直接接到输出信号的端子,即可读取测量值。 方法三:利用FFT进行频率和相位的测量 在频率谱和相位谱上可以直接读取正弦信号的主频和相位。 也可通过FFT求得两正弦波的相位差。即对信号进行频谱分析,获得信号的想频特性,两信号的相位差即主频率处的相位差值,所以这一方法是针对单一频率信号的相位差。 前面板如下:

程序框图: 2幅频特性的扫频测量 一、实验目的 1、掌握BT3 D扫频仪的使用方法。 2、学会用扫频法测量放大电路的幅频特性、增益及带宽。 二、工作原理 放大电路的幅频特性,一般在中频段K中最大,而且基本上不随频率而变化。在中频段以外随着频率的升高或降低,放大倍数都将随之下降。一般规定放大电路的频率响应指标为3dB,即放大倍数下降到中频放大倍数的70.7%,相应的频率分别叫作下限频率和上限频率。上下限频率之间的频率范围称为放大电路的通频带,它是表征放大电路频率特性的主要指标之一。如果放大电路的性能很差,在放大电路工作频带内的放大倍数变化很大,则会产生严重的频率失真,相应的

基于labview的智能家居控制设计

检测技术与仪表实验 课程设计 题 目 基于labview 的智能家居控制设计 姓 名 徐鑫涛 黄敏瑶 学 号 3100404112 3100404129 专业班级 10电气工程及自动化2班 任课教师 李园/钟伟红 分 院 信息科学与工程学院 完成日期 2012年12月20日 宁波理工学院

摘要 随着嵌入式技术的发展和高速宽带网络的普及, 利用网络实现远程监控已为人们广泛接受,嵌入式网络监控技术正是在此条件下逐步发展成熟起来的. 用户使用Web 浏览器,通过以太网远程访问内置Web 服务器的监控摄像机, 不但可以实现对现场的远程视频监控, 而且可以向监控现场发送指令. 在整个系统的实现过程中, 嵌入式Web 服务器起着十分重要的作用,实现智能化离不开运算和控制单元。 本文中,我们探讨实现室内外温度,湿度,光照强度的智能控制采用虚拟仪器技术,数据采集并测得电气物理量,如电压、电流、温度等,基于数据采集以及labview仿真,通过软硬件与计算机的结合,实现了测量的自动化并提供可分析数据,对于温度程序的核心思想,其实就是利用这个系统能够根据温度的变化做出相应的处理,比如说外部温度比设定的温度高那么我就需要让制冷设备发挥作用来降低温度,设置相关反馈环节,基于LabView的温度控制系统,主要讲述控制系统软件方面的设计,首先对温度传感器采集到的温度信号(转化并处理为电压信号)输入到采集卡模拟输入端口,采集卡将信号送入LabView程序处理后从模拟输出端输出相关有效的PWM调制波形,实现了测量的自动化并提供可分析数据,实现使室内的温度、湿度、光照度等保持一个基本平衡的状态的智能化系统。 Internet向普通家庭生活不断扩展,消费电子、计算机、通讯一体化趋势日趋明显,现代智能家居由于其安全、方便、高效、快捷、智能化等特点在21 世纪将成为现代社会和家庭的新时尚。当家庭智能网关将家庭中各种各样的家电通过家庭总线技术连接在一起时,就构成了功能强大、高度智能化的现代智能家居系统。而基于嵌入式系统的家庭智能系统在国内才刚刚出现,随着嵌入式技术更加广泛的应用,随着成本的逐步降低,中国的智能家居最终将走向嵌入式。 关键词:温度反馈嵌入式系统 labview 数据采集

虚拟仪器实验报告1

虚拟仪器实验报告 姓名:肖阿德班级:测控0801 学号:118 时间:地点:电气院楼305 实验一VI程序的创建、编辑和调试 1.熟悉LabVIEW环境。 新建一个VI,进行如下练习: ?任意放置几个控件在前面板,改变它们的位置、名称、大小、颜色等等。 ?在VI前面板和后面板之间进行切换 ?并排排列前面板和后面板窗口 2.创建一个VI。 发生一个值为0.0~1.0的随机数a,放大10倍后与某一常数b比较,若a>b,则指示灯亮。要求:①编程实现;②单步调试程序;③应用探针观察各数据流。 3.创建和调用子VI。 创建一个子VI,子VI功能:输入3个参数后,求其和,再开方。 编一个VI调用上述子VI。 4.编写一个VI求三个数的平均值。 要求: ?对三个输入控件等间隔并右对齐。 ?添加注释。 ?分别用普通方式和高亮方式运行程序,体会数据流向。 ?单步执行一遍。 5.实验个人总结: 前面板中控件的颜色、大小、名称等都可以在控件的属性中设置; 其中颜色可以使用工具选版的”设置颜色”来设置,并且比在属性中设置更灵活、简便; 探针设置后配合单步调试能清楚的展示程序运行的具体过程,便于明白程序和差错; 创建子VI时,图标的选择最好有针对性和个性,如可以自行绘制图标,便于在调用图标时快速了解子VI的功能作用;

虚拟仪器实验报告 姓名:肖阿德班级:测控0801 学号:118 时间:地点:电气院楼305 实验二数据操作 1、写一个VI判断两个数的大小,如右图所示:当A>B时,指示灯亮。 2. 写一个VI获取当前系统时间,并将其转换为字符串和浮点数。这在实际编程中会经常遇到。 3. 写一个温度监测器,如右图所示,当温度超过报警上限,而且开启报警时,报警灯点亮。温度值可以由随即数发生器产生。 4.给定任意x, 求如下表达式的值 5.实验个人总结: 在获取系统时间的VI中,通过对格式化日期/时间字符串中的格式字符串的设置可选择需要输出的日期/时间的格式 当一些控件要求的数据格式与当前的输入/输出数据格式不相符时,可通过相应的转换函数进行强制转换; 在输入一些数学表达式时,注意一些特定的数学符号在LabVIEW中的规定表示法;

基于LabVIEW的控制系统仿真

基于LabVIEW的控制系统仿真 摘要 在控制理论教学和实验中,存在着设备短缺、教学手段单一等问题,采用虚拟控制系统实验方式可有效地解决这些问题。本文对控制系统仿真的意义与研究现状作了介绍,提出并确定了基于LabVIEW的控制系统仿真的实施方案。应用NI公司的LabVIEW 2009、控制设计工具包作为软件开发工具,实现了控制系统的建模、分析与设计这一系列过程的计算机仿真。经过编写程序和发布应用程序,最终开发出了一种交互式实验教学系统。该系统包含信号发生器、典型环节、质点-弹簧-阻尼器系统和一级倒立摆系统四个子模块,用户可进行控制系统建模、性能分析、PID设计、LQR设计等方面的研究。各个子模块运行良好,整个系统具有操作简单、界面友好和实时交互的特点;对于教学和实验的改革和创新具有一定的指导意义。 文中详细介绍了该实验教学系统的设计思路与设计过程。主体部分是对系统各个子模块的理论分析、相应的算法分析和虚拟仪器程序的编写,此外还涉及程序的动态调用和发布应用程序等内容。 关键词:控制系统;仿真;LabVIEW;倒立摆;实时交互

Simulation of Control System Based on LabVIEW Abstract In the teaching and experimental process of control theory, there exist problems such as equipment shortages, monotonous teaching methods and etc. We can use Virtual Instrument to solve these problems effectively. This paper introduces the significance and research status of the control system simulation, puts forward and determines the implement scheme of the Control System Simulation Based on LabVIEW. Use NI's products (LabVIEW 2009, Control Design Toolkit) as software development tools to realize computer simulation of the control system modeling, analysis and design process. After writing programs and publishing applications, we can achieve an interactive experimental and teaching system. The system consists of four sub-modules: signal generator, typical elements, the mass-spring-damper system and the single inverted pendulum system. Users can do research in control system modeling, performance analysis, PID design, LQR design and other aspects. Each sub-module of the system runs well, the whole system has the features as follows: simple, friendly interface and real-time interactive. It will provide the teaching and experiment field with reform and innovation. This paper describes the thinking and design process of the system in details. Theoretical analysis and algorithm analysis for the sub-module and Virtual Instrument programs writing are the main parts. It also discusses the dynamic program invocation and publishing applications and so on. Keywords:Control System; Simulation; LabVIEW; Inverted Pendulum; Real-Time Interaction

用labview设计一个计算器(虚拟仪器)

科目: 姓名:学号: 院系:类别:(学术、专业)

实验一Labview 计算器 一、实验目的 通过利用labview设计一个简易计算器熟练的掌握labview基本功能和基本操作方法。 二、实验要求 利用设计的计算器可以进行简单的四则运算、可以进行平方、开根号和倒数运算、计算器可以进行清零和关闭计算器操作、在输入数据时不慎将某个数字输错可以运用BackSpace清除该值等一些基本简单的运算。 三、实验原理和框图 1、前面板设计 前面板是LabVIEW的图形用户界面,在LabVIEW环境中可以对这些对象的外观和属性进行设计,LabVIEW提供了非常丰富的界面对象,可以方便地设计出生动、直观、操作方便的用户界面。本系统中前面板显示程序的输入和输出对象,即,控件和显示器。本程序中控件主要是按钮,显示器主要是文本显示。 在前面板设计过程中先在前面板整齐排列放置22个确定按钮,将这22按钮的标签隐藏,然后修改这22个确定按钮的名字分别为:0~9十个数字、小数点、正负号、加、减、乘、除、等号、倒数、根号、清零、退格和X的Y次方。 前面板还包括一个文本显示控件用于显示计算的结果和计算器的某些提示,通过改变显示控件的大小使之于计算器的大小相适应。计算器的前面板还有程序框图中while循环的停止按钮,当按钮按下时计算器停止工作退出到LabVIEW的编辑界面。 为了前面板的美观和防止按钮的移动,分别将前面板的各个按钮和文字进行组合和对前面板进行装饰,装饰采用修饰中的平面框。如下图所示:

2.后面板设计 程序框图对象包括接线端和节点,将各个对象连线连接便创建了程序框图,接线端的颜色和符号表明了相应输入控件或显示控件的数据类型。程序框图是程序的核心,程序要实现的功能都是通过程序框图反应出来的。本课程设计的程序框图主要运用了while循环、时间结构、条件结构和平铺顺序等结构。

labview实验报告

课程名称丿 ▲ 专业测控技术与仪器 班级1301 学号20 姓名郭鹏 实验一LabVIEW虚拟温度检测系统 一、实验目的 1?了解LabVIEW 的编程环境。 2?掌握LabVIEW 的基本操作方法,并编制简单的程序。 3 ?学习建立子程序的过程 二、实验内容 1.建立一个测量温度的VI。 a.实验步骤 1)选择File?New,打开一个新的前面板窗口。 2)从Controls?Numeric 中选择Tank放到前面板中。 3)从“结构”里选择一个for循环,用一个随机数乘与100输岀到温度计 b.实验结果 前面板图: 程序框图: 三、实验总结 1 ?总结VI基本编程的快捷操作。 答:显示程序框图或前面板ctrl+E 框图中,对象的移动:shift+鼠标选择移动;对象的复制:ctrl+鼠标选择移动; 对象的删除:鼠标选择,按<退格 >;前面板与框图并排:ctrl+T 工具(Tools )模板:在前面板或框图中按住键并单击鼠标右键。 控件(Controls)模板:在前面板激活状态,在前面板空白区单击右键。 函数(Functions )模板:在框图激活状态,在框图空白区单击右键。 消除所有断线:ctrl+B ;实时帮助:快捷键:ctrl+H 2?简述VI程序有什么构成,其各部分的功能是什么。 答:主要有:输入控件、显示控件、程序结构、函数控件、连线 输入控件:完成实时对变量的外界修改,即数据源 显示控件:完成输岀显示数据、图形等。显示仪器分析结果 程序结构:用外方框表示程序的执行顺序、总体上把握程序的执行控制。 函数控件:构成程序的主要部分,完成对数据的采集、分析直至输岀功能。

labview实验报告

实验报告 课程名称虚拟仪器技术分析与设计 专业测控技术与仪器 班级1301 学号20 姓名郭鹏 实验一 LabVIEW虚拟温度检测系统 一、实验目的 1.了解LabVIEW的编程环境。

2.掌握LabVIEW的基本操作方法,并编制简单的程序。 3.学习建立子程序的过程 二、实验内容 1.建立一个测量温度的VI。 a.实验步骤 1)选择File?New,打开一个新的前面板窗口。 2)从Controls?Numeric中选择Tank放到前面板中。 3)从“结构”里选择一个for循环,用一个随机数乘与100输出到温度计 b.实验结果 前面板图: 程序框图: 三、实验总结 1.总结VI基本编程的快捷操作。 答:显示程序框图或前面板ctrl+E 框图中,对象的移动:shift+鼠标选择移动;对象的复制:ctrl+鼠标选择移动; 对象的删除:鼠标选择,按<退格>;前面板与框图并排:ctrl+T 工具(Tools)模板:在前面板或框图中按住键并单击鼠标右键。 控件(Controls)模板:在前面板激活状态,在前面板空白区单击右键。 函数(Functions)模板:在框图激活状态,在框图空白区单击右键。 消除所有断线:ctrl+B ;实时帮助:快捷键:ctrl+H 2.简述VI程序有什么构成,其各部分的功能是什么。 答:主要有:输入控件、显示控件、程序结构、函数控件、连线 输入控件:完成实时对变量的外界修改,即数据源 显示控件:完成输出显示数据、图形等。显示仪器分析结果 程序结构:用外方框表示程序的执行顺序、总体上把握程序的执行控制。 函数控件:构成程序的主要部分,完成对数据的采集、分析直至输出功能。 连线:用线的方式显示数据流,完成上述结构之间的关系构建。 3.思考:在前面板和框图程序中,如何区分控制器和指示器。 答:在前面板中,控制器用以外部输入数据,因此输入框为白色表示可主动输入。而显示器只有显示功能,用于被动输出虚拟仪器分析结果,数据框显示灰色,不能用于外部输入。 在程序框图中。控制器端子在右侧,用于连接数据输出线。显示器端子在左侧,用于连接数 据输入线。可以右键将显示图标勾掉,此时两种元件外观也不同。 4.心得体会及其它。 答:实验很简单,没吸引力——首先提下建议。Labview是一种图形编程软件。上手很快,但达到一定程度后,发现没有课本便很难取得进步。原因是,个人觉得labview最重要的是对程序编程结构的深入体会和各函数控件功能的充分掌握。前者可以通过看范例理解加深。

基于AVR单片机和LabVIEW的丝杆步进电机运动控制系统

基于A VR单片机和LabVIEW的丝杆步进电机运动控制系统 A VR单片机为核心的嵌入式系统,配备专用步进电机驱动器实现对丝杆步进电机运动的控制工作,LabVIEW软件构建虚拟仪器系统并创建友好交互界面。单片机和LabVIEW之间确定串口通信规则,使LabVIEW能够发送相应字符串到单片机从而实现对丝杆步进电机启停、运动方向、运动步数的直接控制,并能够读取电机相关运动状态。文章设计的丝杆电机运动控制系统具有工作稳定,易于操作和可移植性强的特点。 标签:单片机;LabVIEW;步进电机;串口通信 1 概述 丝杆步进电机,又称线性步进电机,由于其特殊的机械机构和工作机理,在日常实验研究及工业生产等相关领域发挥着越来越大的作用。随着技术的不断发展创新,对于丝杆步进电机运动的控制方法已经不仅仅只限于单种技术的使用,而是多技术混合,结合各自的独特优势来实现最优化的系统设计。本系统以A VR 单片机为核心搭建硬件工作电路,LabVIEW软件创建虚拟仪器系统,解决了步进电机工作噪声较大,控制操作不便等问题。 2 系统组成 系统主要由装有LabVIEW软件的计算机,A VR单片机、电机驱动器和丝杆步进电机组成,系统组成框图如图1所示。 其中本系统中选用美国国家仪器(NI)公司研制开发的2014版LabVIEW 软件,LabVIEW是一种图形化的编程语言的开发环境,可以方便地建立自己的虚拟仪器,利用其编写的上位机程序控制下位机;下位机选用ATMEL公司中8位系列单片机的ATmega128系列单片机,该款单片机稳定性极高,功耗也很低,单片机与计算机之间通过USB线连接;电机驱动器选用TB6600型号的两相式步进电机驱动器,可实现正反转控制,通过3位拨码开关选择7档细分控制,3位拨码快关选择8档电流控制,能达到低振动、小噪声、高速度的效果;丝杆步进电机选用机身长度40mm,相电流1.7A,保持转矩43N·cm,导程8mm的42丝杆步进电机。 3 系统功能实现 本系统是一种丝杆步进电机运动控制系统,最终可通过LabVIEW直接发送控制丝杆步进电机启停、运动方向以及运动步数的命令,并能读取电机相关运动状态。要完成上述功能需要单片机硬件控制电机、单片机与LabVIEW串口通信和LabVIEW状态机三个基本功能的实现。 3.1 单片机硬件控制电机

基于LabVIEW的几种简单测量与控制系统.

基于LabVIEW的几种简单测量与控制系统 李鹏雄徐熙炜 指导老师:俞熹 (复旦大学物理系上海 200433) 摘要:本文介绍了虚拟仪器的概念,LabVIEW的概念、来源、特点以及应用,着重讨论了几种简化的实用测量与控制系统。对红绿灯系统提出改进,使其更接近于生活中的实际情况。最后有对本实验的理解。 关键词:虚拟仪器 LabVIEW 计算机实测与控制温度计光强红绿灯 一.引言 虚拟仪器(Virtual Instruments)指的是用计算机软件将计算机硬件与仪器硬件结合在一起,利用计算机强大的计算以及模拟能力和仪器设备实现控制和测量的目的的工具。区别于传统的仪器,虚拟仪器没有一套固定的设备、固定的外观和功能等,其很大一部分功能是依赖于计算机来实现的。所以虚拟仪器往往能缩小体积,减少硬件成本。 LabVIEW是实验室虚拟仪器集成环境(Laboratory Virtual Instrument Engineering Workbench)的简称,是美国国家仪器公司(NATIONAL INSTRUMENTS,简称NI)的创新软件产品。其功能是用编程的方法创建虚拟仪器,但是和传统的编程不同的是,它使用的是图形化的程序语言,称为“G”语言,编写的程序后缀为.VI。使用这种语言编程时,基本上不写程序代码,取而代之的是图标和流程图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。LabVIEW集成了与满足GPIB、VXI、RS-232 和RS-485协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。这是一个功能强大且灵活的软件。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。它也是目前应用最广、发展最快、功能最强的图形化软件集成开发环境。 二.LabVIEW下的几种简单测量与控制系统 使用LabVIEW开发平台编制的程序称为虚拟仪器程序,简称为VI。VI包括三个部分:程序前面板、框图程序和图标/连接器。程序前面板用于设置输入数值和观察输出量,用于模拟真实仪表的前面板。而每一个程序前面板都对应着一段框图程序。框图程序用LabVIEW图形编程语言编写,可以把它理解成传统程序的源代码。图标/连接器是子VI被其它VI调用的接口。 1.温度计 温度计程序是一个典型的测量用虚拟仪器。 图1就是温度计程序的前面板,可以看到上面有酒精温度计的图案,数字显示,还有两个显示电压和温度的框,以及一个停止按钮。

虚拟仪器在物理实验中的应用 实验报告

实验二十九虚拟仪器在物理实验中的应用 物理学院130061311 二下六组3号 2015.4.9 一.实验目的 1.了解虚拟仪器的概念 2.了解图形化编程语言LabVIEW,学习简单的LabVIEW编程 3.完成伏安法测电阻的虚拟仪器设计 二.仪器用具 计算机(含操作系统),LabVIEW软件,数据采集卡,电阻箱(用作标准电阻),导线,开关,待测电阻,二极管。 三.实验原理 虚拟仪器的硬件系统由PC机和数据采集卡(DAQ卡)组成.数据采集卡(DAQ卡)包括多路开关、放大器、采样/保持器、习D转换器以及其他有关电路组成.这些部分共同配合完成对信号数据的采集、放大以及模/数转换任务。 本实验中利用接口卡的一个通道为整个测量电路供电,利用两个输人通道分别测量总电压和标准电阻上的电压;利用测量得到的电压数值和标准电阻数值就可以得到电路中的电流以及待测电阻上的电压.在程序控制下,电路电压由OV开始逐渐增加到5V,电压每改变一次测量获得一组电压电流值,最后得到一个数组,经过线性拟合后就可以得到待测电阻值。 测量原理如图: 四.实验内容 1.初步熟悉LabVIEW 整个软件分为前面板和程序框图两部分。 前面板可以加入开关,旋钮各种控件和各种显示元件;在前面板添加的元件相应的子端

和图标会出现在程序框图上,可以在程序框图进实验编辑,另外,在程序框图内还有可控选择的大量函数模块以及各种实现程序的功能,例如循环,数字运算,比较,以及各种公式等。 2.创建一个模拟温度测量程序 前面板:开关(用于控制显示摄氏度/华氏度),温度计,温度值 程序框图:放入Demo V oltage Read 子程序,设计用开关切换摄氏/华氏度的逻辑程序,使温度计和温度值按需显示。 3.用虚拟仪器测量伏安特性 1)编写程序 前面板: 放入一个用于设置设备号的控制数、一个设定标准电阻值的控制数、一个用于设定测量间隔的控制数和一个显示测量电阻值的显示数。放人三个控制字符串,将名字分别改成“供电电压通道”、“测量总电压通道”、“测量电流通道”.分别用于设置输出输人的通道。 放上一个Express XY Graph,将名字改成“电阻的伏安曲线图”,并将纵坐标和横坐标分别改成“电压(V)”和“电流(A); 加人一个二维数组,把名字改成“数据”,用于显示测量的电压和电流。放人一个开关,用于控制程序进程. 程序框图: 设计一个循环程序,让程序不断改变电压,每次改变0.25V测20组电流电压数据,每次改变之后都使程序等待1s后测量,测量20组后循环停止,并画出电阻的伏安特性曲线图,计算出电阻R(斜率)。 2)连接口卡和外部电路 3)运行程序,记录结果,保存并退出 五.思考题 1.虚拟仪器与传统仪器有什么区别 传统仪器:数据显示形式单一,数据处理功能比较简单,不容易按需改装,不能共享数

基于labview的电梯控制设计

成绩评定表

课程设计任务书

目录 1 目的及基本要求 (1) 2 基本原理 (1) 2.1程序原理 (1) 2.2设计步骤 (1) 3 电梯控制设计和仿真 (2) 3.1 总体程序设计 (2) 3.2 控件描述 (3) 3.3 子程序设计 (4) 4 结果及性能分析 (6) 4.1 运行结果 (6) 4.2 性能分析 (7) 参考文献 (7)

1 目的及基本要求 熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器原理、设计方法和实现技巧,运用专业课程中的基本理论和实践知识,采用LabVIEW开发工具,实现国际象棋设计和仿真。 基本要求: 本程序是参照日常电梯使用规则而设计的,实现的功能是:程序运行后,可以选择要去的层数一层或者多层,电梯会从低到高的依次在已选择的层数停下来,然后在继续到下一个被选中的层数停下,当都已选楼层停下后,按钮会灭掉,回到一层,等待下一次的楼层选择。本程序基于电梯的特点利用LabVIEW制作的一款简单的电梯控制程序。 2 基本原理 2.1程序原理 设计上可大致分为以下几个部分: 1)主面板部分即电梯主界面的设置 2)控件部分即按钮的设置 3)控制部分就是通过操作按键来控制电梯移动 4)逻辑部分进行判断电梯走动没有,是否运行,同时布尔灯的亮灭 5)显示部分就是将电梯所到层数显示出来 运行原理: 程序运行后,首先规定电梯停在大楼的一层,然后根据右边所点亮的布尔控件上显示的数字层数,电梯经过时间的判断开始运行,向上或者向下移动,到达所选的楼层后,电梯停止,布尔灯灭掉,继续向下一个所选的楼层移动,直到所有的所选楼层全部停完后,

(完整版)虚拟仪器设计实验报告

实验一 实验要求: 一、熟悉LabVIEW环境 二、创建一个VI,发生一个值为0~1的随机数a,放大十倍后与某一常数b比较,若a>b,则指示灯亮。要求: 1、编程实现; 2、单步调试程序; 3、应用探针观察各数据流。 三、创建和调用子VI 1、创建一个字VI,子VI功能;输入3个参数后,求其和,再开方。 2、编一个VI调用子VI。 程序框图:

1、 2、子VI调用: 实验现象:

实验小结: 实验一主要熟悉了软件的使用,用了一些计算以及子VI的调用,为后面的实验打下基础。 实验二 实验要求: 一、在程序的前面板上创建一个数值型控件,为它输入一个数值;把这个数值乘以一个比例系数,再由该控件显示出来。 二、创建一个3行4列的数组,(1)求数组的最大于最小值;(2)求出创建数组的大小;(3)将数组转置;(4)将该2二维数组改为一个一维数组。 三、创建一个簇软件,成员为字符型姓名,数值型学号,布尔型注册。从该控件中提取簇成员注册,并显示在前面板上。 程序框图: 一、 二、

创建数组。三、 创建一个簇。实验现象:一、

二、 三、

实验三 实验要求: 一、产生100个0.0~100.0的随机数,求其最小值,最大值、平均值,并将数据在Graph 中显示。 An=An-1+1/n(An-An-1)An是前n个数据的平均值。 二、产生100个0.0~100.0的随机数序列,求其最小值、最大值、平均值,并将随机数序列和平均值序列显示在Chart波形图中,直到人为停止。 三、程序开始运行后,要求用户输入一个口令,口令正确时,滑键显示一个0~100的随机数,否则程序立即停止。 四、编写一个程序测试自己在前面板输入一下字符串用的时间:A virtual instrument is a program in the graphical programming luanguage. 程序框图: 一、

LabVIEW虚拟仪器实验报告

1.实验目的: 熟悉LabVIEW软件的基本编程环境。 2.实验内容: 创建一个VI程序,并将此程序保存为子VI。此VI要实现的功能是:当输入发动转速时,经过一定运算过程,输出发动机温度和汽车速度值。 3.实验步骤 (1)启动LabVIEW,创建一个VI。 (2)在前面板中放置一个温度计控件,并修改控件标签名为发动机温度和设置最大值为100。该控件从“控件—经典—经典数值”子选项板中获得。 (3)按同样的方法在前面板中放置一个仪表控件,并修改仪表控件的标签名为汽车速度,标尺刻度范围为0~150。 (4)按同样的方法在前面板中放置一个数值输入控件,并修改控件标签名为发动机转速。 (5)从“窗口”下拉菜单中选择“显示程序窗口”切换到程序框图窗口。 (6)在程序窗口中创建乘法函数,该函数中函数选项板中的“函数—编程—数值”子选项板中选择,并和发动机转速输入控件连线,为乘法函数创建一个常量,修改为图中所示值。 (7)按同样的方法创建加法函数、平方根函数和除法函数,并按图中所示修改常量值和连好线。 (8)切换至前面板,在发动机转速控件中输入数值,点击运行按钮,运行VI程序。 (9)修改图标为T/V以表示该子VI输出量为发动机温度和汽车速度,并保存为vi.vi。 前面板: 程序框图:

1.实验目的: 熟悉子VI的调用。 2.实验内容: 创建一个VI程序,并在编写程序过程中调用实验一中创建的子VI。此VI要实现的功能是:通过旋钮控件来控件输入的发动机转速值,中间调用实验一中创建的子VI作为计算过程,从子VI输出的值分别输出至不同的数值显示发动机的温度以及当前汽车速度,同时判断当汽车速度超过100时,系统将产生蜂鸣声,报警提示。 3.实验步骤: (1)启动LabVIEW,创建一个VI。 (2)在前面板中创建一个旋钮控件,修改标签名为发动机转速,设置数值范围为0~5000,从旋钮控件中调出一个数字显示控件来同步显示旋钮控件当前值。 (3)在前面板创建两个数值显示控件,并修改标签名为汽车速度和发动机温度。 (4)切换至程序框图窗口。 (5)在程序框图中创建一个大于或等于函数。 (6)在程序框图中调用实验一的子函数,从函数选板中的“函数—选择VI”选在实验一创建的子vi.vi。 (7)在程序框图中创建一个蜂鸣器函数,并按图示连线情况连线。 (8)切换至前面板,在发动机转速中输入数值,点击运行按钮运行。 前面板: 程序框图:

基于LabVIEW软件的PID自动控制

苏州大学机电工程学院 Soochow University of Mechanical and Electrical Engineering 课程设计报告 Curriculum design 课题名称:基于LabVIEW软件的PID自动控制学院: ********院 专业:********* 姓名:*** 学号:****

目录 一、PID控制原理 (1) 1、PID控制介绍 (1) 2、PID控制规律 (1) 3、PID 控制的性能指标 (3) 4、PID 控制器参数整定的分类 (3) 5、PID相关控制 (5) 6、数字PID (7) 二、LabVIEW8.5软件 (9) 1、简介 (9) 2、特点 (10) 3、虚拟仪器 (11) 4、应用领域 (12) 三、前期练习题目与内容 (14) 四、设计内容与要求 (17) 1、设计内容 (17) 2、设计要求 (17) 五、设计方案 (18) 1、设计思路 (18) 2、程序框图设计 (20) 3、控制面板设计 (21) 六、最终设计结果及运行情况 (22) 1、程序框图 (22) 2、控制面板 (22)

七、课程设计心得 (25)

基于LabVIEW软件的PID自动控制 一、PID控制原理 1、PID 控制介绍 PID 控制是过程控制中广泛应用的一种控制,简单的说就是按偏差的比例(proportional)、积分(Integral)、微分(Derivative)进行的控制。当今,尽管各种高级控制在不断的完善,但目前在实际生产过程中应用最多的仍是常规PID 控制,其原因是: 1) 各种高级控制在应用上还不完善; 2) 大多数控制对象使用常规PID 控制即可以满足实际的需要; 3) 高级控制难以被企业技术人员掌握。 PID 控制器具有结构简单,参数易于调整等优点。在长期的工程实践中,人们对PID控制己经积累了丰富的经验。特别是在那些实际过程控制中,控制对象的精确数学模型难以建立,系统参数又经常发生变化,常采用PID 控制器,并根据经验进行在线整定。 以下将从PID 控制规律、PID 控制的性能指标及PID 控制参数整定三个方面对PID 控制做进一步的介绍。 2、PID 控制规律 PID(Proportional,Integral and Differential)控制器是一种基于“过去”,“现在”和“未来”信息估计的简单算法。

LabView实验报告

机电系统创新性综合实验 实验报告 学院:机械工程学院 专业:机械设计制造及其自动化班级:机自 124 班 学号: 1208030436 学生姓名:王彤 指导教师:蔡家斌、曹阳 2015年12月12

目录 实验题目: LabView创新实验 (1) 实验一1.1实验内容 (1) 1.2实验过程 (1) 1.3实验小结 (3) 1.4实验总结与感想 (5) 实验二2.1实验内容. (5) 2.2 实验过程 (5) 2.3实验小结 (7) 2.4实验总结与感想 (8) 实验三3.1实验内容 (8) 3.2实验过程 (8) 3.3实验小结 (10) 3.4实验总结与感想 (11)

实验题目 本次LabView实验共有6个实验题目,有两个选择方案,我选择了第一种方案:在六个实验中选择了三个,分别是实验一、二、三。通过自学和同学间的互相帮助,我学会了LabView软件的使用,完成了本次实验。 实验一虚拟信号发生器的设计 1.1实验内容 设计一个虚拟信号发生器,能够产生正弦波、三角波、锯齿波、直流、随机白噪声等信号〔波型选择用按键或旋钮〕,且可以调整波形参数。通过示波器可以观察虚拟信号发生器的输出信号。可以通过前面板选择信号波形,调节信号的频率、幅值和相位〔频率、幅值、相位用数字窗口显示〕,并通过虚拟示波器观察生成的波形。 1.2实验过程 1.新建一个VI,在后面板上创建一个选择结构; 2.在选择器标签中选择一个设置为默认,并在后面添加4个分支,以便写入多种不同的程序; 3.在选择结构中建立一个仿真信号,属性设置-信号类型-正弦波-确定;

4.在仿真信号中的对应位置创建输入控件,输出处创建波形图,分别连接在仿真信号的相应位置。 5. 6.其他几种波形信号按照相同方式创建在不同的选择标签中,并在选择结构外部建立一个While循环,可以让程序连续执行。

相关文档
最新文档