




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于vb.net编程的仪表自动化测试软件姓名与学号: 校外指导教师: 校内指导教师: 年级与专业:信息工程(光电) 所在学院: 光电信息工程学系摘要随着现代科学技术的发展,人们对测试技术的要求也越来越高。现代测试的内容日趋复杂,工作量也日益庞大,传统的手工测试已不能满足人们的需求。因此,自动化测试在现代测试系统中因用其省时、简便的优点而占有重要地位。20世纪80年代,ni公司提出了虚拟仪器(virtual instrument,vi)的概念,从此自动化测试技术进入了一个新的时代。虚拟仪器是由通用计算机和一些功能化硬件模块组成的仪器系统,该系统中,仪器的操控和数据的传送、处理甚至分析均由计算机软件完成,大大方便了用户对仪器的使用和测试系统的维护、扩展。本文首先对自动化测试和虚拟仪器进行阐述,其次对光无源器件偏振相关损耗测试方法深入分析,并在此基础上,设计了一套基于vb.net编程的偏振相关损耗测试系统。该系统能够实现可调谐激光器、偏振控制器和光功率计的协同工作,完成数据的采集、处理和作图,通过验证,得到了预期的结果。关键词:自动化测试;虚拟仪器;偏振相关损耗;vb.net编程abstractwith the development of modern science and technology, people have higher demands for testing technologies. the contents are getting more complex, the workload is getting larger and traditional manual testing cannot meet peoples needs. therefore, automatic testing plays an important role in modern testing systems due to its time-saving and convenient advantages. in 1980s, ni company proposed the concept of virtual instrument (vi), brought automatic testing technology to a brand-new era. virtual instrument is the instrument system that consists of general computers and other functional hardware modules, in this system, instrument control and datas transmission, processing, even analysis are done by computer software, hence it has become greatly convenient for users to operate the instruments and to maintain, expand the testing system.this paper introduces automatic testing and virtual instrument technology firstly, then analyzes the testing methods of polarization dependent loss (pdl) for passive optical devices, and finally designs a pdl testing system based on vb.net programming. this system achieves the co-work of a tunable laser source, a polarization controller and an optical power meter, accomplishes datas acquisition, processing and plotting, gets expected result through tests.keywords:automatic testing; virtual instrument; polarization dependent loss; vb.net programming目录第一章 引言1 2.1虚拟仪器的概述11.1背景1 1.2已往的研究1 1.3本文的主要内容3 第二章 虚拟仪器技术4 2.1虚拟仪器的概述4 2.1.1虚拟仪器的概念4 2.1.2虚拟仪器的组成与分类4 2.1.3虚拟仪器的特点与应用5 2.2虚拟仪器软件标准 62.2.1虚拟仪器软件体系(visa)6 2.2.2可编程仪器标准命令(scpi)7 2.3虚拟仪器软件开发环境8 2.3.1 visual studio.net(vs.net)8 2.3.2 labview9 第三章 偏振相关损耗测试11 3.1 偏振相关损耗基本概念 113.2 偏振相关损耗测量方法 113.2.1 偏振扫描法 113.2.2 muller矩阵法 123.2.2 单次muller扫描法 14第四章 偏振相关损耗测试软件16 4.1 编程语言和开发环境 164.1.1 vb.net编程语言 164.1.2 vs2008开发环境 164.2 软件测试流程 174.3 软件构架 184.1.2 作为类的仪器 194.1.2测试、画图和文件处理方法 224.4 测量结果 31第五章 总结与展望34 参考文献35 附录 muller矩阵法中的数学推导36 致谢38 第一章 引言1.1背景随着现代科学技术和现代工业生产的发展,对电子测量和仪器技术的要求越来越高,测试内容和测试对象日趋复杂,测试的工作量与日俱增,对测试速度和测试精度的要求不断提高,这使得传统的人工测试已经不适应甚至不满足实际测试的需求,采用自动测试系统已经成为测试行业发展的方向1。现代自动测试系统是计算机技术、数字信号处理技术、自动控制技术与测试技术相结合的结果,具有重要的意义。自动化测试有很多突出的优点,最重要的一点就是简捷高速,可以节约大量的人力物力。同时,自动化测试系统还可以避免人为地引入误差,提高测试的可重复性和测试精度。自动化测试结果还可以多种输出方式,包括数字、图、文、表格、文件等,这些都是人工测试所难达到、甚至或根本无法实现的2。 1.2国内外研究现状自动化测试系统的研究工作最早可以追溯到20实际50年代美国为解决军方电子设备维护中遇到的问题而展开的sete计划。到了20世纪60年代,电子计算机开始用于测试领域,自动化测试技术也得以迅速地发展和普遍地应用,其发展大致可以分为3个阶段。(1) 第一代自动测试系统常见的第一代自动测试系统主要有数据采集系统、自动分析系统等。系统的控制采用计算机或其他一些简单的逻辑和定时电路。20世纪60年代,由于标准化、通用化的仪器产品还未出现,设计和组建第一代自动测试系统时,设计人员需要自行设计仪器与仪器、仪器与计算机之间的接口电路和相关的控制电路。当测试系统中用到的设备较多时,系统研制的工作量大、费用高,系统的适应性和可扩展性也差。(2) 第二代自动测试系统20世纪70年代,诞生了第二代自动测试系统,其中最具代表性的是camac总线系统和gpib总线系统。两者的共同特点是采用标准的总线接口,系统中所用的计算机、程控仪器、开关等均配有标准化的接口电路,用统一的总线电缆将各器件连接起来。设计人员无需自行设计接口电路,测试内容的更改、增删十分灵活,测试速度和精度也大大提高。在测试系统使用完毕后,可以拆下计算机和其他仪器设备移植他用。(3) 第三代自动测试系统20世纪80年代中期,随着仪器行业的发展,计算机与测量仪器的结合更加紧密,计算机软件不仅承担系统控制和通信功能,也开始代替传统仪器中某些硬件的功能。在这种条件下,虚拟仪器出现了。作为一种以计算机软件实现为核心的新型仪器系统,虚拟仪器具有功能性强、测试精度高、测量速度快、自动化程度高、人机界面优异、灵活性极强等极强优点。虚拟仪器系统通常被认为是第三代自动测试系统的同义语。1986年,美国国家仪器公司(national instrument,ni)提出了虚拟仪器(virtual instrument)的概念。这一概念的核心是以计算机作为仪器的硬件支撑,充分利用计算机的数据运算、存储、回放、调用、显示及文件管理等功能,把传统仪器的专业功能软件化。到了20世纪90年代,随着计算机发展更加迅速,面向对象和可视化编程技术在软件领域为更多易于使用、功能强大的软件开发提供了可能,在这一背景下,虚拟仪器的概念在世界范围内得到了广泛的认同和应用。美国ni公司、hp公司、tektronix公司等相继推出了基于gpib总线、pc-daq(data acquisition)和vxi总线等多种虚拟仪器系统。1993年9月,为了使vxi总线更易于使用,保证vxi总线产品在系统级的互换性,ni等公司发起了成立vxi即插即用(vxi plug&play,vpp)系统联盟,并发布了vpp技术规范。作为vxi总线规范的补充和发展,vpp规范定义了标准的系统软件结构框架,对vxi总线的操作系统、编程语言、仪器驱动器、高级应用软件工具、虚拟仪器软件体系结构(visa)、产品实现和技术支持等方面做了详细的规定,实现了vxi总线系统的开放性、兼容性和互换性,进一步缩短了系统的集成时间,vxi总线系统也因此成为虚拟仪器系统的理想硬件平台,完整的虚拟仪器技术体系已经建立起来。1997年,ni公司又提出了一种先进的可交换仪器驱动器模型ivi(interchangeable virtual instrument),即可互换式虚拟仪器。ivi规范在vpp规范的基础上,建立了一种可互换的、高性能的、更易于维护的仪器驱动器,允许测试工程师在系统中更换同类仪器时,无需改写测试软件,也允许开发人员在系统研制阶段利用仿真功能开发测试代码,更加节省了系统开发和维护时间,增加了用户在组建虚拟仪器系统时硬件选择的灵活性。1997年9月,ni公司推出了一种全新的开放式、模块化仪器总线规范,pxi(pci extensions for instrument),直接将pc机中流行的高速pci总线技术、microsoft windows操作系统和compactpci(坚固pci)规范定义的机械标准巧妙地结合在一起,形成了一种性价比极高的虚拟仪器系统。目前,pxi模块仪器系统以其卓越的性能和极低的价格,吸引了越来越多的虚拟仪器工程技术人员的关注1。虚拟仪器技术经过10余年的发展,正沿着总线与驱动程序的标准化、硬件/软件的模块化、编程平台的图形化和硬件模块的即插即用化等方向发展。目前虚拟仪器技术已发展成具有gpib、pc-daq、vxi和pxi四中标准体系的结构开放的技术。ivi基金会也与1998年在美国成立。随着现代测量与仪器技术进一步提高,测试系统将有更广的应用范围,更高的速度,更加智能化、集成化、小型化、网络化,一个真正的虚拟化的测控时代即将到来。1.3本文的主要内容 本文第一章阐述了虚拟仪器的基本概念、系统构成、特点和应用,并进一步介绍了虚拟仪器软件标准中的visa和scpi。第二章介绍了偏振相关损耗的测试方法,主要是muller矩阵法及其计算流程,同时并浅显地进行了一些不确定性分析。第三章介绍了pdl测试软件的编写思路和软件结构,并将测量结果与agilent polarization navigator软件的测试结果进行比较。第二章 虚拟仪器技术2.1 虚拟仪器概述2.1.1 虚拟仪器的概念虚拟仪器(virtual instrument, vi)是基于计算机的软硬件测试平台,在必要的数据采集硬件和通用计算机支持下,通过软件来实现仪器的部分或全部功能2。虚拟仪器概念是对传统仪器概念的重大突破,它的出现使测量仪器与个人就算计的界限模糊了。与传统仪器不同,虚拟仪器是由通用计算机和一些功能化硬件模块组成的仪器系统。这种仪器系统中,不仅以其的操控和测量结果的显示是借助于计算机显示器以虚拟面板的形式来实现的,而且数据的传送、分析、处理、存储都是由计算机软件来完成的,大大突破了传统仪器在这方面的限制,使得用户可以更方便地对测试系统使用、扩展和升级。虚拟仪器中的“虚拟”一词主要有以下两方面的含义:(1) 在使用传统仪器时,操作人员是通过操纵仪器物理面板上安装的各种按键来实现仪器操作的,而在虚拟仪器中,计算机显示器则是唯一的交互界面,物理的开关、按钮等被图形控件代替。(2) 在虚拟仪器系统中,仪器功能是通过软件编程来实现的,也可以由软件编程来实现fft分析、数字滤波、统计分析等数据处理功能,还可以通过不同软件模块的组合,实现多种自动测试功能。2.1.2 虚拟仪器的组成与分类虚拟仪器由硬件和软件两部分组成。虚拟仪器硬件包括通用计算机和外围硬件设备。通用计算机可以是笔记本电脑、台式计算机或工作站等;外围硬件设备可以选择gpib系统、vxi系统、pxi系统、数据采集系统或其他系统,也可以选择由以上两种或两种以上系统构成的混合系统。虚拟仪器软件包括操作系统、仪器驱动和应用软件三个层次。其中仪器驱动软件是直接控制各种硬件接口的驱动程序,每台仪器拥有自己的驱动程序,每个仪器制造商针对所生产的仪器有不同的i/o接口库;应用软件通过仪器驱动器实现与外围硬件模块的通信连接。应用软件可以是vc/vc+、vb、python、matlab等语言编写,为了方便仪器制造商和用户进行仪器驱动器和应用软件的开发,agilent、ni公司分别推出用于虚拟仪器开发的集成开发环境hp vee和labview.虚拟仪器系统的结构可以用图2.1表示。图2.1 虚拟仪器系统结构2.1.3 虚拟仪器的特点和应用与传统仪器相比,虚拟仪器有以下几个突出特点:(1) 突出“软件就是核心”的概念,将传统仪器中的某些硬件由软件取代,减少了时间漂移性、需要定期校准的分立式模拟硬件,加上标准化总线的使用,使仪器的测量精度、速度和可重复性都大大地提高了。(2) 灵活、可扩展。虚拟仪器打破了传统仪器由厂家定义功能和面板、用户无法更改的模式,用户可以根据自己的需要灵活方便地组装系统,并可以随时扩展和升级,系统更新周期更短。(3) 具有良好的人机界面。虚拟仪器的面板不仅可以模拟传统仪器面板的风格来设计,也可以根据用户的需求设计,测量结果可以通过计算机屏幕 以曲线、图形、数据或表格等形式显示出来。 (4) 与其他设备的互联能力强。虚拟仪器既可以作为测试仪器独立使用,也可以通过高速计算机网络构成复杂的分布式测试系统,进行远程测试、监控与故障诊断,这使得虚拟仪器系统的功能显著增加,应用领域明显扩大。由于具有以上优点,虚拟仪器在工业自动化、仪器产业改造和实验室测试中有重要应用。在工业中采用虚拟仪器技术,有利于提高企业自主开发和管理项目的能力,降低工业自动化技术改造的成本,提高经济效益;在高校中采用虚拟仪器技术,不仅能够提高科研效率,还可以用营造出虚拟的实验环境,改变实验教学方式,提高学生兴趣。2.2 虚拟仪器软件标准软件技术在自动测试系统的研制与开发中正起着越来越重要的作用,许多过去传统上由测试系统硬件完成的功能,现在都可以用软件模块来替代或扩展。当前自动测试领域最重要的两个软件标准是:可编程仪器标准命令(standard commands for programmable instruments, scpi)和虚拟仪器软件体系(virtual instruments software architecture, visa). 下面分别对这两个软件标准进行介绍。2.2.1 虚拟仪器软件体系(visa)随着虚拟仪器系统的出现与发展,i/o接口软件作为虚拟仪器系统软件结构中承上启下的一层,其模型化与标准化越来越重要。i/o接口软件驻留于虚拟仪器系统的控制器计算机系统中,是实现计算机系统与仪器之间命令与数据传输的桥梁。许多仪器生产厂家在推出硬件接口电路的同时,也纷纷推出了不同结构的i/o接口软件,如ni公司用于控制gpib仪器的ni-488,hp公司的sicl标准仪器控制库。这些i/o接口软件尽管性能很高,但却是不可互换的。在这种情况下,vpp联盟在考察了多个i/o接口软件之后,提出了一种新的i/o接口软件模型,也就是visa4。visa实质是一个i/o接口软件及其规范的总称,一般这个i/o函数库称为visa库。visa库函数是一套可方便使用的函数,其核心函数能够控制各种类型器件,无需考虑器件的接口类型和软件的兼容性。一旦掌握了visa就不必再学习不同厂家、不同接口类型的i/o软件。visa在虚拟仪器系统中的作用如图2.2所示。图2.2 visa在虚拟仪器系统中的作用2.2.2可编程仪器标准命令(scpi)可编程仪器标准命令scpi是为解决程控仪器编程进一步标准化而制定的标准编程语言,目前已经称为重要的程控软件标准之一。1975年,ieee制定了程控仪器接口标准ieee488.1,它严格定义了gpib接口,但并未定义任何控制仪器的标准语法,1987年ieee推出了ieee488.2并定义了使用gpib总线时编码、句法格式、信息交换控制协议和公共程控命令语义,但并未定义任何仪器相关命令,使器件数据和命令的标准化仍存在很大困难。1990年提出的scpi语言是在1987年提出的ieee488.2的基础上扩充得到的。scip与过去的仪器语言的根本区别在于scpi命令描述的是人们正在测量的信号,而不是正在测量信号的仪器,因此人们可以花费更多的时间来研究如何解决实际应用问题,而不是测量仪器本身。相同的scpi命令可用于不同类型的仪器,这成为scpi的“横向兼容性”。scpi还是可扩展的,可随着仪器功能的增加而扩大,适用于仪器产品的更新换代,这称为scpi的“纵向兼容性”。scpi命令分为仪器公共命令(或称ieee488.2命令)和scpi主干命令两部分,表2.2为几个最常用的ieee488.2命令3。表2.2 ieee488.2命令简表命令功能描述*idn?仪器标志查询*tst?自测试查询*opc?操作完成查询*cls?清状态寄存*rst?复位*trg?触发2.3 虚拟仪器软件开发环境目前能够用于虚拟仪器系统开发、比较成熟的软件开发平台主要有两大类:一类是通用的可视化软件编程环境,主要有微软公司的visual c+、visual basic,vs.net等,其他的如matlab, python;另一类是一些公司推出的用于虚拟仪器开发软件编程环境,主要有agilent公司的vee、ni公司的labview。下面重点对vs.net和labview进行介绍。2.3.1 visual s (vs.net)vs.net是微软公司研发的一个可视化开发工具,给程序员提供解决方案、源代码管理和编译调试等环境。vs.net包括visual c#.net, visual j#.net, visual c+.net, visual b。其中,visual b在界面设计、文件操作、多媒体应用、数据访问、internet应用等方面都提供了强大的工具,集成化开发环境和软件调试环境方便,具有易学、易用、功能强大等优点,对于有一定vb或c/c+语言编程基础的人来说可以很快上手。vs.net中的语言是面向对象 的编程语言,这对于虚拟仪器软件开发来说是非常有利的;但这些编程语言在作图、实时采集信号时尚有诸多不便,数字信号处理能力差,而且具有文本编程语言开发耗时大的弊端,因此经常需要通过调用com组件的方式与其他数学软件(如matlab)共同使用。vs.net开发环境如图2.3所示(图中为vs2008环境)。图2.3 vs.net开发环境2.1.3 labviewlabview(laboratory virtual instrument engineering workbench)是一种由美国国家仪器公司(ni)研制的开发环境。labview最大的特点是采用图形化编程语言(g编程语言),用图标代替文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而labview则采用数据流编程方式,程序框图中节点之间的数据流向决定了程序模块和函数的执行顺序。和c语言、vb一样,labview也有一个完成任何编程任务的庞大函数库,包含数据采集、gpib控制、串口控制、数据分析、数据显示及数据存储功能1。由于采用图形化编程,和文本编程语言相比labview在设计一个系统时会十分方便,不要求程序人员掌握高深的程序设计理论,开发时间短,且进行画图、数据处理等十分方便,程序易于理解和维护。然而由于labview将方法都封装成了控件,不便于做较深层次的开发。labview开发环境如图2.4所示。图2.4 labview开发环境第三章 偏振相关损耗测试3.1 偏振相关损耗基本概念掺饵光纤放大器使得光纤实现远距离传输成为可能。从开始到末端,传输线上对于光都是透明的。这提高了人们以前认为关系不大的某些参数的重要性,其中一个典型的参数就是偏振相关损耗(pdl)。随着光网络的发展,pdl已经成为衡量无源光学器件的重要特性5。pdl是光器件或系统在所有偏振状态下的最大传输差值。它是光设备在所有偏振状态下最大传输和最小传输的比率。pdl定义如下: (3.1)tmax和tmin分别表示测试器件(dut)的最大传输和最小传输。pdl对于光器件的表征至关重要。实际上,每个器件都表现为一种偏振相关传输。由于传输信号的偏振不仅局限于光纤网络之内,因此器件的插入损耗随偏振状态而异。这种效应会沿传输链路不可控制地增长,对传输质量带来严重影响,因为一条光纤上的偏振是随意变化的。个别器件的pdl会在系统内造成大的功率波动,从而增大了系统的误码率,甚至会导致网络故障5。在wdm网络的波长选择型器件中,器件的pdl 根据其频域传输特性随着波长而变化。此外,有些滤波器的特性(如纹波或通带带宽)也是偏振相关的。因此,波长pdl的测定就变得十分重要。3.2 偏振相关损耗测量方法3.2.1 偏振扫描法pdl按照测量方式可分为两种方法:确定性方法和不确定性方法。确定性方法从dut的muller或jones传输矩阵中推导得出其pdl,而传输矩阵则通过测量dut在一系列特定输入偏振态下的传输属性得到,例如mueller方法。非确定性方法直接测量dut在大量输入偏振态下的最小和最大传输值。偏振扫描法属于不确定性方法,基于对最大和最小传输的实际测量。在测试中,被测器件(device under test,dut)暴露于大量事先确定或伪随机产生的偏振状态下,由功率计测量这些偏振态下从dut输出的功率,找出最大值和最小值,便可以计算出pdl,如图3.1所示。图3.1 偏振扫描法示意图此方法测量pdl的不确定性主要受探测器的偏振敏感度,光源的稳定性和偏振度,偏振控制器中偏振态引起的传输偏差这三点的影响5。3.2.2 muller矩阵法muller矩阵法是一种确定性方法,它通过dut的muller矩阵推出其pdl。muller矩阵法仅通过测量dut在四种特定偏振态下的传输特性,就可以得到其muller矩阵,一般情况下是对lhp、lvp、l+45、rhc四种偏振态进行测量。pdl的推导基于mueller-stokes积分。如果入射光作用于某器件并由stokes矢量表征,出射光用另一个stokes矢量表征,则该器件的偏振传输和损耗特性即可用muller矩阵来表示:(3.1)上述方程包含了一组四式线性方程组。为了得出pdl,只需要muller矩阵的第一行,因为代表了总输出功率。出射光由入射光偏振态引起的光功率变化都可以在中体现:(3.2)mueller-stokes积分的方便之处之一就在于stokes矢量系数可以通过光功率来测量。如果lhp、lvp、l+45、rhc四种偏振态下输入光功率用表示,输出光功率用表示,上述方程可改写为(为了简便此处略去波长相关的测量):(3.3)测量所有功率值需要两个步骤:1. 必须对四个偏振态分别进行参考测量,得出输入光功率;2. 然后插入dut,分别记录四个偏振态下的输出功率。注意参考测量和实际测量必须在相同情况下进行,例如针对相同的波长和光源功率,从而保证pdl计算的有效性。使用muller矩阵法测量pdl的典型装置如图3.2所示。图3.2 muller矩阵法示意图解上述方程组可以得出muller矩阵第一行的系数为:(3.4)重写任意输入stokes矢量与输出总功率之间的传输关系,得到(3.5)上式微分可以得到的极值(详细推导过程见附录):(3.6)将、带入pdl的定义式,便可将其求出57。由于muller矩阵法对pdl的获取只对四种偏振态下的传输进行了测量,因此其测量时间远远小于偏振扫描法,可以通过连续可调谐光源用扫描的方式实现波长相关的测量。在每个偏振态下,记录下不同波长的传输特性,通过记录的数据可以有上述算法得出不同波长下的pdl。由于需要在四种偏振态下分别测量输出功率,故一共需进行四次波长扫描。 偏振控制器对不同的波长和偏振态有不同的传输特性,当波长变化时,到达起偏器的偏振态周期性地变化,从而导致其传输特性随着波长的周期性变化。针对每个波长重新调整起偏器已获得最大输出功率会使波长扫描系统的优势无法体现,因此,波长相关传输特性应在参考测量时记录。同时,偏振控制器偏振态变化时引起的功率变化也应在参考测量时记录。为了减小muller矩阵法的不确定性,在建立测量系统时必须考虑到偏振控制器的角度不确定性、可调谐激光光源的波长准确度和可重复性。同时,光源和偏振控制器间的光纤连接在测量过程中应尽量避免环境变化,如震动,温漂或移动,否则入射到起偏器的光偏振态就会发生变化,从而导致偏振控制器的谱传输特性曲线改变,参考和实际测量就会在不同的条件下进行,无法对测量校准56。值得指出的是,由该方法计算得出的可以得出无源器件另一个参数插入损耗(insertion loss, il)。由于muller矩阵法具有较高的测量速度,il的测试常常与pdl同时进行。3.2.3 单次muller扫描法上述muller矩阵法的缺点可以在一种新的方法中克服。这种方法基于单次扫描,将所有的数据在一次光源波长扫描中收集,其装置如图3.3:图3.3 单次muller扫描法示意图和图3.2所示的传统muller方法相比,该方法有两个主要变化:1. 偏振合成器代替了偏振控制器,它包含了众多波片和一个内置偏振态测量器,从而可以实时测量光信号的偏振态。偏振合成器能够在几毫秒内完成波片组的调整。2. 为了得到高速采样率,功率计由高速功率计代替。在光源扫描过程中,偏振控制器高速地在四或六种偏振态之间转换。高速采样率保证了每种偏振态下测得的数据被准确地收集。用六种而不是四种偏振态,保证了更多的平均数据也增加了测量的精确度。每组偏振态的stokes参数由集成在偏振合成器中的偏振态测量器精确确定。这种方法的优点在于:较高的测量速度;因为偏振态在扫描中经过了测量,只存在很小的不确定性,所以有更高的pdl测量精度;因为波长扫描时在偏振合成器中没有起偏器导致的功率纹波,所以有更高的功率测量精度;因为所有数据都在一次扫描中记录,不存在多次扫描导致的误差,波长的不精确将不再对pdl不确定性造成影响,而且在测量中被测件的运动或温度敏感被最小化5。40第四章 偏振相关损耗测试软件4.1 编程语言和开发环境4.1.1 vb.net编程语言vb.net是微软公司推出的vs. net可视化应用程序开发工具组中的一个重要成员。vs. net通过公共语言运行环境,将vb. net、vc+. net、c#. net等应用程序开发工具紧密地集成在一起,使它们共同使用一个集成开发环境(integrated development environment, ide), 并使用同一个基础库类,这样大大简化了应用程序的开发过程,为开发人员快速地创建分布式应用程序提供了强有力的支持。vb.net完全支持面向对象编程的新特性。其实从vb4.0发布时,就引入了面向对象的编程方式,但一直到vb6.0,程序设计中只是涉及到一些对象的操作,仍然不是真正的面向对象编程方法。即一直到vb6.0,vb仅仅是一个基于对象的开发工具。vb. net利用. net框架提供的功能,真正实现了面向对象编程。微软公司在对vb. net的重新设计中,引入了更严格的面向对象特性,如封装、集成、可重载、多态性等,使vb. net称为完全面向对象的开发工具。vb. net编程具有很多优点,如多平台特性、无接触部署等,然而最大的优点是开发效率高。通过. net framework提供的庞大而又清晰的类结构,使编程变得异常轻松,同时自动垃圾回收机制等一系列新特性,可以让程序员把更多的精力放在考虑如何实现逻辑功能上而不是计算机控制上。. net还带来了多种语言之间的无缝集成,例如一个系统可以同时采用多种语言来开发,vb. net编写的类可以方便地在用c#继承,这些都提高了开发效率8。4.1.2 vs2008集成开发环境microsoft visual studio 2008是面向windows vista、office 2007、web 2.0的下一代开发工具,是对visual studio 2005一次及时、全面的升级。vs2008引入了250多个新特性,整合了对象、关系型数据、xml的访问方式,语言更加简洁。设计器中可以实时反映变更,xaml中智能感知功能可以提高开发效率。同时visual studio 2008支持项目模板、调试器和部署程序。visual studio 2008可以高效开发web应用,集成了ajax 1.0,包含ajax项目模板,它还可以高效开发office应用和mobile应用9。vs2008智能,调试方便,窗口层次分明,功能齐全,大大提高了程序的虚拟仪器系统软件的开发效率。4.2 软件测试流程pdl测试过程主要分为仪表连接、校准、测试、处理结果四个步骤,其流程在软件界面中有所显示。四个步骤的软件界面分别如图4.1、图4.2和图4.3所示。图4.1 仪器连接界面图4.2 校准/测试界面图4.3 处理结果界面 在仪器连接部分,程序根据用户选择的仪器类型,新建相应的仪表对象,接着建立控制器与仪器之间的通信接口并打开仪器。在校准部分,需要短接偏振控制器与功率计,记录各个波长下,调整各个偏振态后的波片位置和功率计读数。测试部分接入被测件,用校准中记录的波片位置调整偏振态,扫描波长进行功率测量,得到全部功率后再通过计算得出pdl和插入损耗(insertion loss, il)。处理结果部分,可以将得到的结果绘制成曲线(可以使vb绘制曲线或matlab绘制曲线)或存成文本文档。程序还有载入校准数据、载入测量数据等其他功能。4.3 软件构架整个软件的构架如图4.4所示,共分3个层次。第一层为控制层,即窗口pdltest.vb,控制着程序的运行方向,同时包含一些文件处理方法。第二层为方法层,由testing.vb和drawing.vb两个模块组成,其中testing.vb包含了有关pdl/il测试的所有方法,drawing包含了作图、画曲线的所有方法。第三层为操作对象层,将被操作的仪器(可调谐激光器、偏振控制器、功率计)封装成类,每个仪器类中包含了仪器自身的资源和操作方法函数。将仪器封装成类的好处是,可以在更换仪器时无需改变控制层和方法层的函数,只需编写新的仪器类并在初始化时建立该仪器的对象。 下面将从下自上,依次对三个层次分别介绍。图 4.4 软件构架示意图4.3.1 作为类的仪器扫描波长测试pdl需要用到的仪器有可调谐激光源(tunable laser source)、偏振控制器(polarization controller)、光功率计(power meter)。其中,光源和功率计可以选择不同的厂家、型号,初始化时生成相应的类的对象。光源和功率计与计算机通信都是通过发送scpi命令来实现的。特殊地,程序中使用的偏振控制器(n7788b)的初始化和与计算机通信的方式并不是通过发送scpi命令来实现的,而是调用了动态链接库polnavclient.dll。该dll文件是安装安捷伦软件polarization navigator后产生在c:windowssystem32文件夹下的。也就是说,程序是通过调用了polarization navigator的后台函数来控制偏振控制器的 polarization navigator软件也具有计算pdl的功能但其只支持安捷伦某些具有扫描功能类型的激光器,不能识别另一些安捷伦激光器,更不能识别其他厂家的激光器。本文编写的pdl测试软件可以控制任何厂家和型号的激光器和功率计。下面对光源、功率计和偏振控制器两种情况进行类的详细说明。1、光源和光功率计光源和光功率计类中有一些参数和方法是二者共有的如表4.1、表4.2所示。表4.1 仪表类共同参数参数名称类型说明hardwareaddressstring仪器硬件地址iodmmformattedio488仪器i/o接口类rmresourcemanager仪表资源管理器表4.2 仪表类共同方法方法名称作用关键语句hdhandleinit()为仪器新建rm和iodmm句柄,使计算机能够通过硬件接口与仪器通讯rm = new resourcemanageriodmm = new formattedio488classioinitial()根据仪器硬件地址通过资源管理器rm打开仪器,进行i/o初始化iodmm.io = rm.open(hardwareaddress)stateinit()调整仪器到准备工作状态视各仪器需求而定initialize()依次执行hdhandleinit()、ioinitial()、stateinit()hdhandleinit()ioinitial()stateinit()sendcmd(byval cmd as string)向仪器发送scpi命令iodmm.writestring(cmd)readcmd()读回仪器响应return iodmm.readstring()wait()通过向仪器发送*opc?命令,判断当前操作是否完成do sendcmd(*opc?) response = readcmd()loop until (response.contains(1)每个仪器根据其功能和在系统中的地位,有自己独特的功能(方法)。表4.3、表4.4、分别对光源和光功率计的方法进行了说明。表4.3 可调谐激光器方法10方法作用关键语句setwavelength(byval wavel as single)调节激光器波长sendcmd(sour4:wav & wavel.tostring & nm)wait()setpower(byval pow as double)调节激光器功率sendcmd(sour4:pow & pow.tostring & mw)wait()表4.4 光功率计方法11方法作用关键语句getpower(byval wavel as single)获取功率值sendcmd(sens1:pow:wav & wavel.tostring & nm)sendcmd(fetc1:pow?)getpower = readcmd()2、偏振控制器偏振控制器的重要参数和方法如表4.5所示。表4.5 偏振控制器的参数和方法12参数/方法类型/作用说明/关键语句responsestring发送命令后的响应errorcodestring发送命令返回的错误代码(0为无错)stateinit()初始化偏振控制器polnavsendcommand(global, get version, response) polnavsendcommand(polcon*, activate, response)polnavsendcommand(polcon*, stabilize, response)polnavsendcommand(polcon*, set stabilize,0, response)polnavsendcommand(byval target as string, byval command as string, byref response as string)向偏振控制器发送命令(参数依次是:作用目标、命令、响应)polnavreadresponse(byval istart as integer, byval ilength as integer, byref response as string)读回偏振控制器响应setwavelength(byval wavlen as string)设置偏振控制器波长polnavsendcommand(polcon*, set wavelength, + wavlen, response)getsop(byval sop as string)获取stokes参数(归一化)polnavsendcommand(polcon*, get currentsopn, response)setpzstate(byref state as string)设置波片状态(校准时使用)polnavsendcommand(polcon*, set targetsop, & state, response)polnavsendcommand(polcon*, set stabilize,1, response)setpzstate(byref phase as integer, byval bochang as integer)设置波片状态(测量时使用)polnavsendcommand(polcon*, set wpl, & strpara, response)strpara为此偏振态下波片位置值得注意的是,表中有两个setpzstate函数,分别用于校准和测试时。校准时,通过set targetsop命令设置偏振态,并由偏振测试器验证设置是否成功,若不成功则再次测量,该部分代码如下: 设置偏振态polnavsendcommand(polcon*, set targetsop, & state, response) polnavsendcommand(polcon*, set stabilize,1, response) for i = 0 to 10 if getsop(state) = true then 设置偏振态成功 setpzstate = true exit function end if设置偏振态不成功,重新设置 polnavsendcommand(polcon*, set stabilize,0, response) polnavsendcommand(polcon*, set targetsop, & state, response) polnavsendcommand(polcon*, set stabilize,1, response) next设置成功后,校准函数会将此时的波片位置存入校准数据中,测试时调用测试时用的setpzstate函数,可以直接准确地设置偏振态。4.3.2 测试、画图和文件处理方法1、测试模块测试模块文件为testing.vb,包含了所有校准、测试和后期计算的方法。程序将测试参数、校准结果、测
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民航历史考试题及答案
- 大学助老面试题及答案
- 金蝶软件考试题及答案
- 社区书记考试试题及答案
- 助力防疫考试题及答案
- 岳阳招聘面试题及答案
- 旅游会议考试题及答案
- 中专文秘考试试题及答案
- 临床职业医师笔试题型及答案2025版
- 临床执业笔试题库及答案2025版
- 村庄保洁服务投标方案(技术方案)
- VTE防控管理相关制度(VTE患者管理与随访的相关管理制度)
- 2023年辽宁省中考语文现代文阅读之记叙文阅读7篇
- 氧化铝制取全套教学教程整套课件全书电子教案
- 2024年资金分析师职业鉴定考试复习题库资料(浓缩500题)
- 项目部地震应急演练方案
- 班级管理教育调查报告(3篇模板)
- 2024年度医疗器械监督管理条例培训课件
- 外研版八年级下册英语知识点、语法总结
- GB/T 18910.4-2024液晶显示器件第4部分:液晶显示模块和屏基本额定值和特性
- 一规程四细则培训课件2024
评论
0/150
提交评论