VISA常用函数.docx

上传人:b****0 文档编号:9087667 上传时间:2023-05-17 格式:DOCX 页数:65 大小:135.11KB
下载 相关 举报
VISA常用函数.docx_第1页
第1页 / 共65页
VISA常用函数.docx_第2页
第2页 / 共65页
VISA常用函数.docx_第3页
第3页 / 共65页
VISA常用函数.docx_第4页
第4页 / 共65页
VISA常用函数.docx_第5页
第5页 / 共65页
VISA常用函数.docx_第6页
第6页 / 共65页
VISA常用函数.docx_第7页
第7页 / 共65页
VISA常用函数.docx_第8页
第8页 / 共65页
VISA常用函数.docx_第9页
第9页 / 共65页
VISA常用函数.docx_第10页
第10页 / 共65页
VISA常用函数.docx_第11页
第11页 / 共65页
VISA常用函数.docx_第12页
第12页 / 共65页
VISA常用函数.docx_第13页
第13页 / 共65页
VISA常用函数.docx_第14页
第14页 / 共65页
VISA常用函数.docx_第15页
第15页 / 共65页
VISA常用函数.docx_第16页
第16页 / 共65页
VISA常用函数.docx_第17页
第17页 / 共65页
VISA常用函数.docx_第18页
第18页 / 共65页
VISA常用函数.docx_第19页
第19页 / 共65页
VISA常用函数.docx_第20页
第20页 / 共65页
亲,该文档总共65页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

VISA常用函数.docx

《VISA常用函数.docx》由会员分享,可在线阅读,更多相关《VISA常用函数.docx(65页珍藏版)》请在冰点文库上搜索。

VISA常用函数.docx

VISA常用函数

VISA常用函数

函数

viOpenDefaultRM

原型

ViStatusviOpenDefaultRM(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

原型

ViStatusviOpen(ViSessionsesn,ViRsrcrsrcName,ViAccessModeaccessMode,ViUInt32timeout,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

返回打开连接逻辑标识符。

参数

名称

方向

类型

描述

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

位置信息不足。

viClear

原型

ViStatusviClear(ViSessionvi);

描述

清空设备,执行IEEE488.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

原型

ViStatusviFlush(ViSessionvi,ViUInt16mask);

描述

手动刷新格式化I/O缓冲区。

参数

名称

方向

类型

描述

vi

IN

ViSession

对象标识符。

mask

IN

ViUInt16

缓冲区类型。

返回值

返回值为函数运行结果。

标识符

描述

VI_SUCCESS

0

函数执行成功。

VI_ERROR_INV_MASK

缓冲区类型设置错误

VI_ERROR_INV_SESSION

VI_ERROR_INV_OBJECT

vi不能标志正确的连接。

VI_ERROR_IO

I/O错误

VI_ERROR_RSRC_LOCKED

存取锁定模式不支持特定操作

VI_ERROR_TMO

超时。

viReadSTB

原型

ViStatusviReadSTB(ViSessionvi,ViPUInt16status);

描述

读取一个服务请求状态。

例如,在IEEE488.2接口上,这消息将轮训所有的连接设备。

其他接口这消息只读取一个设备的服务请求状态。

连接方式是使用TCPIP套接字,如果VI_ATTR_IO_PROT属性的值为VI_PROT_4882_STRS,将向这设备发送字符串”*STB?

\n”查询状态,其他设置则操作将无效。

如果这个设备状态信息只有一个字节(BYTE)长度,则另外一个字节设为0。

如果服务请求没有在规定时间周期内完成,将返回VI_ERROR_TMO。

参数

名称

方向

类型

描述

vi

IN

ViSession

对象标识符。

status

OUT

ViUInt16

服务请求状态字节。

返回值

返回值为函数运行结果。

标识符

描述

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_SRQ_NOCCURRED

对象没有收到服务请求。

VI_ERROR_TMO

操作超时。

viRead

原型

ViStatusviRead(ViSessionvi,ViBufbuf,ViUInt32count,ViUInt32retCount);

描述

同步读取数据。

读取的数据存储在buf中。

当数据读取完毕函数才返回。

任何时间都只能存在一个同步读取。

遇到以下情况同步读取结束:

收到END指示器

读取到终止符

读取的数据大小达到count的值

注意:

必须设置读取终止符。

参数

名称

方向

类型

描述

vi

IN

ViSession

对象标识符。

buf

OUT

ViBuf

返回数据存取地址。

count

IN

ViUInt32

指定读取长度。

retCount

OUT

ViUInt32

实际读取长度。

如果为VI_NULL表示不关心该值。

返回值

返回值为函数运行结果。

标识符

描述

VI_SUCCESS

0

成功读取,读取到END指示器结束。

VI_SUCCESS_MAX_CNT

成功读取,已经达到最大长度count。

VI_SUCCESS_TERM_CHAR

成功读取,读取到特定终止符。

VI_ERROR_ASRL_FRAMING

构架错误。

VI_ERROR_ASRL_OVERRUN

溢出错误。

VI_ERROR_ASRL_PARITY

同步错误。

VI_ERROR_BERR

总线错误。

VI_ERROR_CONN_LOST

连接丢失。

VI_ERROR_INV_SESSION

VI_ERROR_INV_OBJECT

vi不能标志正确的连接。

VI_ERROR_INV_SETUP

设置无效,不能执行操作。

VI_ERROR_IO

未知I/O错误。

VI_ERROR_NCIC

非法控制器。

VI_ERROR_NLISTENERS

没有检测到听者。

VI_ERROR_NSUP_OPER

vi不支持此函数

VI_ERROR_OUTP_PROT_VIOL

设备记录一个输出协议错误。

VI_ERROR_RAW

RD_PROT_VIOL

传输时读协议被破坏。

VI_ERROR_RAW_WR_PROT_VIOL

传输时写协议被破坏。

VI_ERROR_RSRC_LOCKED

vi被独占。

VI_ERROR_TMO

操作超时。

viReadAsync

原型

ViStatusviReadAsync(ViSessionvi,ViBufbuf,ViUInt32count,ViJobIdjobId);

描述

异步读取数据。

读取的数据存储在buf中。

当数据读取完毕函数才返回。

当数据传输结束时触发一个I/O结束事件。

该函数返回一个jobId表示该操作的标识符,可以使用viTerminate函数传入jobId终止或者等待I/O结束事件来确定异步读操作完成。

参数

名称

方向

类型

描述

vi

IN

ViSession

对象标识符。

buf

OUT

ViBuf

返回数据存取地址。

count

IN

ViUInt32

指定读取长度。

jobId

OUT

ViJobId

异步读操作工作标识符。

如果为VI_NULL表示不关心该值。

返回值

返回值为函数运行结果。

标识符

描述

I_SUCCESS

0

异步读成功进入队列。

VI_SUCCESS_SYNC

读操作进行异步。

VI_ERROR_INV_SESSION

VI_ERROR_INV_OBJECT

vi不能标志正确的连接。

VI_ERROR_QUEUE_ERROR

队列错误。

VI_ERROR_RSRC_LOCKED

vi被独占。

viReadToFile

原型

ViStatusviReadToFile(ViSessionvi,ViConstStringfileName,

ViUInt32count,ViUInt32retCount);

描述

同步读取数据并把数据保存到文件中。

fileName指定的文件只有只写权限。

如果VI_ATTR_FILE_APPEND_EN属性值为VI_FLASE,数据写入将直接覆盖原来的数据,否则在文件内容尾部添加数据。

仅当数据读取和保存操作完成此函数才返回。

此函数一般用于保存未处理的数据便于后期处理。

VSIA使用ANSIC(标准C)文件操作。

viReadToFile的模式通常是”wb”或者”ab”。

参数

名称

方向

类型

描述

vi

IN

ViSession

对象标识符。

fileName

IN

ViConstString

写入的文件地址。

count

IN

ViUInt32

读取数据长度。

retCount

OUT

ViUInt32

实际读取数据长度。

如果为VI_NULL表示不关心该值。

返回值

返回值为函数运行结果。

标识符

描述

VI_SUCCESS

0

操作成功。

VI_SUCCESS_MAX_CNT

读取的数据长度达到了count的值。

VI_SUCCESS_TERM_CHAR

读取到指定的终止符号。

VI_ERROR_ASRL_FRAMING

格式错误。

VI_ERROR_ASRL_OVERRUN

溢出错误。

VI_ERROR_ASRL_PARITY

同步错误。

VI_ERROR_BERR

总线错误。

VI_ERROR_CONN_LOST

连接丢失。

VI_ERROR_FILE_ACCESS

打开文件错误。

可能是提供的无效路径或者没有访问权限。

VI_ERROR_FILE_IO

访问文件时发生错误。

VI_ERROR_INV_SESSION

VI_ERROR_INV_OBJECT

vi不能标志正确的连接。

VI_ERROR_INV_SETUP

设置无效,不能执行操作。

VI_ERROR_IO

未知I/O错误。

VI_ERROR_NCIC

非法控制器。

VI_ERROR_NLISTENERS

没有检测到听者。

VI_ERROR_NSUP_OPER

vi不支持此函数

VI_ERROR_OUTP_PROT_VIOL

设备报告输出协议错误。

VI_ERROR_RAW_RD_PROT_VIOL

传输时读协议被破坏。

VI_ERROR_RAW_WR_PROT_V

OL

传输时写协议被破坏。

VI_ERROR_RSRC_LOCKED

vi被独占。

VI_ERROR_TMO

超时。

viWrite

原型

ViStatusviWrite(ViSessionvi,ViBufbuf,ViUInt32count,ViUInt32retCount);

描述

同步写入数据。

写入的数据存储在buf中。

当数据写入完毕函数才返回。

任何时间都只能存在一个同步写入。

如果retCount的值为VI_NULL将不返回写入数据长度值。

参数

名称

方向

类型

描述

vi

IN

ViSession

对象标识符。

buf

IN

ViBuf

写入数据存放地址。

count

IN

ViUInt32

指定写入长度。

retCount

OUT

ViUInt32

实际写入长度。

如果为VI_NULL表示不关心该值。

返回值

返回值为函数运行结果。

标识符

描述

VI_SUCCESS

0

成功读取,读取到END指示器结束。

VI_SUCCESS_MAX_CNT

成功读取,已经达到最大长度count。

VI_SUCCESS_TERM_CHAR

成功读取,读取到特定终止符。

VI_ERROR_ASRL_FRAMING

格式错误。

VI_ERROR_ASRL_OVERRUN

溢出错误。

VI_ERROR_ASRL_PARITY

同步错误。

VI_ERROR_BERR

总线错误。

VI_ERROR_CONN_LOST

连接丢失。

VI_ERROR_INV_SESSION

VI_ERROR_INV_OBJECT

vi不能标志正确的连接。

VI_ERROR_INV_SETUP

设置无效,不能执行操作。

VI_ERROR_IO

未知I/O错误。

VI_ERROR_NCIC

非法控制器。

VI_ERROR_NLISTENERS

没有检测到听者。

VI_ERROR_NSUP_OPER

vi不支持此函数

VI_ERROR_OUTP_PROT_VIOL

设备报告输出协议错误。

VI_ERROR_RAW_RD_PROT_VIOL

传输时读协议被破坏。

VI_ERROR_RAW_WR_PROT_VIOL

传输时写协议被破坏。

VI_ERROR_RSRC_LOCKED

vi被独占。

VI_ERROR_TMO

操作超时。

viWriteAsync

原型

ViStatusviWriteAsync(ViSessionvi,ViBufbuf,ViUInt32count,ViJobIdjobId);

注意:

在安捷伦设备中将调用同步写入。

描述

异步写入数据。

需要写入的数据存放在buf中。

当数据写入完毕函数才返回。

当数据传输完整结束时会触发一个I/O结束事件。

该函数返回一个jobId表示该操作的标识符,可以使用viTerminate函数传入jobId终止或者等待I/O结束事件来确定异步读操作完成。

参数

名称

方向

类型

描述

vi

IN

ViSession

对象标识符。

buf

IN

ViBuf

写入数据存取地址。

count

IN

ViUInt32

写入数据长度。

jobId

OUT

ViJobId

异步写入操作工作标识符。

如果为VI_NULL表示不关心该值。

返回值

返回值为函数运行结果。

标识符

描述

VI_SUCCESS

0

异步写成功进入队列。

VI_SUCCESS_SYNC

写操作进行异步。

VI_ERROR_INV_SESSION

VI_ERROR_INV_OBJECT

vi不能标志正确的连接。

VI_ERROR_QUEUE_ERROR

队列错误。

VI_ERROR_RSRC_LOCKED

vi被独占。

viWriteFromFile

原型

ViStatusviWriteFromFile(ViSessionvi,ViConstStringfileName,

ViUInt32count,ViUInt32retCount);

描述

从一个指定的文件中获取数据并同步写入设备中。

指定的fileName是以只读模式打开读取数据(读取全部数据或者数据长度达到count的值)。

读取到的数据都将写入到设备中。

该函数仅当操作完成才结束返回。

该操作通常是发送已经经过处理的数据。

VISA以ANSIC(标准C)文件操作,所以viWriteFromFile模式一般都是”rb”。

如果retCount参数设为VI_NULL,函数将不返回实际发送的数据长度,此操作常用于只需知道是否成功的操作。

参数

名称

方向

类型

描述

vi

IN

ViSession

对象标识符。

fileName

IN

ViConstString

读取的文件地址。

count

IN

ViUInt32

写入数据长度。

retCount

OUT

ViUInt32

实际写入长度。

如果为VI_NULL表示不关心该值。

返回值

返回值为函数运行结果。

标识符

描述

VI_SUCCESS

0

操作成功。

VI_ERROR_INV_SESSION

VI_ERROR_INV_OBJECT

vi不能标志正确的连接。

VI_ERROR_NSUP_OPER

vi不支持该函数。

VI_ERROR_RSRC_LOCKED

vi被独占。

VI_ERROR_TMO

超时。

V

_ERROR_RAW_RW_PROT_VIOL

传输时读协议被破坏。

VI_ERROR_RAW_RD_PROT_VIOL

传输时写协议被破坏。

VI_ERROR_OUTP_PROT_VIOL

传输时设备报告输入协议错误。

VI_ERROR_BERR

总线错误。

VI_ERROR_NCIC

非法控制器。

VI_ERROR_NLISTENERS

没有检测到听者。

VI_ERROR_IO

未知I/O错误。

VI_ERROR_FILE_ACCESS

打开文件错误。

可能是提供的无效路径或者没有访问权限。

VI_ERROR_FILE_IO

访问文件时发生错误。

VI_ERROR_CONN_LOST

连接丢失。

viPrintf

原型

ViStatusviPrintf(ViSessionvi,ViStringwriteFmt,arg1,arg2,...);

描述

格式化字符串并发送格式化后的字符串给设备。

(字符串格式化可以参照MFC里CString类中的Format函数。

不能在同一资源上同时使用viWrite和viPrintf函数。

部分VSIA函数的参数是可变的(如viPrintf,viScanf和viQueryf),导致VB不能调用。

用户可以使用与这些函数功能相当的函数代替。

writeFmt参数可以包含普通字符、一般格式化字符和特殊字符。

普通字符(包括空格)书写方式与平常一样,不用做任何修改。

特殊字符则要在该字符前面加一个反斜杠(\);格式化字符由百分号(%)和操作标志组成,操作标志后面介绍。

特殊字符

参照下表:

\n

发送一个ASCII码换行符,并且END标志自动一起发送。

\r

发送一个ASCII码回车。

\t

发送一个ASCII码制表符。

\###

发送一个指定的八进制数。

\”

发送一个ASCII码双引号。

\\

发送一个ASCII码反斜杠。

格式化字符

格式化说明符转换是根据后面的参数值来进行改变和格式化的。

格式化完成后直接发送给设备。

格式化字符串语法如下:

%[arraySize,][flags][width][.precision][F|N|h|l]type

arraySize表示数组的大小,逗号表示数组修饰符。

arraySize可以是常量,也可以用*代替。

*代替需要增加一个参数表示arraySize的值。

只支持type为d和f。

flags

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2