基于VI服务器与队列的程序架构.ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于VI服务器与队列的程序架构 Cedar 2009-09-03 应用领域 自动化测试系统(ATE) 挑战 以往的教材中着重强调了某一个功能的实现,但是在实际应用中一个完整的自动测试系统(ATE)往往有很多功能要求实现。 由于ATE(auto test system)使用的设备非常昂贵,所以要尽量减少单位产品所消耗的ATE工时。 针对以上要求,笔者利用队列和VI-server创建测试软件。 使用产品 Labview8.6 关键词 Labview VI-server 并行测试 队列 错误处理 介绍 本文基于labview中的VI-server和queue的组合,开发出可并行测试多个功能的测试软件。 由于可根据测试软件本身特点可以修改config文件,形成可测试不同产品的程序,从而大幅度缩短项目开发周期。 正文 Labview是一种图形化编程语言,比文本编程语言开发时间短。 在当今降低成本要求越来越高的时代,尽量将测试项目集成到一个程序已是大势所趋。 为了缩短项目开发时间,尽量利用以前的代码也不为是一个节约成本的好办法。 测试结构 一般的测试程序可以被分为: 初始化 等待运行指令 进入测试 保存测试数据 退出测试 测试流程 测试流程 初始化设备:测试之前往往要首先刷新整个ATE,使得所有的测试设备能够符合被测品(DUT)的要求。 等待运行指令:当外围准备好了方能进入测试,比如被测品有没有安装到位?保护措施有没有打开?等等,而程序必须在此步等待操作者确认完毕后方能进入下步操作。 测试流程 进入测试:此时PC将按照测试计划(testplan) 规定流程,逐步对被测品进行各项测试,要求的测试项往往很多,如按照串行顺序测试将消耗很多工时,这时如将互不影响的测试项并行测试将大大减少工时。 保存数据:为了方便统计分析,往往要求对测试数据进行保存,一般的情况是本机(local)要求一份,服务器要求一份。 退出测试:所有测试项完成且保存完数据后将ATE进入保护状态以防止更换被测品带来损伤。 基本测试程序架构 测试程序架构比较 测试程序架构比较 第二种:状态机 定义:状态机是一种具有指定数目的状态的概念机,在某个时刻仅处于一个状态。状态的转变是由输入事件引起的状态变化的,作为输入事件的相应,系统可能转变到相同或不同的状态,而输出事件可能是任意产生的。 就以《软件工程在labview中的应用》书中的洗衣机为例。流程图见下图 测试程序架构比较 测试程序架构比较 上图是洗衣机的分层结构图,可选择每个状态和输出条件。 测试程序架构比较 上图显示的就是状态机基本结构,开始条件输入进移位寄存器,然后将之传送给case语句。 测试程序架构比较 测试程序架构比较 另一种状态机 测试程序架构比较 上图所示的结构是很多ATS使用的结构,此结构比error-handle结构优秀,特别是其中的错误处理功能。 但笔者在实际使用中,发现此结构还是有一定的缺陷: 第一,如果要新增test3测试项,只有打开mainvi增加代码,虽然只是简单的增加一个case结构但是也需要重新debug整个程序,其中就隐含了不确定因素增加了风险; 第二,如果test1和test2两个测试项互不影响可以并行测试,但这种结构只能串行测试浪费了宝贵的测试时间。 测试程序架构比较 针对以上两个问题笔者使用两种方法解决 第一,使用vi-server避免修改mainvi,vi-server是labview独有的技术,将代码调入内存执行,执行完成后释放内存,(具体可参考清华出版《Labview高级程序设计》)笔者将所有的testvi做成标准格式,每个测试项功能相当于状态机中的一个case结构,这样可以将testvi和mainvi分离,两者之间使用 vi-server衔接,如果测试项修改,增加,删除。只需要更改config文件,不需要更改mainvi,避免了风险的产生。代码见下图 测试程序架构比较 其中的LOG,FMT,result,error out各有用处,下一部分将对此详细讲解。 测试程序架构比较 测试程序架构比较 下图为一个标准的testvi样板,必须要有FMT,LOG,result,error out几个输入项。把testvi统一成一个样式,这样可以方便mainvi的调用。 测试程序架构比较 第二;针对并行测试,我们可以创立两个线程:masterthread;slavethread. 测试程序架构比较 上图创建了两个队列masterthread;slavethread 把可以并行测试的测试项组成两个字符串数组,写入两个队列,由于labview是自动实现多线程的,所以可以达到并行测试目的。 必须将vi-server这个vi设置为“preallocate done for each in

文档评论(0)

汪汪队 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档