没有合适的资源?快使用搜索试试~ 我知道了~
visa 协议函数介绍
需积分: 39 47 下载量 164 浏览量
2020-12-12
12:15:36
上传
评论 1
收藏 278KB PDF 举报
温馨提示
试读
22页
VISA为虚拟仪器提供了标准化的I/O接口软件规范,VISA是整个工业界的统一的软件基础,虚拟仪器软件结构中的标准 I/O 接口软件称为VISA库,visa接口协议设备可参考函数说明。
资源推荐
资源详情
资源评论
函数
viOpenDefaultRM
原型
ViStatus viOpenDefaultRM ( ViSessionsesn );
描述 这个函数用来初始化一个 VISA 资源管理器, 此函数必须要在其他任何 VISA 函数之前调用。 函数通过 sesn参数返
回一个独立的 VISA 资源管理器 ID 。
参数
名称 方向 类型 描述
sesn OUT ViSession 返回一个独一无二的 VISA 资源管理器逻辑标识符
返回值 返回值为函数运行结果,如果成功 sesn返回 VISA 资源管理器标识符,否则返回 0。
标识符 值 描述
VI_SUCCESS 0 VISA 资源管理器初始化成功。
VI_ERROR_ALLOC 系统资源不足。
VI_ERROR_INV_SETUP 配置文件无效或者不存在。
VI_ERROR_SYSTEM_ERROR VISA 系统初始化失败。
viOpen
原型
ViStatus viOpen ( ViSession sesn, ViRsrc rsrcName, ViAccessMode accessMode, ViUInt32 timeout,
ViSessionvi);
描述 连接一个指定的设备,返回一个可用于调用其他功能的连接标识符。
参数
名称 方向 类型 描述
sesn IN ViSession VISA 资源管理器逻辑标识符。
rsrcName IN ViRsrc 地址名称。
accessMode
IN ViAccessMode 连接打开方式,可以是以下值:
VI_EXCLUSIVE_LOCK 独占方式打开;
VI_LOAD_CONFIG 更具外部配置文件打开;
VI_NULL 正常多访问打开。
timeout IN ViUInt32 如果是以独占模式连接,该参数是一个绝对时间(单位 ms),超时
就返回一个错误。其他连接方式忽略此值。
vi OUT ViSession 返回打开连接逻辑标识符。
返回值 返回值为函数运行结果,如果成功 vi 返回设备连接标识符,否则返回 0。
标识符 值 描述
VI_SUCCESS 0 连接成功。
VI_SUCCESS_DEV_NPRESENT 连接成功。但是指定的地址无响应。
VI_WARN_CONFIG_NLOADED 指定的地址不存在或者地址格式不正确。
VI_ERROR_ALLOC 系统资源不足。
VI_ERROR_INTF_NUM_NCONFIG 指定的地址是有效的,但无法使用。
VI_ERROR_INV_ACC_MODE 非法的存取模式。
VI_ERROR_INV_RSRC_NAME 地址名称语法错误。
VI_ERROR_INV_SESSION
VI_ERROR_INV_OBJECT
无效的 vi。
VI_ERROR_LIBRARY_NFOUND VISA 库加载不完全。
VI_ERROR_NSUP_OPER 资源管理器 sesn不支持此函数。
VI_ERROR_RSRC_BUSY sesn是有效的,但当前无法访问。
VI_ERROR_RSRC_LOCKED sesn被独占。
VI_ERROR_RSRC_NFOUND 信息不足或者资源不存在。
VI_ERROR_TMO 0xBFFF0015
操作超时。
viCl ose
原型
ViStatus viClose(ViSessionvi);
ViStatus viClose(ViEvent vi);
ViStatus viClose(ViFindList vi);
描述 关闭一个资源管理器或者设备连接,并释放内存。
参数 名称 方向 类型 描述
vi
IN ViSession
ViEvent
ViFindList
需要关闭的对象。
返回值 返回值为函数运行结果。
标识符 值 描述
VI_SUCCESS 0 关闭成功。
VI_WARN_NULL_OBJECT 要关闭的对象是空对象。
VI_ERROR_CLOSING_FAILED vi 不能标识正当对话通道。
VI_ERROR_INV_SESSION
VI_ERROR_INV_OBJECT
无法释放与该对话通道相关联的内存数据结构。
viFindRsrc
原型
ViStatus viFindRsrc( ViSessionsesn, ViString expr, ViPFindList findList,
ViPUInt32 retcnt, ViRsrc instrDesc);
描述 该函数用于查找 VISA 系统里与指定接口相连的资源设备。该函数查找的与 expr 参数相匹配的有效资源设备。
该函数成功完成将返回与 exor 相匹配的资源组中的第一个资源( instrDesc),还返回一个资源组中的个数( retnt)。
另外还返回一个找到的队列句柄,可以同过调用 viFindNext 传入这个句柄来获得其他找到的资源。当这个句柄不
需要时必须调用 viClose 关闭。
expr 参数不区分大小写,搜寻标准由两个部分组成:一个资源的正则表达式和一个可选的属性值逻辑表达式。这
个正则表达式是与已知的 VISA 资源管理器相匹配。
如果这资源字符串与正则表达式相匹配,并且属性值也与逻辑表达式匹配,则这匹配是成功的,这资源将添加到
资源查询队列( findList)中。(安捷伦的 VISA 不支持匹配属性值。 )
这可选的属性逻辑表达式允许使用逻辑符号 AND ,OR,NOT 。相等( ==)和不等( !=)可以用与任何类型的属性
比较。另外的非等号比较的( >,<,>=,<=)只能用于数值类型的属性比较。仅仅全局属性才能参与属性表达式。
如果 findList 参数传入的是 VI_NULL ,则会自动调用 viClose 关闭查找到的资源队列。 findList 参数和 retcnt 参数
都是可选的,如果只需要第一个匹配到的设备并且不需要知道连接了多少设备这两个参数都可以传入 VI_NULL 。
所有返回的字符串都需要经过 viParseRsrc 和 viOpen 函数的验证,不是所有查询到的资源都可以通过和查询的。
参数
名称 方向 类型 描述
sesn IN ViSession 资源管理器。必须要被 viOpenDefaultRM 函数初始化。
expr IN ViString 表达要搜索的一个接口或者所有接口存在的设备。 (参照下面的格
式描述字符串表)
findList OUT ViPFindList 返回一个搜索到的句柄标识符, 这句柄可以作为 viFindNext 函数的
参数传入。如果为 VI_NULL ,自动动调用 viClose 关闭 findList。
retcnt OUT ViPUInt32 匹配到的设备数量。如果为 VI_NULL ,不返回找到的个数。
instrDesc
OUT ViRsrc 返回一个设备识别地址字符串,可以直接传给 viOpen 建立一个会
话。
expr 参数描述字符串说明:
接口 表达
GPIB GPIB[0-9]*::?*INSTR
VXI VXI?*INSTR
GPIB-VXI GPIB-VXI?*INSTR
GPIB 和 GPIB-VXI GPIB?*INSTR
All VXI ?*VXI[0-9]*::?*INSTR
ASRL ASRL[0-9]*::?*INSTR
All ?*INSTR
返回值 返回值为函数运行结果。
标识符 值 描述
VI_SUCCESS 0 找到资源。
VI_ERROR_INV_SESSION
VI_ERROR_INV_OBJECT
传递的对象无效。
VI_ERROR_NSUP_OPER 不支持该函数。
VI_ERROR_INV_EXPR 无效的搜索指定。
VI_ERROR_RSRC_NFOUND 没有找到设备。
viFindNext
原型
ViStatus viFindNext( ViFindList findList, ViPRsrc instrDesc);
描述 返回查找资源队列上的下一个资源。
参数 名称 方向 类型 描述
findList IN ViFindList 查找队列句柄。必须由 viFindRsrc 函数创建。
instrDesc OUT ViPRsrc 返回一个地址字符串。字符串可以通过调用 viOpen 函数建立一个
会话连接。
返回值 返回值为函数运行结果。
标识符 值 描述
VI_SUCCESS 0 找到资源。
VI_ERROR_INV_SESSION
VI_ERROR_INV_OBJECT
findList 不能标志正确的连接。
VI_ERROR_NSUP_OPER findList 不支持该函数。
VI_ERROR_RSRC_NFOUND 没找到资源。
viParseRsrc
原型
ViStatus viParseRsrc(ViSession sesn, ViRsrc rsrcName, ViPUInt16 intfType, ViPUInt16 intfNum);
描述 从语法上分析一个指向设备的资源字符串。这操作分析字符串的有效性。 viFindRsrc 函数返回的所有字符串都必
须在分析成功后才能调用 viOpen 函数。
返回的 intfType 和 intfNum 分别对应 VI_ATTR_INTF_TYPE 和 VI_ATTR_INTF_NUM 属性。这些值将与使用
viOpen 函数连接后使用 viGetAttribute 函数查询的值一样。
在 viOpen 函数中设置别名, viParesRsrc 函数也能识别。
rsrcName参数不区分大小写。
参数 名称 方向 类型 描述
sesn IN ViSession 默认资源管理器(必须经过 viOpenDefaultRM 函数初始化)。
rsrcName IN ViRsrc 资源独立的名称。
intfType OUT ViPUInt16 会话连接的接口类型。
intfNum OUT ViPUInt16 会话连接的板号。
返回值 返回值为函数运行结果。
标识符 值 描述
VI_SUCCESS 0 资源字符串是有效的。
VI_ERROR_ALLOC 内存不足。
VI_ERROR_INTF_NUM_NCONFIG 接口类型是有效的,但接口号是无效的。
VI_ERROR_INV_RSRC_NAME 无效的资源指示字符串。语法错误。
VI_ERROR_INV_SESSION
VI_ERROR_INV_OBJECT
sesn不能标志正确的连接。
VI_ERROR_LIBRARY_NFOUND 一个 VISA 必须库无法加载。
VI_ERROR_NSUP_OPER 给定的 sesn不支持该函数。 例如, 该函数仅仅支持默认资源
管理器的 sesn。
VI_ERROR_RSRC_NFOUND 位置信息不足。
viCl ear
原型
ViStatus viClear( ViSessionvi);
描述 清空设备,执行 IEEE 488.1 系统的清空操作。
如果连接方式是使用 VXI 总线,将清空所有连接设备;
如果连接方式是使用 GPIB 数据采集板,将只清空指定地址的设备;
如果连接方式是使用 TCPIP 套接字,需要把 VI_ATTR_IO_PROT 属性设置成 VI_PROT_4882_STRS ,将相当于
向设备发送 ”*CLS\n ”字符串,其他设置操作无效。
参数 名称 方向 类型 描述
vi
IN ViSession 对象标识符。
返回值 返回值为函数运行结果。
标识符 值 描述
VI_SUCCESS 0 函数执行成功。
VI_ERROR_BERR 总线错误。
VI_ERROR_CONN_LOST 连接丢失。
VI_ERROR_INV_SESSION
VI_ERROR_INV_OBJECT
vi 不能标志正确的连接。
VI_ERROR_INV_SETUP 设置无效,不能执行操作。
VI_ERROR_NCIC 非法控制器。
VI_ERROR_NLISTENERS 没有检测到听者。
VI_ERROR_NSUP_OPER vi 不支持此函数
VI_ERROR_RAW_RD_PROT_VIOL 传输时读协议被破坏。
VI_ERROR_RAW_WR_PROT_VIOL 传输时写协议被破坏。
VI_ERROR_RSRC_LOCKED vi 被独占。
VI_ERROR_TMO 操作超时。
viFlush
原型
ViStatus viFlush(ViSessionvi, ViUInt16 mask);
描述 手动刷新格式化 I/O 缓冲区。
参数
名称 方向 类型 描述
vi IN ViSession 对象标识符。
剩余21页未读,继续阅读
资源评论
信马不由缰丶
- 粉丝: 4
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功