LabVIEW软件模块

夏至未至? 2020-02-08 05:50:50
软件是虚拟仪器的关键。设计一个虚拟仪器系统,在硬件平台确定之后,就可以通过设计不同的软件,实现不同的仪器功能。 在设计、实现虚拟仪器的软件系统时,需要考虑众多因素,如硬件需求、计算机硬件、操作系统;软件是否建立在开放的结构上,是否需要编程经验?利用此软件程序是否能在不同的计算机平台上移植?将来能否方便的扩展虚拟仪器的功能。由于选用专用的开发软件,必须具有一定的仪器以及数据采集设备配合使用。 程序模块化设计概述 数据采集系统的性能在很大程度上取决于其应用软件的研究与开发,所以在明确了系统设计目标之后,应该采用好的程序开发方法,如结构化设计方法、模块化思想、多线程以及软件系统的评价标准等等。 程序设计的模块化原则 模块化结构是所有设计良好的软件系统的基本特点,任何一个大的程序系统,总是由若干功能相对独立的模块组成。好的软件结构应体现自顶向下的控制方式,模块之间的控制表现为统帅和从属的关系[13]。 图4.1 模块化结构 信息抽象与信息隐含是模块的基本特征。模块(Module)实际上反映了数据(Data)与过程(Process)的抽象。在模块化问题求解时,在最高抽象级可以采用面向问题的环境语言的抽象术语进行描述;而在较低抽象级,则可采用过程性术语。模块化的概念加上逐步求精的办法,就把面向问题的术语和面向实现的术语两者结合起来。 模块独立性有两个定性的标准度量:即块内联系(内聚)与块间联系(耦合),如图4.1所示。块间联系是指模块之间的联系,块间联系越小,模块独立性越高。块内联系是指模块内部各部分(语句与语句段)之间的联系。一个模块的块内联系大,模块独立性会提高。好的模块结构,块间联系应尽可能小,块内联系应尽可能大。 软件系统的模块化设计原则 为使研制出的软件具有良好的可靠性、易维护性、易扩充性及易装卸性,软件设计应遵循规范化的模块化设计原则[13]。 1)自顶向下逐步求精的设计方法 软件设计往往在开始时不了解问题的全部细节,只能对问题做出全局性的决策,即设计表征解决问题一般策略的抽象算法。对抽象算法做进一步求精,进入下一层抽象。在求精过程的每一步,抽象概念(语句或数据)都被精细化。 2)根据逻辑功能划分物理模块 ① 模块的分解:消除重复的功能部分,使得模块的块内联系较高,块间联系较低。 ② 模块的合并; ③ 模块的复制。 3)模块的作用范围应处在模块的控制范围之内 模块的作用范围是指模块内判定影响的范围。只要某模块中含有依赖于某种判定操作,则该模块就处于该判定的作用范围之内。 4)依据逻辑功能确定模块之间的调用关系 模块之间的调用与被调用,决定于模块各自的逻辑功能,因而对模块的扇入扇出并无加以限制的必要。一般来讲,底层模块的扇入较高,顶层模块的扇出较高。 5)模块接口应保持简明 降低模块接口的复杂性,是模块设计中必须考虑的问题。保持模块接口的简明,一方面须减少模块间传递的信息量,更重要的是使所传递的必要信息具有明确的逻辑含义。 6)模块应保持单入口性质 单入口模块,易于理解。由于副作用的减少,可以降低错误的发生率。模块的出口可以有多个,但均应具有明确的逻辑含义。 7)模块结构增加中间判断层次,提高可扩充性 图4.2-a,模块A调用B,以后扩充时还要让A调用C(图4.2-b)。这样在扩展时,除增加C外,尚须修改A,这种修改可能是困难的。 图4.2-c ,增加了一个中间判断层模块F,以一个开关量Flag决定模块A要调用的模块,这样对A的修改,仅局限于Flag的设置,大大较少了工作量。 图 4.2 模块结构增加判断层次 本设计的软件系统模块划分 系统程序的主要功能为模块划分的标准,其他包括系统管理,数据采集,数据保存,历史数据的查询等功能。具体结构见图4.3多通道数据采集功能模块图。 图4.3多通道数据采集功能模块图 数据库技术 数据库技术主要研究如何存储、使用和管理数据,是计算机数据管理技术发展的新阶段,也是计算机技术中发展最快、应用最广的技术之一。当前,数据库技术已成为现代计算机信息系统和应用系统开发的核心技术,数据库已成为计算机信息系统和应用系统的组成核心,从某种意义来讲,数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度的重要标志。 数据库技术概述 数据库技术涉及到以下几个最重要的概念: 1)数据库(DataBase)是长期储存于计算机内、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为一定范围内的各种用户共享。数据库不仅要反映数据本身的内容,而且要反映数据之间的联系。在数据库中用数据模型(DataModel)这个工具来抽象、表示和处理现实世界中的数据和信息。 2)数据模型是数据特征的抽象,描述的是数据的共性。数据模型应满足三个方面的要求:一是能比较真实地模拟现实世界;二是容易为人们所理解;三是便于在计算机上实现。一种数据模型要很好地满足这三个方面的要求在目前尚很困难,在数据库系统中针对不同的使用对象和应用目的,采用逐步抽象的方法,在不同层次采用不同的数据模型,一般分为三层,即物理层、逻辑层和概念层。 物理层是数据抽象的最低层,用来描述数据物理存储结构和存储方法。 逻辑层是数据抽象的中间层,描述数据库数据整体的逻辑结构。 概念层是抽象级别的最高层,其目的是按用户的观点来对世界建模。例如实体-联系模型(Entity-Relational Model,简称ER模型)。 3)数据库管理系统(DBMS,DataBase Management System)是操纵和管理数据库的软件系统,它由一组计算机程序构成,管理并控制数据资源的使用。它是数据库系统的核心,主要是实现对共享数据有效的组织、管理和存取,它的基本功能包括以下几个方面: ① 数据定义功能:对数据库的结构进行描述,包括外模式、模式、内模式的定义;数据库完整性的定义;安全保密定义(如用户口令、级别、存取权限);存取路径(如索引)的定义等。 ② 数据操纵功能:DBMS还提供数据操纵语言,用户可以使用DML操纵数据,实现对数据库的基本操作,如检索、插入、删除和修改等。DML有两类:一类是宿主型语言,一类是自立型语言。 ③ 数据库的运行管理:数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复,从而保证数据库系统的正常运行。 ④ 数据组织、存储和管理功能:DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等。 ⑤ 数据库的建立和维护功能:它包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。 ⑥ 其他功能:DBMS与网络中其他软件系统的通信功能、DBMS之间或文件系统的数据转换功能;异构数据库之间的互访和互操作功能等。 ADO与数据库的交互技术 ADO是独立于开发工具和开发语言的数据访问接口,它提供了程序开发人员、应用程序实时存取各类数据库的能力,可以轻松地完成对各类数据库的查询,存取等操作。ADO又被称为通用数据访问(UDA),其数据源包括数据库,电子邮件,文件,文本,图形等。使用ADO不仅可以读取Access和SQL Server数据库,也可以读取其他与ODBC兼容的数据库。ADO对数据库的操作步骤一般分为如下几步: ① 创建数据源名(DSN); ② 创建数据库连接(Connection); ③ 创建数据库对象; ④ 操作数据库; ⑤ 关闭数据库对象和连接。 MySQL数据库 MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。 SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用SQL语言为一个网站检索产品信息及存储顾客信息,同时MYSQL也足够快和灵活以允许你存储记录文件和图像。 MYSQL主要目标是快速、健壮和易用。MYSQL建立的基础是业已用在高要求的生产环境多年的一套实用例程。尽管MYSQL仍在开发中,但它已经提供一个丰富和极其有用的功能集。 MYSQL的主要特点如下: 1)完全多线程,适于多CPU使用。 2)提供C、C++、JAVA(JDBC)、Perl、Python、PHP and TCL的API接口。 3)多平台,包括:Solaris、SunOS、BSDI、SGI、IR-IX、AIX、DEC、UNIX、Linux FreeBSD、SCO OpenServer、NetBSD、OpenBSD、HPUX、Win9x and NT.(各台支持的功能不尽相同)。 4)数据类型多样,包括:有/无符号1,2,3,4,8字节INT、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、LOB、DATE、DATETIME、YEAR、SET、ENUM。 5)非常灵活和安全的权限系统,密码加密。 6)为Win9X提供ODBC接口,可通过Access与之相联,另有第三方开发商提供多样的ODBC驱动程序。 7)可处理大型数据(超过5千万个记录),表大小限于OS的文件大小:Linux为2G,Solaris 2.5.1为4G,Solaris 2.6为1000G。 8)经权威商业内存泄露软件检测无内存泄露。 9)多种语言支持。 Web技术 Web技术概述 Web技术的迅猛发展,使全人类都能共享Web上的各类资源,包括功能强大的计算资源、海量信息的数据库资源、五花八门的多媒体信息资源、门类齐全的软件工具资源等,这些使得任何人能在任何时间、任何地点和任何设备上获得所需要的信息资源。 从本质上讲Web技术是各种技术的集成与综合应用,它以TCP/IP协议为基础,使用HTML描述网络的资源,通过超文本(Hypertext)、超媒体(Hypermedia)技术实现超级链接,无论文本、图形,还是动画、声音都能通过文挡中的链接连接到服务器上的其它文档或其它站点,使客户以用交互方式快速地搜索所需要的资料,通过表单供用户填写并通过服务器应用程序提交给数据库等。 自从Web的产生到现在,Web技术已从最初简单的文档的浏览发展到当今复杂电子商务的应用,其间共经历了静态文档、动态交互页面和实时可伸缩的事务处理三个阶段。 从静态技术到动态技术,从开发平台到应用模型,从传统Web到语义化Web,Web经历了一次又一次的技术浪潮,也面临更为严峻的技术挑战。Web 1.0的主要特点在于用户通过浏览器获取信息,而Web 2.0则更注重用户的交互作用,用户既是网站内容的消费者(浏览者),也是网站内容的制造者。主要包括:博客 (BLOG)、RSS、百科全书(Wiki)、网摘、社会网络(SNS)、P2P、即时信息(IM)、智能搜索引擎等。 Web客户端开发技术有VB、VC、PB等。服务器端开发技术有ASP、JSP/Servlet、JDBC、JavaBean、PHP等。使用这些技术生成动态页面、操纵数据库、建立Web站点。近年来在Web服务端更多Web开发环境支持MVC(Model-View-Contorller)设计模型,为开发者提供了全套的开发框架。 评估一种Web开发技术优劣的标准只有一个,那就是看这种技术能否在最恰当的时间和最恰当的地点,以最恰当的方式,为最需要信息的人提供最恰当的信息服务。 基于Web技术的应用系统,用户直接面对的是客户端浏览器,用户在使用系统时,请求之后的事务逻辑处理和数据的逻辑运算由服务器与数据库系统共同完成,对用户而言是完全透明的,运算后得到的结果再通过浏览器的方式返回给用户。这个过程可分成一些子步骤,每一个子步骤的完成可理解为通过一个单独的应用服务器来处理,这些应用服务器在最终得到用户所需的结论之前,相互之间还会进行一定的数据交流和传递。如图4.4所示。 图4.4 Web应用结构简图 PHP技术 PHP(Hypertext Preprocessor)是一种用于创建动态Web页面的服务器脚本语言。PHP大量采用C、Java和Perl语言的语法,并加入了一些PHP自己的特征。PHP支持HTTP的身份认证,支持Cookie,支持GIF图像创建等。其中,最有代表性的特点在于它强大的数据库支持功能,所有主流与非主流数据库它几乎都支持,这使得编写基于数据库的网页变得非常简单。 1)PHP的特性 ① 易学易用 PHP的语法结构借用了C、Perl的优秀部分,有以上语言编程经验的开发人员可快速地掌握PHP并将其投入实际使用。 ② 运行速度快 PHP采用HTML内置标记技术,解释程序本身可以作为Web服务器的一个模块运行,有效地提高了运行时的解析速度。经测试表明,在Web站点访问量非常大时,PHP的解析速度相当于传统CGI程序的4倍! ③ 跨多个平台 目前PHP可在Windows、UNIX、Linux的Web服务器上正常运行,支持IIS、Apache等通用Web服务器。 ④ 强大的数据库支持 PHP直接为很多数据库提供内置的链接,包括Oracle、SyBase、PostgreSQL、MySQL、Informix、DBASE、SOLID、Access等,并完全支持ODBC接口,凡是支持ODBC接口的数据库,PHP都可以为其提供有力的支持。 ⑤ 先进的扩展功能 PHP不但内置了对文件上传、密码认证、Cookies操作、邮件收发、动态GIF生成等功能的支持,还提供了对GZIP文件、PDF、XML的直接支持。 ⑥ 完全免费 2)PHP的工作方式 ① 嵌入HTML的方式 传统的程序设计语言所编制程序的源代码都要经编译程序编译后生成一个可执行的文件。而PHP脚本是经PHP解释器生成的显式的HTML标识,不必编译成可执行文件。用户可以把程序代码嵌入到HTML中。 ② PHP运行在服务器端 PHP脚本在Web服务器端的运行方式是:当Web服务器接收到一个Web页面请求时,若请求的是HTML文件,则Web服务器直接把文件提供给浏览器解释执行;若请求的是以PHP为扩展名的文件,则Web服务器先执行程序php.exe对两个PHP分界符号之间的PHP程序进行分析,然后再根据程序运行时各种不同的条件将PHP程序转换为相应的HTML代码,再把HTML代码提供给客户端的Web浏览器。 图4.5 PHP在服务器端运行方式 远程数据访问系统 该部分设计是整个系统的附加设计部分,主要是为了实现数据的远程访问,通过数据库与数据采集系统连接为一体。采集数据的远程访问体现了数据采集的网络化的延伸。该远程访问系统是采用Apache+PHP+MySQL开发套件进行开发的。当然,这部分需要配置服务器,网上很多资料可以参考。主要是利用PHP建立数据库的连接,在本设计中主要实现了用户登录页面,检索条件输入页面,结果返回页面。具体实现代码见附录。 多线程技术 为了实现多通道数据采集的功能,本设计的软件部分必须实现信号的采集、数据的分析处理、定时存储及实时显示等功能。在用户看来,这些任务是同时进行着的。实际上,信号采集、定时存储和主控模块放在不同的线程中,利用Windows操作系统的多线程机制,使得各个功能模块能够有条不紊的运行。 本设计把用户命令输入、信号动态显示和历史数据的查询、分析处理放在主线程中实现,而把信号采集和定时存储功能分别放到两个工作线程中。 Windows的多线程机制 Windows是一个多任务操作系统,每个运行的程序对应着一个进程,而在一个进程内又可以有几个线程。Windows系统把CPU的运行分成许多小的时间片,按各个进程和进程内线程的优先级进行分配,从而使多个程序能“同时”运行。在同一进程内的不同线程都在自己的时间片内执行,避免了相互在时间上可能的冲突。 LabVIEW与多线程 应用多线程技术,可以使得多个独立的任务并发执行,从而极大地提高程序的效率。LabVIEW把线程管理、线程间的通信等复杂操作封装了起来,因此用户可以不用学习复杂的多线程编程就可以编写多线程程序。在LabVIEW中,图形化编程为开发多线程代码带来了很大的好处,因为在数据流的编程环境中,用户可以很容易地“看到”并行代码,例如两个独立的循环或子VI就代表两段可以并发执行的代码。 多线程的优点: 1)更高的CPU利用率 2)更高的系统可靠性 3)提高在多处理器计算机上的执行速度
...全文
25 点赞 收藏 回复
写回复
回复
切换为时间正序
请发表友善的回复…
发表回复
相关推荐
发帖
单片机/工控
创建于2007-09-28

2.6w+

社区成员

硬件/嵌入开发 单片机/工控
申请成为版主
帖子事件
创建了帖子
2020-02-08 05:50
社区公告
暂无公告