1、基于 LabVIEW 的远程 能谱测量系统的开发第 29 卷第 7 期2006 年 7 月核技术NUCLEARTECHNIQUESVl01.29.No.7July2006基于 LabVIEW 的远程能谱测量系统的开发郑诗樵黄文达孙振宁施芝元陈谋智1(厦门大学物理系厦门 361005)2(厦门大学电子工程系厦门 361005)摘要本文讨论了一套基于 LabVIEW 的远程 1,能谱测量系统的设计技术:(1)数据采集及客户端软件编程技术,(2)基于 DataSocket 的网络通讯技术.利用该系统测量了 cs1,能谱,其性能优于基于 Javaapplet 技术的同类系统.关键词数据采集,远程控制,
2、LabVIEW中图分类号 O571.32核数据采集系统是核物理实验中广泛使用的重要设备.传统的核数据采集系统一般不具备远程采集功能.但在远程实验或者远程监控等实际应用领域,对核数据远程采集功能提出了要求.我们曾利用 Javaapplet1通过正浏览器实现了 1,能谱的远程测量,但采用的是基于 CGI 技术来实现的网络通信功能.由于采用文件作为数据交换载体,整个系统作为远程教学演示虽然可以,但稳定性方面离远程实验及远程监控等实际应用要求有差距,因此我们在实验室原有的由中国科学院上海应用物理研究所提供的多道分析器硬件设备基础上利用虚拟仪器平台 LabVIEW2-3开发了应用软件,实现了丫能谱的远程
3、测量和控制功能,在可靠性及实用性方面比基于 Javaapplet 技术的系统有较大提高,可以满足实际应用的需要.1 系统体系结构系统的结构框图如图 1 所示.U暮墨号l 当舌8Server图 1 远程 Y 能谱测量系统结构Fig.1Blockdiagramofgamma-rayenergyspectrumre.mote.measurementsystem系统包括硬件和软件两部分,其中硬件由探测器,脉冲幅度分析器,ISA 接口电路以及计算机等部分组成.其中脉冲幅度分析器又包括放大成形,甄别,展宽,ADC 等模块电路;软件包括服务器端驱动程序和应用程序,数据交换服务器和客户端应用程序.系统硬件是采
4、用实验室原有的 NIM 插件.来自探测器的信号经过成形电路形成脉冲信号,甄别电路允许一定幅度范围的脉冲信号经过,再由展宽电路对脉冲信号的宽度进行展宽,以保证下一级 ADC电路能够保持脉冲信号的幅度.最后脉冲幅度值被转化为数字信号,通过 ISA 接口电路以中断的方式传送到计算机处理.软件的设计是在 Windows98 环境下进行的.计算机通过专门的驱动程序与接口电路通信,服务器应用程序通过与驱动程序的通信获取能谱信号.获取的能谱信号可以显示,保存或处理,或者通过DataSocket 技术传送到网络上的数据交换服务器.客户端程序则在数据交换服务器的授权下实时地获取能谱信号.系统在 DataSock
5、et 网络通信技术的支持下可以实现多用户对实验数据的实时共享.2 软件设计与实现LabVlEW 图形化编程语言实现的程序称为 VI程序,vI 程序分为前面板人机界面和框图程序代码两部分.VI 程序可以被另一个 VI 程序以图标的方式调用,被调用的程序称为子 VI 程序,向主 VI 提供编程接 El.远程 1,能谱仪采用了模块化和层次化的设计方法.系统软件由服务器端程序,客户端程福建省自然科学基金(A0310003),福建省高等学校第二批网络课程计划 (14)资助第一作者:郑诗樵,男,1980 年出生,2005 年于厦门大学获硕士学位通讯作者:黄文达收稿日期:2005.0809,修回日期:200
6、6-0217第 7 期郑诗樵等:基于 LabVIEW 的远程 Y 能谱测量系统的开发 549序以及 DataSocketServer(数据交换服务器)组成.服务器端程序总体上包括数据采集和网络通信两个主要功能模块.客户端程序则实现网络通信,文件管理和数据显示等功能.服务器端程序与客户端程序的通信是通过数据交换服务器进行的.程序设计中如果各个模块采用顺序结构的方法,那么一个任务模块在运行时其它任务模块将无法运行.为了避免这种现象,程序采用多个 While循环的方式实现多线程的并行运行.将服务器端实现数据采集任务和网络通信任务的程序分别置于单独的 While 循环结构中并行地运行,同时客户端实现网
7、络通信任务和其它任务的程序也分别置于单独的 While 循环结构中并行地运行,各模块问的数据传递通过本地变量(类似于缓存)来完成.这种方式有利于服务器端和客户端快速有效地获取对方的数据.下面介绍系统各个模块的功能实现方法.2.1 数据采集设计软件数据采集的过程是对硬件设备进行控制和接收数据的过程.采集模块通过调用底层 DLL(动态链接库)各个功能函数实现测量功能,动态链接库则通过驱动程序与硬件设备通信.2.1.1DLL 编程DLL 中包含三类函数 :入口函数,Wmdows 每次加载 DLL 时都要执行入口函数 ,主要进行一些必要的初始化工作;出口函数,Windows 在卸载 DLL时调用出口函
8、数作必要的清理工作;自定义的输出函数,供不同的应用程序调用.编写 DLL 有多种方法 ,一般通过 VisualC+提供的 MFCAppWizard(dl1)来创建项目框架,在源文件.cpp 中输入用户输出函数代码,在定义文件.def中的 Expoas 项下输入要导出的函数名 ,编译后即可.这里实现了五个输出函数:StartMeasure0,StopMeasure0,SendIrqO,AcqDataO 和 BufferCkO.StartMeasure 通过调用 CreateFile 函数加载驱动程序;StopMeasure 函数调用 CloseHandle 函数卸载驱动程序;SendIrq 函数
9、调用 DeviceIoControl 函数输出中断号,该中断号软件设置必须与硬件设置一致;AcqData 函数调用 DeviceIoControl 函数获取硬件数据;BufferCk 函数的功能是调用 DeviceIoControl函数实现对驱动程序缓存数据的清零处理.驱动程序将根据 DLL 发送的请求进行相应的处理 .2.1.2VI 数据采集设计数据采集程序利用 LabVIEW 中的 CLF 节点调用 DLL 中各个功能函数实现与硬件的通信.要调用DLL 函数必须在 CLF 节点配置对话框中进行一系列设置.其中包括要加载的 DLL 和要调用的功能函数,以及该函数输入输出参数的个数,类型(必须
10、与函数原型一致)等,以确保 VI 程序对 DLL 功能函数的正确调用.数据采集程序调用 DLL 功能函数的顺序是:首先调用 StartMeasure 函数以加载驱动程序,在未开始数据采集之前通过 SendIrq 函数对中断号进行设置以得到硬件中断处理权,而后才调用 AcqData 函数开始采集或调用 BufferCk 函数进行数据清零工作.最后 VI 程序通过 StopMeasure 函数卸载驱动程序以结束采集工作.程序的框图程序如图 2 所示.图 2 数据采集框图程序Fig.2Blockdiagramofdataacquisitionprogram2.2 网络通信设计LabVIEW 支持利用
11、 DataSocket 技术(数据共享方式)实现远程实时数据采集功能.DataSocket技术基于 TCP/IP 标准,并对低层编程高度封装,用于在测量和自动化应用中共享和发布实时数据.远程 Y 能谱仪采用 DataSocket 技术来实现远程测量功能.DataSocket 技术提供 DataSocketServer,DataSocketServerManager 两个服务软件实现DataSocket 服务.服务器端程序和客户端程序将DataSocketServer 作为数据交换中介程序提供的服务实现数据的互相交换.在这里服务器端程序和客户端程序都是 DataSocketServer 的客户程
12、序.其方法是利用 DataSocket 不同功能函数将数据写入DataSocketServer 指定的数据项或从中读出.所有读写通信过程遵循 dstp 协议,源和目标地址的确定都基于统一资源定位器 URL,其格式为:dstp:/servemame/dataname,其中 Servemame 指DataSocketServer 的 II)地址或名称,dataname 指要读或写的数据对象.根据系统设计的要求,客户端软件必须实现对服务器端 Y 能谱数据采集的启动,结束以及数据清零等实时的控制功能,同时能够从服务器端获取相关的能谱信息.这就要求客户端软件的前面板上控制采集或清零的控件状态的变化必须实
13、时地反映到550 核技术第 29 卷DataSocketServer 对应的数据项上,再传送给服务器端相同类型的控件而实现控制功能.而客户端要得到能谱数据必须要求服务器端采集得到的数据也能够实时地写到 DataSocketServer 对应的数据项上并由客户端读取.系统的服务器端和客户端程序对DataSocketServer 数据项的读写过程是通过循环地调用 DataSocketRead 和 Write 函数来实现的.并且一次数据采集过程只允许一个客户端对服务器拥有控制权,这可以通过在 DataSocketServerManager中设置来实现.除了上述模块功能,利用 LabVIEW 提供的一
14、些功能函数,系统还实现了能谱数据的显示,保存和打印等功能.图 3 所示是客户端程序前面板.图中谱线是对 Hcs 放射源 0.662MeV 的 Y 射线能谱进行测量的结果,实验所用的源强是 3.7x10Bq.在厦门大学宽带网络上进行的测试中,网络控制的响应时间是秒数量级,可以满足实际要求.由于多道的定时精度由本身的硬件决定,和网络通讯过程无关,DataSocket 通讯只是起到把本地数据传送到远程的功能,没有改变数据,因此测量误差和分别率等参数在远程实验和非远程实验中是一致的.图 3 客户端程序前面板Fig.3Frontpanelofclientprogram3 结束语参考文献虚拟仪器是全新概念
15、的测量仪器,自诞生以来得到迅速的发展.本文基于 LabVIEW 软件将虚拟仪器技术应用到核数据测量中,吸收了虚拟仪器技术的优点,同时充分利用实验室原有的硬件资源,实现了远程实时核数据采集功能,进一步可以利用LabVIEW 平台强大的数据分析处理功能对核数据进行后续处理,因此该系统具有一定的实用价值.1HUANGWenda.NuclSciTech,2002,13(4):2022O42GaryWJ.RichardJ.LabVIEWgraphicalprogramming.NewYork:McGrawHil1.2001.1_6133 杨乐平,李海涛,赵勇,等.LabVIEW 高级程序设计.北京:清华
16、大学出版社,2003.1571YANGLeping,LIHaltao,ZHAOYong,eta1.LabVIEWadvanceprogramming(inChinese).Beijing.TsinghuaUniversityPress.2003.1571Developmentofgamma-rayenergyspectrumremote-measurementsystembasedonLabVIEWZHENGShiqiaoHUANGWendaSUNZhenningSHIZhiyuanCHENMouzhiJfDeptermentofPhysics,XiamenUniversity,Xiamen3
17、61005)2fDeptermentofElectronicEngineering,XiamenUniversity,Xiamen361005)AbstractDesigntechniquesofagamma-?rayenergyspectrumremote-?measurementsystembasedonLabVIEWaredescribed,includingdataacquicitionandclientcontrolprogram,andnetworkcommunicationbyDataSocket.Thegammarayenergyspectrumof 卵CsWasmeasuredbythesystem,indicatingthatperformanceofourre-motemeasurementsystembasedonLabVIEWisbetterthanthatbasedonJavaApplet.KeywordsDataacquisition,Remotecontrol,LabVIEW(C057132