VISA函数库是基于可编程仪器设备的I/O接口库(VISA API)。VISA的目的是 提供统一的设备资源管理、操作和使用的机制,以帮助最终用户简化仪器I/O的编程。
VISA的标准独立于特定的硬件设备、接口、操作系统、编程语言甚至网络环境。
通过VISA,由不同的硬件接口(如RS232,GPIB或VXI等)连接的仪器设备可以集成到一个系统中,由同一个软件采用统一的I/O完成所有仪器设备的控制
VISA实现了以下的功能:
资源定位
接口通信的生命周期控制
属性控制
资源锁定服务
事件机制
I/O控制
VISA不仅制定了实现这些功能的规范,而且发布了实现这些功能的函数原型(所有的VISA函数以VI开头),遵循VISA规范的编程API只要实现这些函数即可。
在LabWIndow/CVI的VISA函数库的使用
LabWindow/CVI 中提供的VISA函数库就是标准VISA 的一个实现,打开VISA函数库的函数面板选择窗口,可以看到包含3个子类:
资源管理
资源模板
特定资源的操作
资源管理子类实现了 VISA标准中的资源定位 和接口通信的生命周期控制;
资源模板子类实现了VISA标准中的属性控制、资源锁定服务和事件机制;
特定资源的操作子类则实现了VISA标准中I/O控制
1.资源管理
资源管理包括资源定位和通信的生命周期控制,资源定位就是一个函数 viOpen Default RM,该函数实现机器上所有VISA资源的定位,通过指针返回ViSession类型的资源句柄。对所有特定资源的通信生命周期控制都是通过此句柄实现
VISA定义了自己的数据类型,所有的VISA中的资源句柄的数据类型,本质上是无符号长整型(unsigned long)
通信生命周期控制包括打开资源 查找资源 和关闭资源
打开与一个仪器通信的资源函数位 viOpen 原型:
ViStatus viOpen(ViSession Rsrc_Manager_Handle, ViRsrc Instrument_Descriptor,ViAccessMode Access_Mode,ViUInt32 Timeout, ViSession *Instrument_Handle);
Rsrc_Manager_Handle: 资源定位返回的资源句柄;
Instrument_Descriptor:仪器设备的地址描述;
Access_Mode:设备访问模式 ,一般设为0;
Timeout :为连接资源的超时设置;
Instrument_Handle:打开成功后返回的资源通信句柄;
2 资源模板
资源模板子类实现了VISA标准中的属性控制、资源锁定服务和事件机制;