SCPI是一种可编程仪器的标准命令,可通过 GPIB, RS232, USB, LAN接口等控制仪器功能的编程语言。 SCPI 置于 IEEE 488.2 硬件部分的顶层。相同 SCPI 命令和参数控制着不同机器的相同功能。一般标准仪器都支持SCPI协议,如示波器、台式万用表、频率计、矢量分析仪、电子负载、台式电源等。通过SCPI协议与设备通信,实现自动化测试。本篇博文以电子负载为例,在Qt 框架下编写程控通信Demo。
一、运行环境
- window 10
- Qt 5.15.2, 64位 MinGW编译器
- VISA 21.0.064位
- IT8906A电子负载,使用LAN口通信
运行前下载NI的VISA软件,在线安装:下载NI-VISA - NI
配置好电子负载的LAN口参数,在PC机上确保能Ping同该设备。
用一根交叉网线通过负载的Ethernet接口连接至电脑, 或用一根直连网线连接到路由器( 此时电脑也连接到路由器) 。按前面板上的按键进入菜单, 根据菜单结构选择LAN通讯并在配置中设置网关地址( Gateway), IP地址( IP), 掩码地址( Mask) 和端口( Socket Port) 。网关地址需要与PC的网关地址保持一致,IP地址需要与PC的IP地址在同一网段。
实际配置如下:
- PC机:192.168.137.19,255.255.255.0,192.168.137.137.1
- 电子负载:192.168.137.55,255.255.255.0,192.168.137.137.1
二、添加VISA设备
打开安装的NI MAX软件,设备和接口中添加一个网络设备。
输入配置的电子负载IP进行查找校验。
可以看到当前LAN口的资源设备能够正确识别到。点击完成,保存当前的网络资源设备。
记住此时的VISA资源名称,在QT通信时,需要用到,作为设备的访问ID。
此时可以打开VISA测试面板,在Input/Output栏测试SCPI指令。
至此,说明仪器设备通信链路是正常的。
三、VISA程控通信
新建Qt工程,添加VISA的头文件和库依赖。由于NI VISA安装默认到C盘下,C:\Program Files (x86)\IVI Foundation,路径存在空格,因此在添加依赖时需要用到$$quote。
应用代码添加VISA的头文件:visa.h
使用visa.h中提供的接口函数即可正常编程。demo如下:
可以看到输出结果和NI MAX执行结果一致。
部分接口如下:
简单的demo界面: