由于项目所需,要编写上位机控仪器实现所谓一键读取数据的功能。于是乎不得不学习点VISA编程。研究了一阵子手册,明白了发送命令的方式。使用的仪器是安捷伦的DSO-X 3034A。
1、在https://www.keysight.com/main/techSupport.jspx?cc=CN&lc=chi&nid=-32540.1150200&pid=x201847&pageMode=PL&t=79841.g.1 下载Programmer’s Guide for InfiniiVision 3000 X-Series Oscilloscopes。
https://blog.csdn.net/leokingszx/article/details/78796034
仔细研究手册可以解决大部分问题。
2、下载IO library后,将仪器和电脑用USB连接,既可以在IO library上找到仪器。
3、打开 Interactive IO,之后就可以输入命令了。以输出VPP为例。其测量命令为:MEASure:VPP? CHANNEL1 (测量一通道的VPP的值)
解释:
测量VPP的语句是 :MEASure:VPP? [] 主要是[]令人困惑。而 ::= {CHANnel | FUNCtion | MATH | WMEMory}
该如何理解呢?
在目录里找到 SynTax Elements,而后理解到 [ ],代表可选的。{ }和 其中 | 的组合,表示可选其中的一个值。又注意到 代表数字,所以,
MEASure:VPP? CHANNEL1 就代表测量1通道的峰峰值了。那什么时候取Function 和Math等呢?不得而知。。反正项目里应该用不到。
然后就该上硬菜,进行编程了!
在熟悉了SCPI的语法后,现在开始着手编写上位机程序。正如Guide文件所言,上位机可以用多种语言编写。然而为了借鉴学长的VB程序,所以我也用了VB这种号称已经要被淘汰的语言。
1、在安装IO library时会默认安装一个VISA库(名为VISA COM 5.9 Type Library)。在项目里引用它。
https://blog.csdn.net/leokingszx/article/details/78798726
https://blog.csdn.net/lv_fu/article/details/53303370
https://blog.csdn.net/qq_33656619/article/details/79822655
https://blog.csdn.net/meizuover/article/details/79390477
https://blog.csdn.net/weixin_30273501/article/details/96362708
https://blog.csdn.net/u011896623/article/details/78531313
https://blog.csdn.net/weixin_39033430/article/details/103557375
https://blog.csdn.net/weixin_30815469/article/details/98863407
https://blog.csdn.net/zgl7903/article/details/94839382
https://blog.csdn.net/weixin_41695564/article/details/82353630
https://blog.csdn.net/dxm809/article/details/103822814
https://blog.csdn.net/caimeihua5369/article/details/90748060