编程控制仪器进行自动化测试(Visa驱动、GPIB驱动)

本文将会介绍如何通过编程的方法来控制仪器,并进行自动测试


  • 编程控制仪器,下面简称[“程控”][3]
  • 博主经常使用的是安捷伦罗德与施瓦茨两大厂家的仪器;
  • 经常程控的仪器有信号源、频谱仪、示波器、网络信号分析仪、衰减器、电源等支持程控的设备;

程控必备基础

学习程控仪器,就必须得了解一些相关的基础知识。(曾经有群友向我请教关于程控的问题,几乎将我问到奔溃)

1. SCPI指令集
可编程仪器标准命令,定义了一套用于控制可编程测试测量仪器的标准语法和命令。命令主要分为Set(控制)和Query(查询)两种。
2. GPIB
通用接口总线是一种设备和计算机连接的总线。大多数台式仪器是通过GPIB线以及GPIB接口与电脑相连,系统中最多不能超过15台仪器。
如果是台式机或者笔记本作为主控机,需要买一个USB转GPIB的线。
3. Visa
Virtual instrument software architecture,虚拟仪器软件结构。可以使用网线连接仪器,通过网络地址来程控仪器,也可以通过GPIB线,使用端口程控仪器。
关于visa的详细内容参见wiki:https://en.wikipedia.org/wiki/Virtual_instrument_software_architecture
4. 编程基本功底
基础功底是必备的,如果如何写程序都不会?肿么写程控软件?肿么写驱动程序?好比一个人,如果不会加减乘除法,却又不愿意使用计算器,却非要执拗的去做算数题,这样能有结果?欲速则不达啊。

编写程控软件的步骤:

  1. 确定编程语言。
  2. 明确手动控制仪器的流程,需要控制的仪器参数。
  3. 查找仪器命令手册(一般从仪器官网可以下载到命令手册,),查找出对应参数的控制命令。
  4. 安装GPIB或者Visa驱动(非常重要)。
  5. 调用驱动,编写自动测试流程(实现你的测试流程,做你想做的事儿)。

如果是安捷伦的设备,一般可以采用 Agilent IO软件来测试命令,也可以使用NI的NI MAX工具。
GPIB和Visa我都使用过,个人比较偏爱于使用Visa,Visa相对于GPIB,封装的层次更高,更便于程序员理解和使用。
编写程控软件,界面框架可以采用Qt、Winform、LabView、C++builder等,几乎没有限制。

GPIB编程范例:

回公司了再copy一段代码示例。

Visa编程范例:

某电源的初始化函数

BOOL CXXXDlg::InitPower()  
{  

    char chStatusDesc[_MAX_DIR] = {0};  
    int retCnt=0;     
    char instrDesc[100]={0};      
    ViFindList find_list;     
    float voltSetting, currSetting;  
    voltSetting = atof(ini_powervolt);  
    currSetting = atof(ini_powercurrent);  
    VISAstatus=viOpenDefaultRM(&defrm);  
    if (VISAstatus != VI_SUCCESS)  
    {  
        return FALSE;  
    }  
    VISAstatus = viFindRsrc(defrm,"GPIB?*INSTR",&find_list,(ViPUInt32)&retCnt, instrDesc);  

    VISAstatus=viOpen(defrm,instrDesc, VI_NULL, VI_NULL, &session);  

    if (VISAstatus!=VI_SUCCESS)  
    {  
        return FALSE;  
    }  
    //Set voltage  
    viPrintf(session,"VOLT %f \n",voltSetting);     
    //Set current level  
    viPrintf(session,"CURR %f \n",currSetting);  
    return TRUE;  
}  

关于仪器控制,可以前往NI的官网:http://www.ni.com/zh-cn.html
NI提供的程控工具:VISA Interactive Control(可以去官网下载,NI的工具是收费的)
这里写图片描述
在测试测量领域,NI做的非常强大,感兴趣的朋友可以去NI的官网获取更多的知识。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页