最近这些日子在学习C#和自动化测试相关知识,C#已经学习得差不多了,和java很像,在自动化测试中用于编写上位机,功能不要求复杂,但是要稳定。自动化测试涉及的类容较多,仪器较多,不过在VISA的基础上便捷很多,特别有利于后续的自动化测试系统开发。
VISA是什么呢?virtual instrument sofeware architecture,仪器的虚拟软件架构,或者叫做API(应用程序接口),它很强大,把各种通信接口和协议向上封装到统一的函数。包括USB 串口 GPIB LAN等通信,再通俗点就是使用者不用管那么多底层的通信协议,什么数据包,设备地址,端点号,令牌包,校验包等,不用具体去编程操作,只需要调用VISA lib dll提供的封装函数即可,比如write
printf等,即可完成对设备的读取操作,再不用头疼那些具体的协议了。
GPIB是什么?通用接口总线,与计算机和仪器连接,实现通信,具体的协议和管脚定义参考下列地址https://wenku.baidu.com/view/93621cbc960590c69ec37654.html
总之GPIB在仪器和测试总线上应用广泛,连接安捷伦示波器,频谱仪,光功率计等,这些仪器和PC组成一个网络,由PC来发出命令对这些仪器操作。
SCPI是什么? standard commands for programmable instruments,可编程仪器的标准通用命令,意思就是,做仪器的厂家这么多,大家的仪器操作命令和格式各不相同,要不就商量着统一一些常用的命令格式吧, 包括IDN* 读取 等简单命令,后续讲解。
所以,这些命令是比较底层的和仪器直接接触的有类似驱动功能的命令,而VISA是偏向应用和用户的,便于函数功能的实现,所以在实际的控制中,写入简单的VISA操作命令,例如write.string(SCPI),其中要写入各个厂家仪器特定的SCPI命令。这样完整的命令通过GPIB总线传输。
那么,偏向于用户层面的函数实现是怎么回事呢?