LabWindows CVI 6.0 编程指南
LabWindowsCVI6.0编程指南日录第1章绪论简介程序开发概述在中使用语言的程序结构的新特性装第2章 Labwindows/CVⅥI的开发环境载入、运行和编辑源程序的主要窗口源代码编辑工具操作用户界面的控件生成交互式代码访问用户界面库函数面板执行和调试程序单步执行断点显示和编辑数据第3章 Labwindows/CV应用程序设计38图形用户界面用户界面编辑器源代码连接代码生成器建立用户界面文件仗用函数面板和函数库源代码分析生成随机数组构建⊥程运行完整的工程添加分析功能修改用户界面编写回调函数运行程序用户事件处理用户事件回调函数第4章基本函数库用户界面库(面板()操作用户界面管理(菜单结构(控件曲线图带状图()操作弹出面板函数格式化输入输出斥(文件输入输出(字符串处理(数据格式化(实用函数库(定时等待(日期时间(文件应用(路径应用(端口(函数库接口介绍函数库概述编程举例第5章高级函数库116高级分析库概述应用实例斥网络化仪器协议与库服务器程序设计客户程序设计介绍发送数据程序设计接收数据程序设计工具厍(L具斥简介密码设计工具条设计分页界面设计系统托盘设计第6章数据库应用程序开发— SQL Toolkit183概述功能概述的安装入门数据库基木概念结构化查询语言控件数据库基本操作数据库操作基木步骤使用的函数库数据斥高级操作设置连接属性设置语句属性操作复合语句第7章高级程序设计230和的基础知识创建和调试使用概述编程实例多线程概述两种多线程机制多线稈间的数据保护防止死锁监视和控制次线程线程的优先级线程局部变量其它一些要注意的问题第8章 ActiveX技术261技术简介使用控件设计带有控件的应用程序需要注意的问题创建服务器应用程序、对象和接口创建服务器工具生成的代码库—服务器函数联编并发布服务器注册线程模式调试服务器些建议、提示和技巧第9章虚拟仪器软件设计301虚拟仪器概述规范规范概述虚拟仪器软件结构仪器驱动程序开发仪器驱动程序模型函数的应用函数面板的设计动态链接库的牛成仪器软面板的设计仪器软血板软面板的设计叫执行文件的生成帮助文件的制作安装盘的制作规范的安装要求制作安装盘驱动程序仪器可互换性驱动程序的结构驱动程序的其他功能驱动程序开发向导驱动程序与驱动程序附录A函数Fmt、Scan的标识符和修饰符附录BS叫L命令348虚拟仪器软件开发环境—一编程指南第1章绪论是公司美国国家仪器公司,简称公司推出的交互式语言开发平台。将功能强大、使用灵活的语言平台与用于数据采集分析和显示的测控专业L具有机地结合起来,利用它的集成化开发环境、交互式编程方法、函数面板和卡富的库函数大大增强了语言的功能,为熟悉语言的开发设计人员编写检测系统、自动测试环境、数据采集系统、过程监控系统等应用软件提供了一个理想的软件廾发坯境。考虑到人多数测控软件设计人员已经掌握了语言,因此本书的重点放在如何使用的编程环境和应用开发测控应用程序上。本书使用的版本是1.1 Labwindows/CV简介是为语言程序员提供的软件开发系统,在其交互式开发环境中编写的程序必须符合标准规范。使用可以完成如下工作:交互式的程厅开发;只有功能强大的函数库,用来创建数据米集和仪器控制的应用程序充分利用宄备的软件工具进行数据采集、分析和显示利用向导开发仪器驱动程序和创建服务器为其它程序开发目标模块、动态连接库)、语言库。在开发环境中可以利用其提供的库函数来实现程序设计、编辑、编译、链接和标准语言程序调试。在该丌发环垙中可以用丰富的函数库来编写程序,此外每个函数都有一个叫做函数面板()的交互式操作界面,在函数面板中可以执行该函数并可以生成调用该函数的代码,也可通过右击面板或控件获得有关函数、参数、函数类和函数库的帮助。在的交互式环境中编写程序必须符合标准语言的规范。另外,在开发应用程序时可以使用编译好的语言目标模块,动态链接库静态库和仪器驱动程序(如何在中载入目标模块和动态链接斥将在第章介绍)。的功能强大在于它提供了丰富的函数库。利用这些库函数除可实现常规的程序设计外,还可实现更加复杂的数据采集和仪器控制系统的廾发。其中比较重要的函数库如图所示仪器库是的特殊资源。它包括和仪器的驱动程序,如示波器、多用表和函数发生器,每个驱动程序都提供可编辑的源代码。使用开发工只提供的库函数可以创建自己的仪器驱动程序,可以创建单个仪器、多个仪器或实际上并不存在的虚拟仪器的驱动程序,在创建仪器驱动程序过程中可以虚拟仪器软件开发环境—一编程指南仪器库厍数据采集库数据采集厍格式化和厍数据分析分析库高级分析库函数库数据表示用户界面库动态数据交换厍网络和进程通讯传输控制协议库库标准凶数库的函数厍使用的其它库函数(本书在第章将介绍仪器驱动程序的开发)。使用的用户界面编辑器可以创建并编辑图形用户界面,而使用的用户界面库函数可以在程序中创建并控制。此外,为面板的设计,准备了许多专业控件,如:曲线图控件、带状图控件、表头、旋钮和指示灯等,以适应测控系统软件开发的需求,利用这些控件可以设计出专业的测控程序界面1.2 Labwindows/GVI程序开发概述在下开发应用程序和使用其它语言和开发环境一样,要保持良好的编程习惯。例如,在编写代码之前要改计程序的功能结构,冋时在代码中要有良好的文档和注释,这些可以帮助你更好的进行管理程序的开发。1.2.1在 Labwindows/cV中使用C语言使用的是语言,并且为仪器方面的应用程序开发增加了许多语言所不具备的功能。在使用之前,需要有语言的基础,在中可以使用它提供的标准厍函数。1.2.2 Labwindows/GVI的程序结构大多数工程测控软件都包含如下内容虚拟仪器软件开发环境—一编程指南用户界面程序控制:数据采集数据分析它们之间的相互关系如图所示。图是应用程序的组成示意图。其中,用户界面、数据呆集和数据分析部分将必要的信息输入给程序控制部分进行处理,每个部分还可再分成若干个子部件用户界面数据采集数据分析面板格式化菜单数字信号处理对话框统计朴学图表数据采集曲线拟合硬拷贝输出仪器驱动程序数组操作程序控制控制逻辑数据存储图应用程序各部分的相互关系用户界面用用户界面编辑器能轻松地建立复杂的交互式面板。设计的过程中,开发人员常常要确定程序如何获取并显示薮据,对菜单、面板、控件和对话框如何操作等问题,因此用户界面自然成为程序设计的起点二、代码生成器生成程序框架在用户界面绽辑器中完成设计后,能够使用代码生成器自动生成基于组件的程序框架。代码生成器自动写出所有控件的回调函数的框架,创建主程序,从而在程序启动时加载并显示窗体。代码编辑器自动生成程序的通用代码,从而节省了人量的程序开发时间。、程序控制程序控制部分同薮据采集、数据分析和用户界面协调运作。它包括管理程序流程的控虚拟仪器软件开发环境—一编程指南制逻辑和用户定义的支持函数。大多数控制程序的代码是手写完成的,学习软件光盘中所提供的例稈,能够很好理解如何编写测控稈序的代码。注意例程中回调函数的使用,它可以大大简化应用流程的控制四、数据采集通常的测控程序必须对从仪器或数据采集()设备的数据采集进行控制,程序的其它部分是对这些数据进行分析和显示各种库提供用来创建数据采集部分的函数,用这些库函数控制和设备以及的数据采集设备。此外,仪器斥包括多种常用的和仪器的驱动程序。五、数据分析获取数据后经常需要进行分析。例如,可能要对数据进行格式化、归一化、信号处理、统计和曲线拟合。格式化和库、分析库高级分析库提供了完成这些操作的函数。1.3 LabWindows/CVI6.0的新特性和以前的版本相比有一些改进,并增添了一些功能:用户可以在用户界面编辑器中创建控件,并在的程序中对它进行控制,本书将在第章“使用控件”中介绍用户可以用中的向导创建或者编辑服务器,本书将在第章“创建服务器”中介绍。用户界面厍中包含了一系列新的搾件。另外,对先前版本原有的搾件和菜单也进行了修改,使其更加接近标准的控件,的控件将在第章的的控件”中介绍支持多字节字符的应用。另外,现在的标准库和仪器驱动程序的上具箱包含了用户可以调用的函数和宏,用户可以用它们实现包含多字节字符的语句。在源程序中书写中文不会像先前的版本那样出现乱码。源代码浏览器列出了程序中的所有的文件、函数、变量、数据类型以及宏。用户可以用这个浏览器了解到程序的一个部分如何与另一个部分相互作用,本书将在第章“源代码编辑工具”中介绍这部分内容。用户可以用图形数组浏览窗∏作为调试上具,以图形方式观察生成的维或二维数组,该部分内容将在第章“显示和编辑数据”中介绍。在中,用户可以将多个工程分组到一个工作台。所有关于工程的外来设置都受工作台的保护。使用工作台,使得在同一源代码设置下的多个开发人员更容易共享工程。用户可以在用户界面编辑器中俣存预宄设置好的用户界面控件,以后可以在用户界面面板中使用,本书将在第章“的控件”中介绍
- 2020-12-07下载
- 积分:1
fluent udf中文帮助
fluent udf中文帮助本章简要地介绍了用户自定义函数(UDF)及其在 Fluent 中的用法。在 1.1 到 1.6 节中我们会介绍一下什么是 UDF;如何使用 UDF,以及为什么要使用 UDF,Makefile udfmakefile udf2DEF INE PROPERTYDEFINE DRIFT DI AM基础输运方程单元()面,区域()和线(操作求解器数据运仃输运方程求解器建立在有限容积法的基础上,这种方法将计算域离散为有限数目的控制体或是单元。网格单元是中基本的计算单元,这些单元的守恒特性必须保证。也就是说普通输运方程,例如质量,动量,能量方程的积分形式可以应用到锊个单元:/pad+,p·dA=中 TODa+/,SwAunsteadyeonv画 ctiondiffusiongeneration此处,是描述普通输运数量的变量()根据所求解的输运方程它可取不同的值。下面是在输运方程中可求解的的子集E守恒与否需要知道通过单元边界的通量。因此,需计算出单元和面上的属性值(单元()面,区域()和线(单元和单元面被组合为一些区域(),这些区域规定了计算域(例如,入口,出口,壁面)的物理组成)。当用户使用的时,用户的叮调用流体区域或是边界区域的计算变量(需要获得适当的变量,比如说是区域参考)和单元,以便标定各个单元。区域)是一群单元或单元面的集合,它可以由模型和区域的物理特征(比如入∏,出∏,壁面,流伓区域)来标定。例如,·些被指定为面域()的单元面可以被指定为类型,由此,速度也就可指定了。线()是据结构的内部名称,可被用来指定一个区域结构可作为数据储存器米使用,这些数据对于它所表示的单元和面来说是公用的(操作多数的任务需要在一个线的所有单元和面上重复执行。比如,定义一个自定义轮廓函数()则会对一个面线上)的所有单元和面进行循环。为了用户方使向用户提供了一些循环宏工具(来执行对单元,面,节点()和线()的重复操作例如,单元循环宏()可以对给定单元线上的所有单元进行循环操作()。而面循环宏()则可调用所有给定面线()的面。提供的循环工具请见在某些情况下需要对某个变量操作,而这个变量恰恰又不能直接被当作变量来传递调用。比如,如果用户使用宏来定义,求解器将不会向它传递指针。这种情况下,用户函数需要用提供的宏来调用线指针(见求解器数据通过用户界面将函数(它已被编译和连接)连接到求解器上可实现调用求解器变量。旦和求解器正确连接,无论何时,函数都可调用求解器数据。这些数据将会被作为用户变量自动地传递给注意,所有的求解器变量,不管是求解器传递给的,还是传递给求解器的,都使用单位。运行将会在侦定时刻被调用。但是,也可对它们进行异步执行,使用宏,还可在需要时()执行。详情请见解释和编译的比较编译和的构建方式一样。脚木被用来调用编译器来构建一个当地目标代码库()。目标代码库包含高级语言源代码的机器语言翻译。代码库在运行时由“动态加载”()过程连接到上。连接后,与共亨库的联系()将会被保存在用户的文件中这样,当以后再读入文件时,此编译库将会与自动连接。这些库是针对计算机的体系结构和·定版本的使用的。所以,当更新,或计算机操作系统改变,或是在不同类型的机器上运行时,这些库必须重新构建而解释则是在运行吋,直接从语言源代码编译和装载()。在运行中,源代码被编译为中介的独立于物理结构的使用预处理程序的机器代码(被调用时,机器代码由內部仿真器(),或注释器)执行。注释器不具备标准编译器的所有功能;它不支持语言的某些原理。所以,在使用吋,有语言限制(见)。例如,不能够通过废弃结构()来获得数据。要获得数据结构,必须使用由提供的预定义宏。另一个例子是不能识别指针数组。这些功能必须由来执行。编译后,用户的函数名称和内容将会被储存在文件中。函数将会在读入文件时被自动编译。独立于物理结构的代码的外层()叮能会导致执行错误(),但却可使共亨不同的物理结构,操作系统,和版本。如果运行速度较慢,不用被调节就可以编译代码的形式(运行中的和请见选择或是时,注意以下内容:对其它平台是便捷的(可作为()来运行不需编译器。慢需要较多的代码。在使用语言上有限制。不能与编译系统或用户库()连接。只能使用预定义宏来获得结构中的数据。(见和)比运行快在使用语言上不存在限制可用任何编译器编译。能调用以其他语言编写的函数机器物理结构需要用户建立的每个版本的共享库(如果包含有注释器()不能处理得语言元素,则不能作为)运行总的来说,当决定使用那种类型的时使用作为简单的函数使用作为复杂的函数,这些函数对有较大要求(例如每次运行时,在每个单元上均须调用的属性需要使用编译库一个例子编辑代码,并且在用户的模型中有效使用它,须遵循以卜七个基木步骤定义用户模型。编制语言源代码。运行读入,并设置文件。编译或注释()语言源代码。在中激活开始计算。分析计算结果,并与期望值比较。在开始解决问题前,用户必须使用定义希望解决的问题()。例如,加入用户希望使用来定义一个用户化的边界条件()。用户首先需要定义一系列数学方程来描述这个条件。接下来用户需要将这些数学方程(概念设计)用语言写成一个函数)。用户可用文本编辑器米完成这一步。以为后缀名米把这个文件保存在工作路径下。写完语言函数后,用户即可运行并且读入或设置文件()。对C语言源代码进行注释,编译,和调试),并在中激活用户函数()。最后,运行计算(),分析结果并与期望值比较。()。根据用户对结果的分析,可将上述整个过程重复几次。具体如下。定义用户模型生成和使用的第一步是定义用户的模型方程。如图所示的涡轮叶片。模拟叶片冑围的流玚使用了非结构化网格。计算域由底端的周期性边界()延伸到顶端的相同部分(),速度入口在左边,压力出口在右边。Irvine ua〔15512405危e893nde5)文中对入口速度为常数分布和抛物线分布的流场进行了比较。分段线性的分布可由边界场选项得到(),而多项式分布则只能使用用户自定义函数得到。进口速度为常数()的结果如图1.7.2和1.7.3所示。当流动沿着涡轮叶片进行时,初始速度场被改变了。了4101265105 tces. 89E.11电+01Turbine vane〔1551cl,2405他e,的93nde引假定现在要设涡轮叶片入∏速度不是常数值,其分布如下2un=20-2000745士变量在入口中心处为0.0,在入口上部和下部则分别为而入口中心处的速度为边界上为0。用户可用描述这一分布,并将它应运到模型中来解决这类问题。编制语言源代码。选定方程定义后,用户可用任意文本编辑器来书写C语言代码。以扩展名保存源代码文件保存到工作路径下。关于的书写请参考下面是一个怎样在中应用方程的例子。的功能由主要的宏()米定义。此处,宏用来表示下面的代码旨在给求解器捉供边界的轮廓信息。书中将在以后部分讨论其它的宏宏的第一个变量用来定义速度入口面板中的函数。名称可任意指定。在给定的边界区域上的所有单元面()上将会使用函数的这个方程。当用户在用户界面选定作为边界条件时,将会自动定义线()。下标由应用程序自动定义。中被用来形成对边界区域上所有单元面的循环()。对于每个面,面的质心()的坐标可由宏来获得。抛物线方程中用到了坐标,速度值通过宏来返回给面。宏和宏都是提供的宏。详情请见5读入,并设置文件建立后,用户开始设置在工作路径下启动读入(或设置)文件(如果文件以前设置过,请确认它是否被保存在了工作路径编详或注释()语言源代码这部分将例中的源代码作为来编译。注意,这个例子不可应用于的并行网络()。完整的编译和连接请见确认的文件(如果以前设置过)和语言源代码在工作路径卜。用面板编译例如, ud fexamp leInterpreted UDFSSource file rlameample+CCPP Command nameStack sizeH Display Assembly ListingH Use Contributed CPPCompilecospHelp在下键入语言源代码文件例如, udfexample.c。如果用户源代码不在目前工作路径下,则在编译,需在面板中间如文件完整的路径。在栏里,选择预处理器。省设置为如果用户函数的局部变量数目大于将会导致堆栈溢出。这种情況下,应将设置为比局部变量大的数
- 2020-11-04下载
- 积分:1