基于Labview平台的网络化频谱仪实现摘要:采用网络频谱模块,基于Labview平台,采用顺序结构、循环结构、事件结构编程,实现频谱数据捕获。利用Labview丰富的数据处理功能,分析所获取的数据,实现频谱显示、频谱监测、干扰感知等功能。关键词:Labview平台;网络频谱仪;事件结构;频谱监测DOIDOI:10.11907/ijdk.l61756中图分类号:TP319文献标识码:A文章编号:16727800(2016)0100126020引言网络化仪表常常采用RS-232接口或GPIB接口编程,然后通过Labview的Web发布成WebServer供网络浏览器客户端用户使用,存在仪表与计算机之间的接口速度限制,同时Web访问仪表数据和控制仪表操作存在HTTP格式限制,冗余多且效率低,导致访问速度慢,限制了仪表网络化使用范围[1]。目前,网络频谱模块提供SCPI编程命令,同时提供USB接口和LAN接口,数据传输速率有了极大提升,同时采用高级编程语言的TCP/IP编程,并采用具有ASCII字符串特性的SCPI命令,可以方便实现网络频谱仪功能,网络数据格式规范、效率高[23]o在SCPI高级语言编程中,VisualC++.C#、Java等存在频谱显示部分处理编程困难、时间效率低下、频谱显示不够灵活等缺陷,而采用Labview编程,可以很方便地处理频谱数据,并显示频谱图形,能较为显著地提高编程效率[4]。1Labview编程Labview程序采用TCP连接和操作,具有三级结构:第一级是顺序结构,在顺序结构开始位置打开TCP连接,在顺序结构中间循环读取并显示数据,在顺序结构末尾关闭TCP连接;第二级采用循环结构,不断更新频谱显示,在循环结构内部嵌套事件结构,超时条件作为默认处理分支,其它分支均为事件触发;第三级采用事件结构,在有参数设置或按钮动作的情况下立刻处理,在没有事件触发的情况下,进入默认的超时处理分支,在默认的超时分支不断更新显示频谱图形。事件结构为节约处理器资源,按钮触发即时反应与动作,硬件资源合理使用等方面提供了较好的解决方法⑸。2SCPI命令SCPI是现代仪器仪表通用编程命令,实现ASCII字符串的发送与接收,字符串之间采用空格或逗号分隔,命令字符串末尾以回车换行结束,查询命令返回的结果字符串也是以回车换行结束。SCPI采用分类分级结构,主要有以下几类:IEEE488.2标准命令、:CALibration命令、:CALCulate>:CONFigure>:DIS-Play、:FETCh、:HCOPy、:INITiate、:MMEMory、[:SENSe]>:SYSTcm、:TRACe、:OUT-Put、:SOURce、:UNITo每类采用分级结构,频谱仪编程中最常用的命令在[:SENSe]、:TRACe这两类中,其它仪表比如功率计、示波器等仪器仪表编程使用其它类命令,比如读取中心频率命令"[:SENSe]:FREQuency:CENTer?”中[:SENSe]可以省略,注意语句末尾有回车换行,返回数据是ASCII字符串,也以回车换行结束。设置频谱仪中心频率命令:FREQ:CENT200000000(注意:其后有回车和换行两个不可显示字符),将频谱仪中心频率设置为200MHz,没有返回值;读取频谱仪中心频率值命令:FREQ:CENT?(注意:其后也有回车和换行两个不可显示字符),返回200000000,表示频谱仪中心频率为200MHz□具体参考相应设备SCPI说明书。频谱模块将复杂计算封装起来,提供标准SCPI命令接口供编程使用,极大简化了编程量,提高了编程效率,考虑到数据处理编程的简易性和图形界面编程的复杂性,采用Labview作为开发工具,充分利用Labview强大的图形界面处理能力,简化频谱图形显示问题。3程序总体结构程序最外层为顺序结构,中间主体部分为循环结构,循环结构内部处理事件结构,Labview2013版提供了事件结构,可以节约大量处理时间,程序总体结构如图1所示。该程序最外层采用顺序结构,首先处理TCP连接,中间循环处理图形及按键,最后处理TCP断开,中间的循环结构是程序的主体部分,承担程序主要处理任务。循环结构中包括一个事件结构,事件结构中包括一系列按键动作触发的值改变事件和一个默认的超时事件。在循环结构中主要处理频谱数据,从频谱模块读取的一组数据如下:-84.530,-86.161,-85.074,-87.819,-85.661,……,-82.143,-84.403,-86.269,-87.895,-80.974,-79.619,-81.091,-84.003,-82.255,-85.203,-86.018,-82.311,-85.853,-83.630,-84.024,-79.017...