编程控制仪器进行自动化测试(Visa驱动、GPIB驱动)
本文将会介绍如何通过编程的方法来控制仪器,并进行自动测试编程控制仪器,下面简称[“程控”][3];博主经常使用的是安捷伦、罗德与施瓦茨两大厂家的仪器;经常程控的仪器有信号源、频谱仪、示波器、网络信号分析仪、衰减器、电源等支持程控的设备;程控必备基础学习程控仪器,就必须得了解一些相关的基础知识。(曾经有群友向我请教关于程控的问题,几乎将我问到奔溃)1. SCPI指令集可编程仪器标准...
本文将会介绍如何通过编程的方法来控制仪器,并进行自动测试
编程控制仪器,下面简称[“程控”][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. 编程基本功底
基础功底是必备的,如果如何写程序都不会?肿么写程控软件?肿么写驱动程序?好比一个人,如果不会加减乘除法,却又不愿意使用计算器,却非要执拗的去做算数题,这样能有结果?欲速则不达啊。
编写程控软件的步骤:
确定编程语言。
明确手动控制仪器的流程,需要控制的仪器参数。
查找仪器命令手册(一般从仪器官网可以下载到命令手册,),查找出对应参数的控制命令。
安装GPIB或者Visa驱动(非常重要)。
调用驱动,编写自动测试流程(实现你的测试流程,做你想做的事儿)。
如果是安捷伦的设备,一般可以采用 Agilent IO软件来测试命令,也可以使用NI的NI MAX工具。
GPIB和Visa我都使用过,个人比较偏爱于使用Visa,Visa相对于GPIB,封装的层次更高,更便于程序员理解和使用。
编写程控软件,界面框架可以采用Qt、Winform、LabView、C++builder等,几乎没有限制。
GPIB编程范例:
回公司了再copy一段代码示例。
1
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的官网获取更多的知识。
————————————————
版权声明:本文为CSDN博主「好儿郎-志在四方」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/rl529014/article/details/79586993
更多推荐
所有评论(0)