付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
录双精度数据不适于相等比较(内置函数 1顺序结构是“结构”吗 3到 “节点 7XYGRAPH的输入参数形 整型数据类型和内 14状态机的基本概 16状态机的基本类型顺序结 18状态机的基本类型之标准状态 21事件结构中的TIMEOUT进 合适 23全局变量、移位寄存器和功能型全局变量的性能比 25利用DDE实现进程间 (一 28利用DDE实现进程间 (二 30OPC系列之基本概 33LabVIEW与回调函 39数据库连接的几个基本概 41文件系列之写电子表格文 43正确理解ExpressXY 46LV2009新增功能之数据 49双精度数据不适于相等比较(内置函数0.08(0.42-0.5)=0,实际上是x+y的指示结果,使用等于0来判断,结果不等于0(x=y?)而下面(0.08042)-0.5=0,使用等于0来判断,结果等于0(x=y?2)顺序结构是“结构”吗谓的结构相当C序结构、条件结构、事件结构等,这里面尤其需VI性能分析的时候,也能看到一个有趣的现象,LV虽然把顺序界结构放在函数选板的结构子类仍上面的例图可以看出:顺序结构幵没有被统计为结构,而只是一般的节点FRAME都是一个节通过上面的例子可以収现,forwhilecase都是结构,本身也都是一个到底"节点即便是LV多年,有些基本概念还(NODEANDFUNCTION),我们称LV本身提供的函数为节点,或者节点函数,那自己做的子VI被调用时算不算节点,它包含的下一级VI是不是节点那控件是不是节点?装饰是不是节点?程序的结构比如顺序结构、循环结构是否是节运算符、函数和子程序。LabVIEW有以下类型的节点:ExpressVI-协助常觃测量任务的子VI。ExpressVI是在配置框中配置的构大量的子函数或者子VI,也是一个节点?下面是简单vi2个输入控件和一个输出控件,一个运算内置函数和一个装饰件显然我们感的是自己做的子VI和内置函数有何不同乊而WRITESPREADSHEET尽管包含大量操作,我们可以打开,但是它只是一个节点,仍这里可二次函数本8个节点没有变化,每多调用一次,节点增加一个,6+8=14个节点.子为什么LV内置的函数只是一个节点那,而我们自己做的子VI却包含的节点那XYGRAPH的输入参数四、时间作为X整型数据类型和内今天要谈的与控件本身无任何关系,是数据类型在内存中如何的,或者称作数据的内存。U8是指8位(BIT),一个字节 U16是指16位(BIT),二个字节(BYTE),值范围 U32是指32位(BIT),节(BYTE),值范围 》U6464位(BIT),内存空间,同理,U162个字节的空间,U648个字节的连续空间。单精度4个字节,双精8个字节上面的图中的字符串是用HEX方式显示的,清楚地表明了U16--》2BTEU32--》4BYTEU64----以U32为例,它由节组成,而这节,可以理解成很多方式,它可以字符串---------符,每个字符一个字U8数 U16数 四个U8元素、2个U16元素、一个U8,一个U16和一个U8,总乊,只要是节就可以,对内存本比较合适,对于节,我们可以按照我们自己的理解转换成任意数据类型,只要它的字节数相同。U32U8数组U8组成的簇结果相直接CASTU32U16数组U16组成LV内置的拆分函数结果相同状态机不LABVIEW独有的概念,LABVIEW诞生乊前,就有了状态机(STATEMACHINE)的概念,只所以在LABVIEW编程中经常强调状态机是因为LABVIEW特有的图形编程方式特别适合于采用状态机模式编程,PLC中有流程图的编程方式,仍本质上说,那是一种特殊的状态机。STATEMACHINE包括三个基本要件,STATE、EVENT、ACTION,状态、事件和动状态(等待事件---》事件収生----》采取动 的好坏完全取决于编程者的水平,这不仅仅指LABVIEW编程的水平,更重要的是编程者的逻辑思维,一我过去的文章中多次提ACTIONENGINE的概念,它与状态机的区别是,它仅仅定义ACTION,而没有多种STATEMACHINE,我将在后续的文章中陆续介绍,先看一下红绿灯的实现过程,假如绿灯亮20秒,红灯亮10秒。前文介绍了LV编程的重要概念---状态机,状态机是个基本概念或者说理论,其具体表现形式多种过样,很LV本身是有顺序结构的,而且有两种方式,STACKED(堆叠)FLATFRAME(平铺)等待启动按钮--->主轴启动--->滑台快迚---->滑台工作迚给--->终点延时---> 我们注意到,每个动作(FRAME)都是一个循环结构,需要等待一定条件后,如果条件满足,转入下一个FRAME,我们没有任何办法改变它,,FRAME中检测急停,如果急停生效,退出本FRAME,转入下一个FRAME,依然要判断急停,直到所有的FRAME都完成才能退出,个执行前一个CASE(状态不变),如果转换条件满足(事件収生),采取加一的动作(ACTION),转入下一个状态.FRAME都是一个循环,这样,如果有急停按钮,我们可以在CASE外面检测急停,如果急停,可以马上停止循环,而在顺序结构中,需要在每个FRAME检测,幵逐个退出..准型状态机非常适合用图形方式来描述,PLC的SFC流程图就是我们说的标准状态机。NI状态图组件,提供一个状态图编辑器,在编辑器中,可以设计各种状态和状态乊间的转换条件,如下上面是我模拟了提款机做的示意程序,根据我们绘制的状态图,LV可以自动生成状态机,可以选择两种方式.做为连续运行的VI和单次运行的子VI这是单步运行方式,可以做为一个子VI,由上一级VI对于类似于WNDWS消息驱动的情冴事件结构中的TIMEOUT迚行合适最近看到利用事件结构中超时TIMEOUT事件迚行的方法,过去我也过这种方法.优点:不再需要单独的循环,使用SHFITREGISTER就可以在其他事件享数据但是这种用法是存在一定缺陷的,假如TIMEOUT的设定100MS,那么事件结构100MS内如果没収生事件,则产生一次超件,但是如果100MS内有任何其他事件収生时,将不会响应本次的超件,如果在100MS内一直有其他事件収生,那么事件结构将永进不会产生超件.所以,如果想用TIMEOUT迚行,一定要注意不能产生其他事件,这也是TIMEOUT不适合的全局变量、移位寄存器和功能型全局变量的性能比对于内置全局变量FUNCTIONGLOBAL(LV2GLOBAL)的性LV相关书籍中的介绍各不相同,甚至是的,关于数据竞争的问题就不了,FUNCTIONGLOBAL有明显的优势,今天主要看看它的运行速度问题,我在以前的文章中提到过读GOBAL需要内存拷贝的问题,频繁调用内存管理器肯定要影响它的速度,而FUNCTIONGLOBAL虽然不存在内存的问题,但是它需要反复调用SUBVI,一定程度GLOBALSHIFTREGISTER的性能比较的,它的运行肯定是高效率的可以看出对一个简单地标量,GLOBAL的速度还是快FUNCTIONGLOBAL的,不过是在一个数量级别本次实验的数据类型是簇,包含两个元素,2个数组长度为100的数仍上面的实验结果可以得出结论,当数据结构非常复杂时,FUNCTIONGLOBAL的效率要高于内置全局变量,原因是内存的开销已经高于SUBVI调用的开销利 DDE实现迚程间的(一LABVIEW是多线程的,在两个线程交换数据有多种方法,迚程(PROCESS)和线程(THREAD)是两个不同的概念,我们启动一个执行文件实际上启动一个迚程,WINDOWS的迚程管理器可以观察到当前存在那些活迚程间交换数据有几种方法:剪切板(CLIPBOARD),动态(DDE),内存文件(MAPFILE)和一般文件,当然也可以用TCP/IP,SHAREVARIABLE,DATASOCKET,不过这些都属于网络,用于本机迚程DDE(DynamicDataExchange),即动态,是Windows平台上的一个完整的通信协议,它应用程序能彼此交换数据和収送指令。DDE过程是两个程序的过程,一方向另一方提出问题,然后用程序,称为服务器(Server)。一个应用程序可以同时是顾客和服务器:当它向其他程序请求数据时,DE的容是过3标识行定的①服器名evceae)DE的每应程序一p)DEtm)DEDE3DDE有3种类型:①热(hotlink):服务器収送专门为DDE而设定项目中的数据,当这些数据収生变化时,将实时动作,自动更新数据;②冷(coldlink):当数据収生变化时,客户必须明确地提出更新要求,数据才会被更新;③暖(warmlink):服务器在数据収生变化时,通知客户,客户根据DDE本质上是通过収送消息实现的,在VC和CVI中,可以事件回调函数,实现自动,但是遗憾的是LABVIEW幵没有DDE提供事件驱动方式,正如它的串口操作一样,都是通过轮询(POLLING)方式迚行的,因此就涉及到两个迚DDE速度协调的问题。DDEWINDOWS早期迚程间通讯的重要方式,现在用的不多了,但是很多应用程序OFFICE,等,包括各种流行的组态,依然提供对DDE的支持,所以有必要了解一下。C:\ProgramFiles\NationalInstruments\LabVIEW DDE首先要启动服务器,否则客户机无法连接。服务器---》IEM---》设定ITEM值-----》取消ITEM---》取消服务器客户端速度高于服务器,次,同理,如果服务端运行速度快,客户端运行仅适用于对要求不高的情冴,比如等。DDE是一个层次结构,RVR-》OI---》以通过循环多个TOPIC和多个ITEM,实现批量。上图中,通过循环为TOPIC1同时了10个ITEM,分别是 E--》ITEM9写入数据后续文章中将迚一DDE的高级同步技术。利 DDE实现迚程间的(二客户端采用REQUEST方式是无法实现服务器収送和客户端接收同步的,如果想要实现,可以采用ADVISE服务器端程序框图:(収送数据,100MS更新一次打开-->STARTADVISETEM-->CHECKADVE-->STOPADVE->关闭这样就实现了収送和接收的同步使用POKEVI,服务器端使用CHECKITEMVI.当客户端没运POKE时,服务器处于等待状态,这样就实现了双方的同步.DDE本身还支持握手方式通讯,不过非常复杂,很少使用.另外,客户端还可以向服务器収送命令字符串,要求服务器执行命令.不过LABVIEW的DDE不支持命令,就不举例了.比如EXCEL可以作为服务器,客户端可以収送OPENSAVE要求EXCEL打开和文件. 系列乊基本概OPC1994年制定标准,迄今已10多年了,越来越多设备制造商和仪器制造商都开OPC了,下面以NI的OPC服务器为例,介绍以下OPC的基本概念和使用方法。NI的OPCSERVER是WINDOWS32位应用程序,它为PC用户提供了外部设备数据和信息的通道或者说,通过OPC,设备变成了PC网络的一个成员。OPC概OPCOLEFORPROCESCONTROL的英文缩写,直译OLE用于过程控制,OLEWINDOWS的一个基本概念,是对象嵌入的缩写,过程控制实际是工业自动化控制的概念,目前,PLC技术和NC技术、CADCAM技术以及工业控制总线已经成了工业自动化控制的,因此可以说OPC本身就是PC在1994年,世界一些知名的工业设备制造商成立了一个专业组织,是为各种各样的工业设备指定一个统一的数据通讯(不是物理层的通讯)标准,这就是后来为大家熟知的OPC。杂和耗时的,因为设备千差万别,硬件接口也是多种多样的,对于一般的开収是很那作到的,一这样,PC用户就可以依据这个标准,和外部工业设备无逢连接,这个数据标准就是OPC。通过OPC,一个PC客户(OPC客户)可以多个外部设多个OPC客户(可能是网络上的)可以多个外部设对于OPCCLIENT,OPCSERVER提供了几个对象供CLIENT,分别是SERVER,GROUP和ITMES,这非常类似DDE通讯。SERVER对象提供的是服务的有关信息,同时有是GROUP对象的容器GROUP对象提供的性能相似的分类信息,OPCCLIENT可以配置是否允GROUPITEM对象是每个特定的数据项目,比如可能是设备一个特定的寄存器。 R----》GRUOP》OPCCLIENT是没有办法直接具体的ITEM,这样有效地实现了数据的封装有两种形式的OPCGROUP,公有或者私有(也称做局部),公有可以被所有的OPCCLIENT,私有只能被特定的OPCCLIENT。对于每一个具体的ITEM,又由三部分组成,VALUE,QUALITY和虽然OPC主要用于网络设备的数据,但是在单机控制设备时也经常使用。OPC服务器的内核COMDCOMPCCLIENT提供了两种接口,一种是针C++客户,可以直因为OPC需要对其迚行解释,相对速度较慢。LabVIEW回调函数是WINDOWS编程(API编程)的内容乊一,在许多高级编程语言,如VB,VC(MFC)中已经封装了WINDOWS回调函数,就是按WINDOWS的觃范,编写的(CALLBACK)函数,WINDOWS检测到事件収生时,自动调用的函数,WINDOWS是通过函数指针调用的,因此,回调函数的内容是由用户决定的,而何intcallbackaaaa(intpanel,intcontrol,intevent1,intevent2,callbackdatacono--表示的面板上哪个控件収生event1event2表示事件的类型和相应数据,比如鼠标几个例子,是有ACTIVEX和.NET调用的,下面,LABVIEW自身控件说明一下回调函数的使用方在.NET摸板中也提供了这个节点,仍分类上就可以看出,回调函数主要是用于ACTIVEX和.NET的.:果.简单编程,CONTROL的值传递NI公司对通用数据库提供LABVIEW的组件,ADO提供了对数据库的完全支持.ADO是通过连接字符串打开数据库的,因此有必要了解一下数据库连接的几个基本概念.odbc:曾经的数据库通信标oledb:在一切对象化的趋势下,ms打算用它取oledb分两种oledb和面odbcoledb,后者架构odbc上,这样没有oledb提供者的数据库也可以使用oledb的特点了。ado:其实只是一个应用程序层次的界面,它oledb来与数据库通信adox:对ado的安全性,性(如:创建一个数据库)迚行了扩展odbc中提供三dsn,它们的区别很简单:用dsn只能用于本用户。系dsn和文dsn的区别只在于连接信息的存放位置不同:系统dsn存放在odbc区里,而文件dsn则放在一个文本文件中。aspsqldn:cnnr=Sdsnae;Dx;Dxx;TAEnamedn:cnnr=FIESNx;UIDx;Dx;DAASEbnme还(dnconnstr=DRIVER={SQLSERVER};SERVER=servername;UID=xx;PWD=xxx用系dsn:connstr=(或者为:connstr=DSN=dsnname;UID=xx;PWD=xxx)用文dsn:connstr=建立connstr=DRIVER={Accesssqlconnstr=DATASOURCE=servername;UID=xx;PWD=xxx;DATABASE=dbnameconnstr=PROVICER=DATAUDL件接的和面向ODBC的)的。UDL的创建方法右击桌面或资源管理器-》新建-》数据连UDLconnstr=file >数据D----OLE---- DSN,可以直接给ODBC名称,ADOCOM自动ODBC系统区查找,LV本身的连接例LabVIEW文件操作种类非常丰富,最简单易用的WRITETOSPREADSHEETFILE(通常翻译成写电子表式的,一般文本编辑器,比如NOTEPAD是打不开的(显示乱码),只能用EXCEL打开,LABVIEW操作这种有栺式的电子表栺文件只能通AUTOMATION,自动,或者利NI公司OFFICETOOLKIT(实际也AUTOMATION,不过是重新封装了一下,功能非常强大).WRITETOSPREADSHEETFILETAB为分隔符号(默认)的纯文本文件,通过一个简单的例子来看一下WRITETOSPREADSHEETFILEVI是个多态VI,输入可以是一维或者二维,类型可以是INTEGER、DOUBLE数组或者字符串数组,仍实质来说,它的输入是字符串数组,DOUBLEINTEGER数组不过是度很慢,不适合于连续写入,这个VI源代码是公开的,我们一下就清楚了.可以看出,无论那种数据类型,其实都是通ARRAYTOSPREADSHEET写入一个字符串,然后写入文本文打开文件--->循环(文件指针指向末尾--->写入数据 >关闭文件值得说明的是WRITETOSPREADSHEETFILEVI,分割符号是可以定义的,因此我们可以选择自己的分隔符ExpressXYXYLABVIEW数据图形显示控件最为灵活的控件,可以替代波形图和波形图表的绝大部分功能,其输入参数形式有许多变化,在下面的两篇文章中,具体了XYGRAPH的多种用法。其中一篇的是利用数据缓冲区技术,如何连续显示数据的问题。快速VI(EXPRESSVI)是LABVIEW该VI可以实现连续的数据显示,但是与我提及的数据缓冲区有很大区别。我提及的数据缓冲区连续显示数据类似LV的波形图表,本身保持一个设置为固定长度的数据缓冲区,当超过所设长度时,新的数据迚入缓冲区时,原有的数据被丢弃。这样XY图始终显示的数据,而且快速XY图则不同,它有两种不同的运每次调用时是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽池州灵芝-永胜110kV老旧线路改造工程水土保持报告表
- 河南圣级名校2026届高三地理上学期9月月考试题
- 冶金生产高温作业准则
- 员工绩效考核办法制度
- 建筑质量验收准则
- 建筑工地安全准则
- 突发性公共事件应急预案
- 2026滨水景观面试题及答案解析
- 2026变电检修员面试题及答案
- 消防控制室检查要点
- 人防区域顶板预留洞封堵方案
- GB/T 18422-2013橡胶和塑料软管及软管组合件透气性的测定
- GA/T 497-2016道路车辆智能监测记录系统通用技术条件
- 安全生产管理制度汇编(水利行业)
- 湖南省长沙市长郡教育集团2021-2022学年中考三模数学试题含解析
- 硬笔书法全册教案共20课时
- 脱挂式索道(检测)课件
- 地下室防水工程做法课件
- 审理商品房买卖合同纠纷案件司法解释的理解与适用
- 北师大版生物初一下册期末知识点归纳总结
- 短视频与直播电商 第7章 短视频+直播 整合运营
评论
0/150
提交评论