VISA常用函数

上传人:新**** 文档编号:34562359 上传时间:2021-10-21 格式:DOCX 页数:25 大小:168.06KB
收藏 版权申诉 举报 下载
VISA常用函数_第1页
第1页 / 共25页
VISA常用函数_第2页
第2页 / 共25页
VISA常用函数_第3页
第3页 / 共25页
资源描述:

《VISA常用函数》由会员分享,可在线阅读,更多相关《VISA常用函数(25页珍藏版)》请在装配图网上搜索。

1、函数viOpenDefaultRM原型 ViStatus viOpenDefaultRM ( ViSession sesn );描述这个函数用来初始化一个 VISA资源管理器,此函数必须要在其他任何 VISA函数之前调用。函数通过sesn参数返回一个独立的VISA资源管理器ID 。参数名称方向类型描述sesnOUTViSession返回一个独一无二的VISA资源管理器逻辑标识符返回值返回值为函数运行结果,如果成功sesn返回VISA资源管理器标识符,否则返回0标识符值描述VI_SUCCESS0VISA资源管理器初始化成功。VI_ERROR_ALLOC系统资源不足。VI_ERROR_INV_SE

2、TUP配置文件无效或者不存在。VI_ERROR_SYSTEM_ERRORVISA系统初始化失败。viOpen原型 ViStatus viOpen ( ViSession sesn, ViRsrc rsrcName , ViAccessMode accessMode, ViUInt32 timeout, ViSession vi);描述连接一个指定的设备,返回一个可用于调用其他功能的连接标识符。参数名称方向类型描述sesnINViSessionVISA资源管理器逻辑标识符。rsrcNameINViRsrc地址名称。accessModeINViAccessMode连接打开方式,可以是以下值:VI_

3、EXCLUSIVE_LOCK 独占方式打开;VI_LOAD_CONFIG更具外部配置文件打开;VI_NULL正常多访问打开。timeoutINViUInt32如果是以独占模式连接,该参数是一个绝对时间(单位ms),超时就返回一个错误。其他连接方式忽略此值。viOUTViSession返回打开连接逻辑标识符。返回值返回值为函数运行结果,如果成功vi返回设备连接标识符,否则返回 0标识符值描述VI_SUCCESS0连接成功。VI_SUCCESS_DEV_NPRESENT连接成功。但是指定的地址无响应。VI_WARN_CONFIG_NLOADED指定的地址不存在或者地址格式不正确。VI_ERROR_

4、ALLOC系统资源不足。VI_ERROR_INTF_NUM_NCONFIG指定的地址是有效的,但无法使用。VI_ERROR_INV_ACC_MODE非法的存取模式。VI_ERROR_INV_RSRC_NAME地址名称语法错误。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECT无效的vi。VI_ERROR_LIBRARY_NFOUNDVISA库加载不完全。VI_ERROR_NSUP_OPER资源管理器sesn不支持此函数。VI_ERROR_RSRC_BUSYsesn是有效的,但当前无法访问。VI_ERROR_RSRC_LOCKEDsesn被独占。VI_ERROR_RS

5、RC_NFOUND信息不足或者资源不存在。VI_ERROR_TMO0xBFFF0015操作超时。viClose原型描述参数返回值ViStatus viClose( ViSession vi);ViStatus viClose( ViEvent vi);名称方向类型描述viINViSessionViEventViFindList需要关闭的对象。关闭一个资源管理器或者设备连接,并释放内存。ViStatus viClose( ViFindList vi);返回值为函数运行结果标识符值描述VI_SUCCESS0关闭成功。VI_WARN_NULL_OBJECT要关闭的对象是空对象。VI_ERROR_CL

6、OSING_FAILEDvi不能标识正当对话通道。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECT无法释放与该对话通道相关联的内存数据结构。viFindRsrc原型ViStatus viFindRsrc( ViSession sesn, ViString expr, ViPFindList findList ,ViPUInt32 retcnt, ViRsrc instrDesc);描述该函数用于查找VISA系统里与指定接口相连的资源设备。该函数查找的与expr参数相匹配的有效资源设备。该函数成功完成将返回与exor相匹配的资源组中的第一个资源(instrDesc)

7、,还返回一个资源组中的个数(retnt)。另外还返回一个找到的队列句柄,可以同过调用viFindNext传入这个句柄来获得其他找到的资源。当这个句柄不需要时必须调用viClose关闭。expr参数不区分大小写,搜寻标准由两个部分组成:一个资源的正则表达式和一个可选的属性值逻辑表达式。这 个正则表达式是与已知的VISA资源管理器相匹配。如果这资源字符串与正则表达式相匹配,并且属性值也与逻辑表达式匹配,则这匹配是成功的,这资源将添加到资源查询队列(findList)中。(安捷伦的VISA不支持匹配属性值。)这可选的属性逻辑表达式允许使用逻辑符号AND , OR, NOT。相等(=)和不等(!=)可

8、以用与任何类型的属性比较。另外的非等号比较的(,=,=)只能用于数值类型的属性比较。仅仅全局属性才能参与属性表达式。如果findList参数传入的是 VI_NULL ,则会自动调用 viClose关闭查找到的资源队列。findList参数和retcnt参数 都是可选的,如果只需要第一个匹配到的设备并且不需要知道连接了多少设备这两个参数都可以传入VI_NULL o所有返回的字符串都需要经过 viParseRsrc和viOpen函数的验证,不是所有查询到的资源都可以通过和查询的。参数名称方向类型描述sesnINViSession资源管理器。必须要被 viOpenDefaultRM 函数初始化。ex

9、prINViString表达要搜索的一个接口或者所有接口存在的设备。(参照下面的格式描述字符串表)findListOUTViPFindList返回一个搜索到的句柄标识符,这句柄可以作为viFindNext函数的参数传入。如果为 VI_NULL ,自动动调用viClose关闭findList。retcntOUTViPUInt32匹配到的设备数量。如果为 VI_NULL ,不返回找到的个数。instrDescOUTViRsrc返回一个设备识别地址字符串,可以直接传给viOpen建立一个会话。返回值expr参数描述字符串说明:接口表达GPIBGPIB0-9*:?*INSTRVXIVXI?*INSTR

10、GPIB-VXIGPIB-VXI?*INSTRGPIB 和 GPIB-VXIGPIB?*INSTRAll VXI?*VXI0-9*:?*INSTRASRLASRL0-9*:?*INSTRAll?*INSTR返回值为函数运行结果标识符值描述VI_SUCCESS0找到资源。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECT传递的对象无效。VI_ERROR_NSUP_OPER不支持该函数。VI_ERROR_INV_EXPR无效的搜索指定。VI_ERROR_RSRC_NFOUND没有找到设备。viFindNext原型描述参数返回值名称方向类型描述findListINViFi

11、ndList查找队列句柄。必须由viFindRsrc函数创建。instrDescOUTViPRsrc返回一个地址字符串。字符串可以通过调用viOpen函数建立一个会话连接。返回查找资源队列上的下一个资源。ViStatus viFindNext( ViFindList findList , ViPRsrc instrDesc);返回值为函数运行结果标识符值描述VI_SUCCESS0找到资源。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTfindList不能标志正确的连接。VI_ERROR_NSUP_OPERfindList不支持该函数。VI_ERROR_RSRC_

12、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

13、函数查询的值一样。 在viOpen函数中设置别名,viParesRsrc函数也能识别。参数名称方向类型描述sesnINViSession默认资源管理器(必须经过 viOpenDefaultRM 函数初始化)。rsrcNameINViRsrc资源独立的名称。intfTypeOUTViPUInt16会话连接的接口类型。intfNumOUTViPUInt16会话连接的板号。rsrcName参数不区分大小写。返回值返回值为函数运行结果标识符值描述VI_SUCCESS0资源字符串是有效的。VI_ERROR_ALLOC内存不足。VI_ERROR_INTF_NUM_NCONFIG接口类型是有效的,但接口号是

14、无效的。VI_ERROR_INV_RSRC_NAME无效的资源指示字符串。语法错误。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTsesn不能标志正确的连接。VI_ERROR_LIBRARY_NFOUND一个VISA必须库无法加载。VI_ERROR_NSUP_OPER给定的sesn不支持该函数。例如,该函数仅仅支持默认资源 管理器的sesn。VI_ERROR_RSRC_NFOUND位置信息不足。viClear原型 ViStatus viClear( ViSession vi);描述清空设备,执行IEEE 488.1系统的清空操作。如果连接方式是使用 VXI总线,

15、将清空所有连接设备;如果连接方式是使用 GPIB数据采集板,将只清空指定地址的设备;如果连接方式是使用 TCPIP套接字,需要把 VI_ATTR_IO_PROT 属性设置成 VI_PROT_4882_STRS ,将相当于 向设备发送*CLSn字符串,其他设置操作无效。名称方向类型描述viINViSession对象标识符。返回值返回值为函数运行结果标识符值描述VI_SUCCESS0函数执行成功。VI_ERROR_BERR总线错误。VI_ERROR_CONN_LOST连接丢失。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTvi不能标志正确的连接。VI_ERROR_I

16、NV_SETUP设置无效,不能执行操作。VI_ERROR_NCIC非法控制器。VI_ERROR_NLISTENERS没有检测到听者。VI_ERROR_NSUP_OPERvi不支持此函数VI_ERROR_RAW_RD_PROT_VIOL传输时读协议被破坏。VI_ERROR_RAW_WR_PROT_VIOL传输时写协议被破坏。VI_ERROR_RSRC_LOCKEDvi被独占。VI_ERROR_TMO操作超时。viFlush原型 ViStatus viFlush( ViSession vi, ViUInt16 mask);描述手动刷新格式化I/O缓冲区。名称方向类型描述viINViSession对

17、象标识符。maskINViUInt16缓冲区类型。返回值返回值为函数运行结果标识符值描述VI_SUCCESS0函数执行成功。VI_ERROR_INV_MASK缓冲区类型设置错误VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTvi不能标志正确的连接。VI_ERROR_IOI/O错误VI_ERROR_RSRC_LOCKED存取锁定模式不支持特定操作VI_ERROR_TMO超时。viReadSTB原型 ViStatus viReadSTB( ViSession vi, ViPUInt16 status);描述读取一个服务请求状态。例如,在 IEEE488.2接口上,这消

18、息将轮训所有的连接设备。其他接口这消息只读取一个设备的服务请求状态。连接方式是使用 TCPIP套接字,如果 VI_ATTR_IO_PROT 属性的值为 VI_PROT_4882_STRS ,将向这设备发送 字符串*STB?n ”查询状态,其他设置则操作将无效。如果这个设备状态信息只有一个字节(BYTE)长度,则另外一个字节设为0。如果服务请求没有在规定时间周期内完成,将返回VI_ERROR_TMO 。名称方向类型描述viINViSession对象标识符。statusOUTViUInt16服务请求状态字节。返回值返回值为函数运行结果标识符值描述VI_SUCCESS0函数执行成功。VI_ERROR

19、_BERR总线错误。VI_ERROR_CONN_LOST连接丢失。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTvi不能标志正确的连接。VI_ERROR_INV_SETUP设置无效,不能执行操作。VI_ERROR_NCIC非法控制器。VI_ERROR_NLISTENERS没有检测到听者。VI_ERROR_NSUP_OPERvi不支持此函数VI_ERROR_RAW_RD_PROT_VIOL传输时读协议被破坏。VI_ERROR_RAW_WR_PROT_VIOL传输时写协议被破坏。VI_ERROR_RSRC_LOCKEDvi被独占。VI_ERROR_SRQ_NOCCU

20、RRED对象没有收到服务请求。VI_ERROR_TMO操作超时。viRead原型 ViStatus viRead( ViSession vi, ViBuf buf, ViUInt32 count ,ViUInt32 retCount);描述同步读取数据。读取的数据存储在buf中。当数据读取完毕函数才返回。任何时间都只能存在一个同步读取。遇到以下情况同步读取结束:收到END指示器读取到终止符读取的数据大小达到 count的值注意:必须设置读取终止符。参数名称方向类型描述viINViSession对象标识符。bufOUTViBuf返回数据存取地址。countINViUInt32指定读取长度。ret

21、CountOUTViUInt32实际读取长度。如果为 VI_NULL表示不关心该值。返回值返回值为函数运行结果标识符值描述VI_SUCCESS0成功读取,读取到 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_SESSIONV

22、I_ERROR_INV_OBJECTvi不能标志正确的连接。VI_ERROR_INV_SETUP设置无效,不能执行操作。VI_ERROR_IO未知I/O错误。VI_ERROR_NCIC非法控制器。VI_ERROR_NLISTENERS没有检测到听者。VI_ERROR_NSUP_OPERvi不支持此函数VI_ERROR_OUTP_PROT_VIOL设备记录一个输出协议错误。VI_ERROR_RAW_RD_PROT_VIOL传输时读协议被破坏。VI_ERROR_RAW_WR_PROT_VIOL传输时写协议被破坏。VI_ERROR_RSRC_LOCKEDvi被独占。VI_ERROR_TMO操作超时。

23、viReadAsync原型 ViStatus viReadAsync( ViSession vi, ViBuf buf, ViUInt32 count, ViJobld jobld);描述异步读取数据。读取的数据存储在buf中。当数据读取完毕函数才返回。当数据传输结束时触发一个I/O结束事件。该函数返回一个jobId表示该操作的标识符,可以使用viTerminate函数传入jobId终止或者等待I/O结束事件来确 定异步读操作完成。名称方向类型描述viINViSession对象标识符。bufOUTViBuf返回数据存取地址。countINViUInt32指定读取长度。jobIdOUTViJob

24、Id异步读操作工作标识符。如果为VI_NULL表示不关心该值。返回值返回值为函数运行结果标识符值描述VI_SUCCESS0异步读成功进入队列。VI_SUCCESS_SYNC读操作进行异步。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTvi不能标志正确的连接。VI_ERROR_QUEUE_ERROR队列错误。VI_ERROR_RSRC_LOCKEDvi被独占。viReadToFile原型描述参数返回值ViStatus viReadToFile ( ViSession vi, ViConstString ,名称方向类型描述viINViSession对象标识符。INV

25、iConstString写入的文件地址。countINViUInt32读取数据长度。retCountOUTViUInt32实际读取数据长度。如果为 VI_NULL表示不关心该值。同步读取数据并把数据保存到文件中。指定的文件只有只写权限。如果VI_ATTR_属性值为VI_FLASE ,数据写入将直接覆盖原来的数据,否则在文件内容尾部添加数据。仅当数 据读取和保存操作完成此函数才返回。此函数一般用于保存未处理的数据便于后期处理。VSIA使用ANSI C(标准C)文件操作。viReadToFile的模式通常是“wb或者“ab”。ViUInt32 count, ViUInt32 retCount);返

26、回值为函数运行结果标识符值描述VI_SUCCESS0操作成功。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_打开文件错误。可能是提供的无效路径或者没有访问权限。VI_ERROR_访问文件时发生错误。VI_ERROR_INV_SESSIONVI_ERROR_I

27、NV_OBJECTvi不能标志正确的连接。VI_ERROR_INV_SETUP设置无效,不能执行操作。VI_ERROR_IO未知I/O错误。VI_ERROR_NCIC非法控制器。VI_ERROR_NLISTENERS没有检测到听者。VI_ERROR_NSUP_OPERvi不支持此函数VI_ERROR_OUTP_PROT_VIOL设备报告输出协议错误。VI_ERROR_RAW_RD_PROT_VIOL传输时读协议被破坏。VI_ERROR_RAW_WR_PROT_VIOL传输时写协议被破坏。VI_ERROR_RSRC_LOCKEDvi被独占。VI_ERROR_TMO超时。viWrite原型 ViS

28、tatus viWrite( ViSession vi, ViBuf buf, ViUInt32 count, ViUInt32 retCount);描述 同步写入数据。写入的数据存储在 buf中。当数据写入完毕函数才返回。任何时间都只能存在一个同步写入。如果retCount的值为VI_NULL将不返回写入数据长度值。名称方向类型描述viINViSession对象标识符。bufINViBuf写入数据存放地址。countINViUInt32指定写入长度。retCountOUTViUInt32实际写入长度。如果为 VI_NULL表示不关心该值。返回值返回值为函数运行结果标识符值描述VI_SUCCE

29、SS0成功读取,读取到 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_SESSIONVI_ERROR_INV_OBJECTvi不能标志正确的连接。VI_ERROR_INV_SETUP设置无效,不能执行操作。VI_ERROR_

30、IO未知I/O错误。VI_ERROR_NCIC非法控制器。VI_ERROR_NLISTENERS没有检测到听者。VI_ERROR_NSUP_OPERvi不支持此函数VI_ERROR_OUTP_PROT_VIOL设备报告输出协议错误。VI_ERROR_RAW_RD_PROT_VIOL传输时读协议被破坏。VI_ERROR_RAW_WR_PROT_VIOL传输时写协议被破坏。VI_ERROR_RSRC_LOCKEDvi被独占。VI_ERROR_TMO操作超时。viWriteAsync原型描述参数返回值ViStatus viWriteAsync( ViSession vi, ViBuf buf, Vi

31、UInt32 count, ViJobld jobld);注意:在安捷伦设备中将调用同步写入。异步写入数据。需要写入的数据存放在buf中。当数据写入完毕函数才返回。当数据传输完整结束时会触发一个名称方向类型描述viINViSession对象标识符。bufINViBuf写入数据存取地址。countINViUInt32写入数据长度。jobIdOUTViJobId异步写入操作工作标识符。如果为VI_NULL表示不关心该值。I/O结束事件。该函数返回一个jobId表示该操作的标识符,可以使用viTerminate函数传入jobId终止或者等待I/O结束事件来确 定异步读操作完成。标识符值描述VI_SU

32、CCESS0异步写成功进入队列。VI_SUCCESS_SYNC写操作进行异步。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTvi不能标志正确的连接。VI_ERROR_QUEUE_ERROR队列错误。VI_ERROR_RSRC_LOCKEDvi被独占。返回值为函数运行结果viWriteFromFile原型ViStatus viWriteFromFile (ViSession vi, ViConstStringViUInt32 count, ViUInt32 retCount);参数名称方向类型描述viINViSession对象标识符。INViConstString

33、读取的文件地址。countINViUInt32写入数据长度。retCountOUTViUInt32实际写入长度。如果为 VI_NULL表示不关心该值。描述从一个指定的文件中获取数据并同步写入设备中。指定的是以只读模式打开读取数据(读取全部数据或者数据长度达到count的值)。读取到的数据都将写入到设备中。该函数仅当操作完成才结束返回。该操作通常是发送已经经过处理的数据。VISA以ANSI C(标准C)文件操作,所以 viWriteFromFile 模式一般都是“rb。如果retCount参数设为VI_NULL ,函数将不返回实际发送的数据长度,此操作常用于只需知道是否成功 的操作。返回值为函数

34、运行结果标识符值描述VI_SUCCESS0操作成功。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTvi不能标志正确的连接。VI_ERROR_NSUP_OPERvi不支持该函数。VI_ERROR_RSRC_LOCKEDvi被独占。VI_ERROR_TMO超时。VI_ERROR_RAW_RW_PROT_VIOL传输时读协议被破坏。VI_ERROR_RAW_RD_PROT_VIOL传输时写协议被破坏。VI_ERROR_OUTP_PROT_VIOL传输时设备报告输入协议错误。VI_ERROR_BERR总线错误。VI_ERROR_NCIC非法控制器。VI_ERROR_NL

35、ISTENERS没有检测到听者。VI_ERROR_IO未知I/O错误。VI_ERROR_打开文件错误。可能是提供的无效路径或者没有访问权限。VI_ERROR_访问文件时发生错误。VI_ERROR_CONN_LOST连接丢失。返回值viPrintf原型 ViStatus viPrintf( ViSession vi, ViString writeFmt , arg1, arg2,.);描述格式化字符串并发送格式化后的字符串给设备。(字符串格式化可以参照MFC里CString类中的Format函数。)不能在同一资源上同时使用viWrite和viPrintf函数。部分VSIA函数的参数是可变的(如v

36、iPrintf, viScanf和viQueryf ),导致VB不能调用。用户可以使用与这些函数 功能相当的函数代替。 writeFmt参数可以包含普通字符、一般格式化字符和特殊字符。普通字符(包括空格)书写方式与平常一样,不用做任何修改。特殊字符则要在该字符前面加一个反斜杠();格式化字符由百分号( )和操作标志组成,操作标志后面介绍。特殊字符参照下表:n发送一个ASCII码换行符,并且 END标志自动一起发送。r发送一个ASCII码回车。t发送一个ASCII码制表符。#发送一个指定的八进制数。发送一个ASCII码双引号。发送一个ASCII码反斜杠。格式化字符格式化说明符转换是根据后面的参数

37、值来进行改变和格式化的。格式化完成后直接发送给设备。格式化字符串语法如下:% arraySize , flags width . precision F | N | h | l typearraySize表示数组的大小,逗号表示数组修饰符。arraySize可以是常量,也可以用*代替。*代替需要增加一个参数表示arraySize的值。只支持type为d和f。flags表示规定输出格式,可用符号如下:符号作用无右对齐,左边填充0或空格。-左对齐,右边填充空格。+在数字前增加符号+或-。空格只对负数显示符号。#type = c, s, d, i, u时没有影响。type = o, x, X时,分别

38、在数值前增加0,0x,0X。type = e, E, f时,总是使用小数点。type = g, G时,除了数值为0外总是显示小数点。width表示控制显示数值的宽度,取值和含义如下:符号作用无按缺省宽度显示。n(n=1,2,3)宽度至少为n位,不够以空格填充。0n(n=1,2,3)宽度至少为n位,不够左边以0填充。*格式列表中,下一个参数还是width。precision用于控制小数点后面的位数,取值和含义如下:符号作用无按缺省精度显示。0type=d,i,o,u,x 时,没有影响。type=e,E,f时,不显示小数点。n(n=1,2,3)type=e,E,f时表示的最大小数位数。type=其

39、他,表示显示的最大宽度。*格式列表中,下一个参数还是precision。F|N | h| l表示指针是否是远指针或整数是否是长整数。F表示远指针,N表示近指针,h表示短整数或单精度浮点数,l表示长整数或双精度浮点数。符号作用d / i有符号10进制整数x小写字母无符号16进制f / F浮点数c单个字符o无符号8进制整数p指针的值type可用符号如下:符号作用u无符号10进制整数X大写字母无符号16进制e / E科学记数法表示浮点数s字符串%显示百分号g自动选择合适的表示法名称方向类型描述viINViSession对象标识符。writeFmtINViString格式化字符串。返回值返回值为函数运

40、行结果标识符值描述VI_SUCCESS0参数成功格式化。VI_ERROR_ALLOC内存不足。VI_ERROR_INV_FMTwriteFmt包含无效格式化说明符。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTvi不能标志正确的连接。VI_ERROR_IO未知I/O错误。VI_ERROR_NSUP_FMTwriteFmt有不支持的格式说明符。VI_ERROR_RSRC_LOCKEDvi被独占。VI_ERROR_TMO操作超时。viScanf原型 ViStatus viScanf( ViSession vi, ViString readFmt, argl, arg

41、2,.);描述这操作从设备读取一个字符串,然后格式化后保存值arg变量中。格式字符串包含说明符,空格字符和普通字符。VISA中参数不确定的函数(如 viPrintf , viScanf,和viQueryf )不能被VB调用。可以用功能相似的viVPrintfviVScanf,和 viVQueryf 函数代替。隐式分割符(空格符,制表符,换行符,回车符)是被忽略的,除非是 %c和口。除外所有普通字符应该与 从设备读取到的字符相匹配。格式字符串的语法格式如下:% , arraySize width F | N | h | l typearraySize表示返回数组的大小,逗号表示数组修饰符组大小保

42、存到一个参数中。只支持 type为和f,arraySize可以是常量,也可以用 #代替。#表示把返回的数width表示控制显示数值的宽度,取值和含义如下:符号作用无按缺省宽度显示。n(n=1,2,3.)表示输入数据所占列宽。F|N | h| l表示指针是否是远指针或整数是否是长整数。F表示远指针,N表示近指针,h表示短整数或单精度浮点数,l表示长整数或双精度浮点数。符号作用d / i有符号10进制整数x小写字母无符号16进制f / F浮点数c单个字符t以END结尾的字符串y二进制数组。type可用符号如下:符号作用u无符号10进制整数X大写字母无符号16进制e / E科学记数法表示浮点数s字符

43、串T以“n”结尾的字符串viScanf函数以END结束符结尾或者所有格式字符都匹配完成。如果碰到一个不匹配的字符该函数也将结束,所 以先在检测格式化字符串是否匹配前查找END符。还有在格式化完成后在缓冲区还残留一些数据的话,这些数据将留个下一个viScanf函数使用。名称方向类型描述viINViSession对象标识符。writeFmtINViString格式化字符串。返回值返回值为函数运行结果标识符值描述VI_SUCCESS0成功读到数据并且格式化到arg参数里。VI_ERROR_ALLOC内存不足。VI_ERROR_INV_FMTwriteFmt包含无效格式化说明符。VI_ERROR_IN

44、V_SESSIONVI_ERROR_INV_OBJECTvi不能标志正确的连接。VI_ERROR_IO未知I/O错误。VI_ERROR_NSUP_FMTwriteFmt有不支持的格式说明符。VI_ERROR_RSRC_LOCKEDvi被独占。VI_ERROR_TMO操作超时。viQueryf原型 ViStatus viQueryf( ViSession vi, ViString writeFmt , ViString readFmt , argl, arg2,.);描述这函数执行一个格式化写和进行一个读取操作请求。这函数提供一个机制“发送,然后读取” 一个典型的从设备获取数据的命令。读取是在发

45、送命令后立即执行的。该函数相当于viPrintf函数和viScanf函数结合起来。arg先匹配writeFmt ,然后在匹配readFmt。具体格式化格式 请参考viPrintf函数和viScanf函数的说明。该函数的返回值和 viPrintf , viScanf, viFlush 一样。VISA中参数不确定的函数(如 viPrintf , viScanf,和viQueryf )不能被VB调用。可以用功能相似的viVPrintfviVScanf,和 viVQueryf 函数代替。参数名称方向类型描述viINViSession对象标识符。writeFmtINViString写入格式化字符串。re

46、adFmtOUTViString读取格式化字符串。返回值为函数运行结果标识符值描述VI_SUCCESS0成功完成一个查询操作。VI_ERROR_ALLOC内存不足。VI_ERROR_INV_FMT0xBFFF003FwriteFmt包含无效格式化说明符。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTvi不能标志正确的连接。VI_ERROR_IO未知I/O错误。VI_ERROR_NSUP_FMT0xBFFF0041writeFmt有不支持的格式说明符。VI_ERROR_RSRC_LOCKEDvi被独占。VI_ERROR_TMO0xBFFF0015操作超时。返回值v

47、iSetAttribute原型ViStatus viSetAttribute( ViSession vi, ViAttr attribute , ViAttrStateattrState);ViStatus viSetAttribute( ViEvent vi, ViAttr attribute , ViAttrState attrState);ViStatus viSetAttribute( ViFindList vi, ViAttr attribute , ViAttrState attrState);描述修改指定对象的指定属性值。如果一个资源属性不能被修改,并且该资源是有效的和属性说明不

48、能指定为其他值,viSetAttribute将返回错误代码 VI_ERROR_NSUP_ATTR_STATE 。VI_W ARN_NSUP_ATTR_STATE 和VI_ERROR_NSUP_ATTR_STATE都指明传递的值不是有效值。除特殊情况外,一般者B返回错误代码 VI_ERROR_NSUP_ATTR_STATE ,如果返回完成代码 VI_WARN_NSUP_ATTR_STATE 表示不支持传递的值,但操作没有失败。参数名称方向类型描述viINViSessionViEventViFindList对象标识符。 事件标识符。 查找队列。attributeINViAttr要设置的资源属性。a

49、ttrStateOUTViAttrState要设置的值。返回值为函数运行结果返回值标识符值描述VI_SUCCESS0成功设置资源属性。VI_WARN_NSUP_A TTR_STATE设置的属性是有效的,但不支持此属性启用。(这请求将停止, 但可能会有性能改变。)VI_ERROR_A TTR_READONLY只读属性。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTvi不能标志正确的连接。VI_ERROR_NSUP_A TTR该资源中没有指定的属性。VI_ERROR_NSUP_A TTR_STATE传的值不是有效值,或者该属性不支持该定义的值。(该操作 将被阻止并返

50、回错误。)VI_ERROR_RSRC_LOCKEDvi被上锁。viGetAttribute原型 ViStatus viGetAttribute( ViSession vi, ViAttr attribute , void _VI_PTR attrState);ViStatus viGetAttribute( ViEvent vi, ViAttr attribute , void _VI_PTR attrState);ViStatus viGetAttribute( ViFindList vi, ViAttr attribute , void _VI_PTR attrState);描述返回指定对

51、象的指定属性值。名称方向类型描述viINViSessionViEventViFindList对象标识符。 事件标识符。 查找队列。attributeINViAttr要返回的资源属性。attrStateOUTvoid*要返回的属性值存放位置的指针。由于属性值类型长度不同,所以 必须要先明确属性类型来分配存放的内存空间。返回值返回值为函数运行结果标识符值描述VI_SUCCESS0成功获取资源属性。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTvi不能标志正确的连接。VI_ERROR_NSUP_A TTR该资源中没有指定的属性。viLock原型 ViStatus vi

52、Lock( ViSession vi, ViAccessMode lockType, ViUInt32 timeout, ViKeyId requestedKey, ViKeyId accessKey);注意:viLock函数不支持网络设备。|描述该函数用于给一个资源加锁,加锁后可以使其他会话无法访问被加锁的资源。其他会话在访问被加锁的资源的时 候会等待一段时间,如果等待结束资源还没解锁访问将返回一个错误。共享锁能被一个或者多个会话加载在一个资源上,构成嵌套锁。当 lockType 为 VI_EXCLUSIVE_LOCK 时,requestedKey 和 accessKey是无效的,应该设置为

53、 VI_NULL 。当lockType为VI_SHARED_LOCK 时,可以通过requestedKey参数指定一个密匙。 如果vi没有加锁,requestedKey 的值将会作为访问密匙。如果vi加锁了,并且requestedKey的值与访问密匙相同,则 vi取得访问权限,否则返回错误。同样的requestedKey的值也可以定义为 VI_NULL。如果vi没有加锁,将产生一个随机的唯一访问密匙通过accessKey返回。如果vi加锁了,则返回错误。viLock可以对同一会话多次上同一类型的锁,会有一个内部计数。调用一次 viLock计数+1,当计数大于0时调用 一次viUnLock计数-

54、1,当计数为0时调用viUnLock计数不变。当计数为 0时才为真正解锁。名称方向类型描述viINViSession对象标识符。lockTypeINViAccessMode指定加锁类型,可以是VI_EXCLUSIVE_LOCK (独占锁)或者VI_SHARED_LOCK (共享锁)。timeoutINViUInt32其他操作需要访问此被加锁的对象时等待timeout (ms)后未解锁就返回错误。除开数值外还可以设置为VI_TMO_IMMEDIATE(立即)和 VI_TMO_INFINITE (一直等待)。requestedKeyINViKeyId当 lockType 为 VI_EXCLUSIV

55、E_LOCK 时此值设为 VI_NULL 。当 lockType 为 VI_SHARED_LOCK 时,可以传入 VI_NULL 或者 密匙。详情看描述。accessKeyOUTViKeyId当 lockType 为 VI_EXCLUSIVE_LOCK 时此值设为 VI_NULL 。当lockType为VI_SHARED_LOCK 时,此参数返回一个唯一的密 匙,其他会话可以用该密匙与这个资源加共享锁。返回值返回值为函数运行结果标识符值描述VI_SUCCESS0成功以指定模式上锁。VI_SUCCESS_NESTED_EXCLUSIVE成功上独占锁。(多次上锁)VI_SUCCESS_NESTED_SHARED成功上共享锁。(多次上锁)VI_ERROR_INV_ACCESS_KEYrequestedKey不是改资源共享锁的密匙。VI_ERROR_INV_LOCK_TYPE指定的资源不支持上锁。VI_ERROR_INV_SESSIONVI_ERROR_INV_OBJECTvi不能标志正确的连接。VI_ERROR_RSRC_LOCKED已经被一个与该函数加锁类型不兼容的锁加锁了。VI_ERROR_TMO操作超时。viUnLock原型ViStatus viUnLock(

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!