网站大量收购独家精品文档,联系QQ:2885784924

基于vi服务器和队列的程序架构.pptxVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

基于VI服务器与队列的程序架构Cedar2009-09-03

应用领域自动化测试系统(ATE)

以往的教材中着重强调了某一个功能的实现,但是在实际应用中一个完整的自动测试系统(ATE)往往有很多功能要求实现。由于ATE(autotestsystem)使用的设备非常昂贵,所以要尽量减少单位产品所消耗的ATE工时。针对以上要求,笔者利用队列和VI-server创建测试软件。挑战

使用产品Labview8.6

01Labview02VI-server03并行测试04队列05错误处理关键词

本文基于labview中的VI-server和queue的组合,开发出可并行测试多个功能的测试软件。由于可根据测试软件本身特点可以修改config文件,形成可测试不同产品的程序,从而大幅度缩短项目开发周期。0102介绍

01Labview是一种图形化编程语言,比文本编程语言开发时间短。03为了缩短项目开发时间,尽量利用以前的代码也不为是一个节约成本的好办法。02在当今降低成本要求越来越高的时代,尽量将测试项目集成到一个程序已是大势所趋。正文

一般的测试程序可以被分为:1初始化2等待运行指令3进入测试4保存测试数据5退出测试6测试结构

初始化等待运行指令进入测试保存数据退出测试5.4.3.2.1.测试流程

初始化设备:测试之前往往要首先刷新整个ATE,使得所有的测试设备能够符合被测品(DUT)的要求。等待运行指令:当外围准备好了方能进入测试,比如被测品有没有安装到位?保护措施有没有打开?等等,而程序必须在此步等待操作者确认完毕后方能进入下步操作。测试流程

进入测试:此时PC将按照测试计划(testplan)规定流程,逐步对被测品进行各项测试,要求的测试项往往很多,如按照串行顺序测试将消耗很多工时,这时如将互不影响的测试项并行测试将大大减少工时。保存数据:为了方便统计分析,往往要求对测试数据进行保存,一般的情况是本机(local)要求一份,服务器要求一份。退出测试:所有测试项完成且保存完数据后将ATE进入保护状态以防止更换被测品带来损伤。3214测试流程

基本测试程序架构mainvidrivervidrivervidrivervitestvitestvitestvitestvi

测试程序架构比较根据以上的要求我们可以编写相应的代码第一种:使用error-handle串行这张图想必看过清华出版《软件工程在labview中的应用》的人都不会陌生,这个顺序看起来很好,简单而又准确,但是如果想添加一个新状态或者改变一下这些状态的顺序,该怎么办?这些恐怕要涉及到删除源代码以及移动VI。所以这种结构不适合开发一些大型的测试项目。

第二种:状态机01定义:状态机是一种具有指定数目的状态的概念机,在某个时刻仅处于一个状态。状态的转变是由输入事件引起的状态变化的,作为输入事件的相应,系统可能转变到相同或不同的状态,而输出事件可能是任意产生的。01就以《软件工程在labview中的应用》书中的洗衣机为例。流程图见下图01测试程序架构比较

测试程序架构比较

测试程序架构比较上图是洗衣机的分层结构图,可选择每个状态和输出条件。

测试程序架构比较上图显示的就是状态机基本结构,开始条件输入进移位寄存器,然后将之传送给case语句。

测试程序架构比较

测试程序架构比较另一种状态机测试流程在实际使用中测试流程在测试前就已经规定好了,一般使用数组这就不需要用到enum控件,使用deletefromarray.vi让测试项逐次运行,如测试项出现异常,则选择下面的测试项,上图如出现异常则进入“end”测试项。Deletefromarray选择

1上图所示的结构是很多ATS使用的结构,此结构比error-handle结构优秀,特别是其中的错误处理功能。2但笔者在实际使用中,发现此结构还是有一定的缺陷:3如果要新增test3测试项,只有打开mainvi增加代码,虽然只是简单的增加一个case结构但是也需要重新debug整个程序,其中就隐含了不确定因素增加了风险;4如果test1和test2两个测试项互不影响可以并行测试,但这种结构只能串行测试浪费了宝贵的测试时间。测试程序架构比较

针对以上两个问题笔者使用两种方法解决第一,使用vi-server避免修改mainvi,vi-server是labview独有的技术,将代码调入内存执行,执行完成后释放内存,(具体可参考清华出版《Labview高级程序设计》)笔者将所有的testvi做成标准格式,每个测试项功能相当于状态机中的一个case结构,这样可以将testvi和mainvi分离,两者之间使用vi-server衔接,如果测试项修改,增加,删除。只需要更改config文件,不需要更改mainvi,避免了风险的产生。代码见下图010302

您可能关注的文档

文档评论(0)

135****2083 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档