发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种微波测量仪器中自定义测试功能序列的实现方法。
本发明的技术方案如下:
一种微波测量仪器中自定义测试功能序列的实现方法,其中,包括以下步骤:
步骤S101:建立自定义文件;
步骤S102:判断对应命令文件是否存在,如果是则进入步骤S103;如果否则进入步骤S111;
步骤S103:从命令文件中读入一行;
步骤S104:判断是否为文件结尾,如果是则进入步骤S107;如果否则进入步骤S105;
步骤S105:判断是否为预定义的关键字,如果是则进入步骤S110;如果否则进入步骤S106;
步骤S106:将该行命令加预设字符发送到仪器内部的程控命令解释器后,进入步骤S108;
步骤S107:退出线程;
步骤S108:判断该条命令是否执行完成,如果是则进入步骤S103;如果否则进入步骤S109;
步骤S109:继续读取命令执行状态判断;
步骤S110:执行关键字定义的动作后,进入步骤S103。
所述的自定义测试功能序列的实现方法,其中,所述步骤S101是在测试仪器内带的SCPI程控指令下建立自定义文件。
所述的自定义测试功能序列的实现方法,其中,所述步骤S103后还执行步骤S1031:存储读入一行的数据。
所述的自定义测试功能序列的实现方法,其中,所述步骤S106中预设字符为换行符。
采用上述方案,可以利用仪器通用的程控命令集实现新测试功能或组合测试功能,不需要用户具备系统软件编程能力以及系统开发能力。通过仪器的自定义测试功能菜单,可以极大的方便用户的测试工作,提高测试效率,尤其是与搭建系统相比,便于生产线使用,同时可以规范测试流程和测试参数,使每次测试的设置都保持一致,便于测量结果的比对。用户开发的测试功能序列可以在同类型仪器以及兼容型号的仪器中运行,极大的方便了仪器的应用层面的开发。本发明实现起来成本非常低廉。
具体实施方式
以下结合附图和具体实施例,对本发明进行详细说明。
实施例1
该发明实现包括两部分:自定义测试功能序列编辑功能,自定义测试功能序列内部功能实现,
1.自定义测试功能序列编辑功能的实现
在一个自定义菜单键设置的命令文件选择对话框中,选择或输入该自定义按键对应的命令文件,并以命令文件的文件名去掉扩展名后替代“自定义菜单键1”的字符串,这样自定义测试功能序列赋予自定义菜单1了,点击该菜单就是就可以执行这个自定义测试功能了。
2.自定义测试功能序列内部功能实现
命令文件的内部协议格式、存储格式及关键字设计:
利用测试仪器内带的SCPI程控指令建立命令文件,语法格式遵守标准SCPI(程控仪器标准命令集)语法指令,把测试任务对仪器的设置控制流程用程控命令逐条存储在文件中形成测试序列,发送时每条指令末尾增加”\n”换行符作为命令串结束标志。
在程控命令集外,设计增加几条扩展菜单功能用的专用关键字作为测试序列的流程控制,序列命令关键字PAUSE用于暂停命令文件的执行,PROMPT用于弹出提示窗口,提示测试用户切换天线等动作,PROMPT后面可以带字符串类型的参数,用法为PROMPT(“提示”)。另外增加几个暂存测量结果和清除显示测量结果的关键字,StoreMarker关键字用于存储激活Marker的信息到结果缓存区,StoreScreen关键字用于保存仪器的测量屏幕到结果缓存区,ClearStore关键字用于清除整个结果缓存区,DisplayResult用于显示整个结果缓冲区的内容。结果缓冲区在被清除以前,可以同时存储一系列字符串和图像结果。
命令文件的存储格式采用TXT格式,这样几乎所有编辑器都支持这种文本格式文件,方便用户的编辑更改。
自定义测试功能序列命令文件的处理流程:
在现有仪器整机软件中增加设计一命令加载线程函数,当用户点
击仪器
屏幕上的自定义菜单后,仪器整机软件中命令加载器会建立一个命令加载线程,流程如下:
用户点击已经赋予自定义测试功能序列命令文件的菜单后,仪器软件启动命令文件加载处理线程,该线程启动后首先判断关联的命令文件是否存在,若存在则逐行读取命令文件,并对每行进行解释执行,若碰到文件结尾,则退出线程,表示该菜单命令执行完毕,若该行命令为预定义关键字如“StoreMarker”、“Prompt”等则执行该命令关键字定义的动作,如果都不是则把该行命令加”\n”加到命令行后面,通过内部消息通道发送到程控命令接收解释线程,并等待该行命令执行完,每发送完一次命令,都判断命令执行是否完成,若完成再继续读取并发送下一条,如此循环直到该命令文件的最后一行执行完后,退出命令处理加载线程。
命令加载器读取的每条程控命令通过软件通信机制直接发送到仪器内带程控命令解释器,该程控命令解释器负责接收和解释程控命令,由于所有能够外控的通用测试仪器都带程控命令集,而且都支持SCPI命令集。实现该发明,所以只需要在仪器整机软件中实现命令加载器,不需要更改仪器软件的其它部分,因此该发明实现非常方便,且便于软件移植。
如图1所示,用户可以在测量仪器提供的自定义菜单上,选择一个命令文件选择对话框,输入该自定义菜单对应的命令文件,并以命令文件的文件名去掉扩展名后替代“自定义菜单上”的字符串,以完成建立自定义文件。
利用测试仪器内带的SCPI程控指令建立命令文件,语法格式遵守SCPI语法指令,把测试任务对仪器的设置控制流程用程控命令逐条存储在文件中形成测试序列,发送时每条指令末尾增加”\n”换行符作为命令串结束标志。
在程控命令集外,可以增加几个专用关键字作为测试序列的流程控制,
序列命令关键字PAUSE用于暂停命令文件的执行,PROMPT用于弹出提示窗口,提示测试用户切换天线等动作,PROMPT后面可以带字符串类型的参数,用法为PROMPT(“提示”)。
另外增加几个暂存测量结果和清除显示测量结果的关键字,StoreMarker关键字用于存储激活Marker的信息到结果缓存区,StoreScreen关键字用于保存仪器的测量屏幕到结果缓存区,ClearStore关键字用于清除整个结果缓存区,DisplayResult用于显示整个结果缓冲区的内容。结果缓冲区在被清除以前,可以同时存储一系列字符串和图像结果。
命令文件的存储格式采用TXT格式,这样几乎所有编辑器都支持这种无格式文件,方便编辑更改。
命令加载器读取的每条程控命令通过通信机制直接发送到仪器内带程控命令解释器,该程控命令解释器负责接收和解释程控命令,由于所有能够外控的通用测试仪器都带程控命令集,而且都支持SCPI命令集。实现该发明,只需要在仪器整机中实现命令加载器,不需要更改仪器程序的其它部分,因此该发明实现非常方便,且便于程序移植。
仪器整机程序中命令加载器会建立一个命令加载线程,该线程启动后首先判断关联的命令文件是否存在,若存在则逐行读取命令文件,通过内部消息通道发送到程控命令接收解释线程,每发送完一次命令,判断命令执行是否完成,若完成再继续读取发送下一条。
为了更详细地说明本发明的技术方案,下面给出一具体实例。
在某型号微波频谱分析仪中,首先仪器显示面板建立自定义菜单,可以在仪器的右边增加一列空白菜单,在选择对话框内,选择命令文件作为该菜单关联的命令执行序列。
在仪器整机程序中增加一命令加载线程函数,该函数实现流程按照图1,当用户启动自定义的菜单时,该命令激活加载线程函数,首先判断关联的命令文件“晶振测试.txt”,是否存在,如果存在则载入,并逐行读取其中的命令字符串,如果读取的命令串是控制关键字,则执行关键字定义的动作,如果读取的是冒号开头的GPIB程控命令,则把命令通过消息或管道等通信机制发送到GPIB命令接收线程,并通过判断状态标记判断命令是否完成,完成则发送下一条,未完成则等待完成,直至命令文件结尾。
命令文件中,每一行开头带冒号的是基于SCPI语法的GPIB程控指令,不带冒号的是内建关键字,这样即时现有的仪器命令集中的命令串与关键字重了,也不影响使用。
下面是用频谱分析仪对一振荡频率为40MHz的晶振的测试,测试项目主要包括晶振的振荡频率和输出功率,以及相位噪声的测试。文件命名为“晶振测试.txt”,具体内容如下:
1、设置频谱分析仪中心频率为40MHz;
2、设置频谱分析仪跨度为2MHz;
3、设置频谱分析仪分辨率带宽为10Hz;
4、执行峰值搜索;
5、存储峰值点的频率和幅度值到结果缓冲区;
6、切换频谱分析仪到相位噪声测量模式;
7、设置载波频率为40MHz;
8、设置频偏为1KHz;
9、存储相位噪声测量结果到结果缓冲区;
10、在屏幕显示所有存储的结果。
在上述内容的基础上,当设置频谱分析仪的中心频率为40MHz,跨度为2MHz,分辨率带宽为10Hz,执行峰值搜索,将峰值点的频率和幅度值存储到结果缓冲区;再切换频谱分析仪到相位噪声测量模式,设置载波频率为40MHz,频偏为1KHz,将相位噪声测量结果存储到结果缓冲区,最后显示所有测量过程中的存储的结果(该结果可以打印)。至此完成了频谱仪对晶振的测试。如果有大批量的产品需要测试时,用户只需要把待测晶振接到频谱分析仪输入,点击自定义的”晶振测试”菜单,该菜单功能就按用户需求完成了一系列的晶振测试,该方法既能够极大的提高测试效率,也保证了测试方法的规范性。
实施例2
在上述实施例的基础上,进一步,提供一种微波测量仪器中自定义测试功能序列的实现方法,其中,包括以下步骤:
步骤S101:建立自定义文件;
步骤S102:判断对应命令文件是否存在,如果是则进入步骤S103;如果否则进入步骤S111;
步骤S103:从命令文件中读入一行;
步骤S104:判断是否为文件结尾,如果是则进入步骤S107;如果否则进入步骤S105;
步骤S105:判断是否为预定义的关键字,如果是则进入步骤S110;如果否则进入步骤S106;
步骤S106:将该行命令加预设字符发送到仪器内部的程控命令解释器后,进入步骤S108;
步骤S107:退出线程;
步骤S108:判断该条命令是否执行完成,如果是则进入步骤S103;如果否则进入步骤S109;
步骤S109:继续读取命令执行状态判断;
步骤S110:执行关键字定义的动作后,进入步骤S103。
所述的自定义测试功能序列的实现方法,其中,所述步骤S101是在测试仪器内带的SCPI程控指令下建立自定义文件。
所述的自定义测试功能序列的实现方法,其中,所述步骤S103后还执行步骤S1031:存储读入一行的数据。
所述的自定义测试功能序列的实现方法,其中,所述步骤S106中预设字符为换行符。
采用上述方案,可以利用仪器通用的程控命令集实现新测试功能或组合测试功能,不需要用户具备系统软件编程能力以及系统开发能力。通过仪器的自定义测试功能菜单,可以极大的方便用户的测试工作,提高测试效率,尤其是与搭建系统相比,便于生产线使用,同时可以规范测试流程和测试参数,使每次测试的设置都保持一致,便于测量结果的比对。用户开发的测试功能序列可以在同类型仪器以及兼容型号的仪器中运行,极大的方便了仪器的应用层面的开发。本发明实现起来成本非常低廉。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。