700 likes | 845 Views
《 虚拟仪器 》. 电子科技大学自动化学院 虚拟仪器课程组 028 - 88013287 zhanhq@uestc.edu.cn. 2. 虚拟仪器软件开发平台. 2.1 虚拟仪器软件开发平台介绍 2.1.1 概述 软件可完成数据分析与处理、结果表达与输出。 同一硬件平台,软件不同,则功能不同。 虚拟仪器软件应完成以下功能: 1 、仪器面板的软件设计 。 2 、仪器测试功能的软件设计。 3 、 I/O 接口的仪器驱动程序设计。. 虚拟仪器的软件开发工具 :. ( 1 ) 文本式编程语言
E N D
《虚拟仪器》 电子科技大学自动化学院 虚拟仪器课程组 028-88013287 zhanhq@uestc.edu.cn
2.虚拟仪器软件开发平台 2.1 虚拟仪器软件开发平台介绍 2.1.1 概述 • 软件可完成数据分析与处理、结果表达与输出。 • 同一硬件平台,软件不同,则功能不同。 • 虚拟仪器软件应完成以下功能: 1、仪器面板的软件设计。 2、仪器测试功能的软件设计。 3、I/O接口的仪器驱动程序设计。
虚拟仪器的软件开发工具: (1)文本式编程语言 有C、Visual C++、Visual Basic和Labwindows/CVI等。 (2)图形化编程语言 有NI公司的LabVIEW和Agilent公司的Agilent VEE等。
2.1.2 LabVIEW • 特点: • (1)图形化的仪器编程环境 • 提供显示和控制对象,如表头、旋钮、图表等。 • (2)内置高效的程序编译器 • 编译方式运行32位应用程序 ,内置代码评估器。 • (3)灵活的程序调试手段 • 可设断点 ,探针,高亮,单步。 • (4)支持各种数据采集与仪器通信应用 • 支持 ISA、EISA、PCI、PCMCIA和MacintoshNuBus等各种总线 。
(5)功能强大的数据处理和分析函数库 • 包括数值函数、字符串处理函数、数据运算函数和文件I/O函数,还包括概率与统计、回归分析、线性代数、信号处理、数字滤波器、窗函数、三维图形处理等高级分析函数。 • (6)支持多种系统平台 • 可在LabVIEW平台上调用其他软件平台编译的模块。 • (7)开放式的开发平台 • (8)网络功能
2.1.3 LabWindows/CVI • 特点: • (1)采用事件驱动与回调函数编程 • (2)集成化开发平台 • (3)支持多种总线 • (4)支持数据处理和分析功能,提供格式化I/O库、Analysis库、Advanccd Analysis库、ANSI C库等 • (5)提供图形化用户界面编辑,User Interface库 • (6)支持网络和进程间通信功能 • (7)支持多种操作系统
2.1.4 Agilent VEE • 特点: • (1)图形化的编程 • 提供显示和控制模块 ,如按钮、图表、温度指示器等 。 • (2)内置的程序编译器 • 交互式编译器技术 • (3)丰富的仪器驱动程序
(4)强大的数据分析与处理 • 数理统计、类型比较、矩阵运算、微积分、信号分析与处理、数字滤波器等 。 • (5)灵活的程序调试手段 • 可设断点,单步,分步。 • (6)支持多种系统平台 • (7)网络功能
2.2 LabVIEW编程初步 2.2.1 LabVIEW的基本VI介绍 • LabVIEW中开发的应用程序称为虚拟仪器(Virtual instruments)程序,简称VI。 • 一个基本的VI包括: • 前面板(front panel) • 框图程序(block diagram) • 图标/连结端口(icon/connector)
例如:求两个数的和与差 节点 控制型控件 指示型控件 前面板 端口 框图程序 • 前面板: • 包括两类控件:控制型控件(control) ,指示型控件(indicator) 。 • 框图程序: • 由节点(node)、端口(terminal)和数据连线(wire)组成 。
1.节点 • 节点是程序的执行元素,LabVIEW有4种节点类型: • 函数(functions):执行各种数学运算、文件输入/输出等基本操作 。节点代码不能修改。 • 结构控制(structures):实现结构化程序控制 。 • 代码端口(CIN、DLL):是与C语言程序或动态连接库的接口。 • 子VI:节点代码可以修改。 2.端口 3.数据连线 • 定义了框图程序中的数据流动方向 。
2.2.2 LabVIEW的基本开发环境 • 1.启动界面 LabVIEW 7 Express的启动界面 单击,会生成一个新VI ,新VI包括前面板窗口、框图程序窗口
框图程序窗口 新的VI界面 前面板窗口
2.窗口主菜单 • 包括文件(File)、编辑(Edit)、操作(Operate)、工具(Tools)、浏览(Browse)、窗口(Windows)、帮助(Help)。 • 3.窗口工具栏 • 前面板窗口工具栏如下图。 主菜单
高亮、单步步入、单步步过、单步步出 • 框图程序窗口的工具栏与前面板类似,只增加了4个调试按钮。 • 窗口主菜单与前面板相同。 点击该高亮执行按钮可使VI程序的运行以一种缓慢的节奏一步一步地执行程序,所执行到的节点都以高亮方式显示,并可观察到数据的流动,这样用户可以清楚地了解到程序的运行过程,也可以很方便地查找错误 。
2.2.3 LabVIEW的模板 • 程序的创建主要依靠三个模板: • 工具(Tools)模板 • 控件(Controls)模板 • 函数(Functions)模板 • 1.工具模板 • 选择Windows菜单下的Show Tools Palette选项可显示出工具模板。 • 使用工具模板中的工具可创建、修改和调试VI。当从工具模板中选择了某种工具后,鼠标光标就变为该工具的形状,表示可以进行某类操作。
2. 控件模板 • 选择前面板窗口的Windows菜单下的Show Controls Palette选项可显示出控制模板。 • 控制模板只用于前面板,用来创建控制器和指示器。模板中显示的是一些子模板的图标,点击图标即可弹出该图标下的子模板。
其中最常用的控件是:数值型 、布尔型 • ①数值型 Numeric • 主要完成参数设置和结果显示。 • 这些控件相对于高级文本中的变量。 • 控制型控件有:数字式、滑动式、进度条式、旋纽式、桶式 • 指示型控件有:数字式、表盘式、温度计式、色彩
数值型控件的属性设置 • 前面板窗口中放置一个数值型控件Knob,鼠标右击控件会弹出一个快捷菜单。
快捷菜单中有一些共同的选项,如: • ①Visible ltems:显示、隐藏控件的一些属性。 • ②Find Terminal:高亮显示和该控件相对应的数据端口。 • ③Change to Control/Indicator:控制和指示属性的转换。 • ④Description and Tip…:打开控件对象的描述/提示对话框。 • ⑤Create:创建局部变量(Local Variable)、属性节点(Property Node)、控件参考(Reference)以及调用节点(1nvoke Node)。
⑥Replace:用其它控件对象来代替当前对象。 • ⑦ DataOperations:对数据的操作: • ReinitializetoDefaultValue:恢复初始值。 • MakeCurrentValueDefault:设初始(默认)值。 • DataSocketConnection:启动DataSocket连接。 • Cut/Copy/PasteData:剪切/复制/粘贴。 • ⑧Advanced:对前面板对象的高级操作: • KeyNavigation:快捷键的设置SynchronousDisplay:同步显示 • Customize:用户自行定制控件。 • HideControl/Indicator:在前面板隐藏控制。EnabledState:确定对象是否有效。
在数值型控件Knob快捷菜单中还有: • Representation(数据类型设置) • Data Range(数值范围设置) • Format and Precision(数据表示格式和精度设置) • Add Needle(添加指示针) • Scale(刻度) • Text Labels(文本刻度模式) • Properties(属性设置)
在控件快捷菜单中选择 Properties,将打开控件的属性对话窗口。
在Knob数值型控件的属性窗口中包括以下设置:在Knob数值型控件的属性窗口中包括以下设置: • Appearance:外观设置。 • 可设控件的标签(Label)、标题 (Caption), 可用性设置Enabled State,可设该旋钮控件指针(Needle)颜色。 • Data Range:数据范围设置。 • 可设置控件的缺省值Default Value,数据的表示法Representation,设置控件的最小值、最大值以及数值变化步长。
Scale:刻度设置。 • 可设置刻度线的颜色、刻度标识文字颜色、刻度反向、对数分布、显示颜色梯度图。还设置最小刻线值、最大刻线值。 • Format and Precision 数据表示格式和精度设置。 • 可选择设置数据表示为浮点、科学记数法、十六进制、二进制等以及数据的小数点后保留的位数。
单击属性对话窗口右上角的移动按钮,还会出现Text Labels和Documentaion的设置。 • 将该控件设置为文本刻度模式,控件的文本刻度分别设置为sine、Square和Triangle,控件在前面板的外观如右图。
②布尔型 • 包含控制器和指示器:按钮、开关、指示灯按键等。 • 控件的值只能是Ture和False。
在前面板窗口中放置一个布尔型控件Boolean,然后用鼠标右键单击该控件,会弹出一个快捷菜单 。 Boolean控件的特有选项
在快捷菜单中选择“Properties”,会弹出该控件的属性窗口 。 动作方式 文字说明 图解 m表示鼠标的操作动作 ,下降沿表示鼠标左键按下的时刻,上升沿表示鼠标按键释放的时刻。 V 表示开关的值,0或1 。 RD 表示程序读取控件的时间点。
在Switch When Pressed、Switch When Released、Switch Until Released三种动作方式中,开关的状态变化与VI程序是否读取开关值无关。 • 在Latch When Pressed、Latch When Released、Latch Until Released三种动作方式中,开关的状态变化与VI程序读取有关。 • 选择Latch When Pressed动作方式,表明当开关按下鼠标时,开关的值立刻改变,并保持该值,直到VI程序读取该值后,其值又恢复为初始值(与按下鼠标后是否释放无关)。 • 该开关动作常用于终止While循环。
3.函数模板(Functions Palette) • 用于创建流程图程序。
2.2.4创建VI程序 • VI程序的创建: • 创建前面板 • 设计框图程序 • 调试程序 • 1.前面板的设计 • 应根据实际中的仪器面板以及该虚拟仪器所要实现的功能来设计前面板。 • 多数控件本质的区别在于其代表的数据类型不同 。 • 可对控件对象进行编辑,包括: • 改变对象的大小, • 设置对象的颜色, • 设置对象标签、 • 标题的字体, • 排列、组合、锁定对象。
2.框图程序的设计 • 框图程序相当于源代码 。 • 用函数模板中VI的相关函数和程序结构 ,去处理数据以及数据端口之间的关系 。 • 函数和程序结构即是节点,节点即是程序的一条语句,它包括函数、VI子程序、结构和代码接口 。 • 数据端口则可理解为程序的变量。
3.程序的调试 • 如果VI程序有错误,不能运行,工具栏的Run按钮将会显示成一个折断的箭头。 • 点击该按钮可打开一个显示错误清单的窗口,选择一个列出的错误项,然后再点击Find按钮,则框图程序中出错的对象就会被呈高亮状态显示。 • VI程序常见的错误: • (1)连接的端口之间数据类型不匹配。 • (2)必须连接的函数数据端口未连线。
程序的调试方法主要有: • (1)高亮显示执行方式:正在执行的节点会以高亮形式显示。常结合单步模式,跟踪框图中的数据流传输情况。 • (2) 单步执行:一个节点一个节点地执行。 • (3)探针:查看运行过程中数据流在该连线上的数据。 • (4)断点:程序运行到该处时会暂停执行,再单击暂停按钮程序会继续运行到下一个断点处或直到VI运行结束。
温度显示实例 • 程序需实现功能:每隔一定时间测量一次温度,显示当前的测量温度值和已运行时间,同时显示实时温度测量曲线。 • 第1步:设计前面板 • (1)在前面板放置一个Knob控件,此圆形旋钮用于选择测量时间间隔。 • (2)在前面板放置一个布尔型控件开关,此开关用于控制测量的启停。
(3)在前面板放置一个数值型的指示控件,用于显示程序运行时间。(3)在前面板放置一个数值型的指示控件,用于显示程序运行时间。 • (4)在前面板放置一个图形显示控件,用于显示温度实时测量曲线。 • 在控件的快捷菜单中选择Visible Items→Digital Display,显示出该控件附带的一个数字指示 ,并用文本标签工具添加文本“温度”
第2步:设计框图程序 • (1)切换到框图程序窗口,调整数据端口图标的位置,Waveform Chart控件,它在框图程序中出现的初始端口图标是 ,在该图标上右击弹出的快捷菜单中选择View As Icon项,端口图标就变为 。 • (2)选择While Loop,While循环中的 端口输出While循环次数。