addr 输入 ViBuf 数据存储地址 width 输入 ViUInt16 数据长度
value 输入 ViBuf、ViUInt8、ViUInt16、ViUInt32、ViUInt64 存储数据值 3) 返回状态值:无
4) 描述:该操作将数据写入到addr参数表示的地址中。 5) 相关项:参见viPeek()。
6) 实现要求:数据类型viBuf对应viPoke(),viUInt8对应viPoke8(), viUInt16对应viPoke16(),viUInt32对应viPoke32(),viUInt64对应 viPoke64()。
4.4. viPeek(vi,addr,width,value)、viPeek8(vi,addr,value) viPeek16(vi,addr,value)、viPeek32(vi,addr,value) viPeek64(vi,addr,value) 1) 目标:读数据 2) 参数表:
参数名 输入/输出方向 数据类型 描述
vi 输入 ViSession 对话通道标识符(句柄) addr 输入 ViBuf 数据存储地址 width 输入 ViUInt16 数据长度
value 输出 ViBuf、ViUInt8、ViUInt16、ViUInt32、ViUInt64 存储数据值 3) 返回状态值:无
4) 描述:该操作从addr参数表示的地址中读取数据。 5) 相关项:参见viPoke()。
6) 实现要求:其中数据类型viBuf对应viPeek(),viPUInt8对应viPeek8(), viPUInt16对应viPeek16(),viPUInt32对应viPeek32(),viPUInt64对应 viPeek64()。
n 器件特定命令资源(VI_RSRC_DEV_CMD):
1. 资源概述:允许发送与接收命令,并取得命令请求与命令反应,在检查到协议 错误时产生一个协议错误信息。 2. 资源属性表及属性描述: 属性名 描述
VI_ATTR_HW_EN 硬件允许与否 VI_ATTR_TMO_UNIT 超时值单位 VI_ATTR_TMO_VALUE 超时值 VI_ATTR_PHYS_ADDR 器件地址
3. 器件特定命令资源定义的事件如下所示: 事件 说明
VI_EVENT_DEV_CMD 接收到命令或查询事件 4. 器件特定命令资源定义的操作如下: viSendCommand(vi,command,param)
viQueryRequest(vi,operationMode,command,param,len,response) viGenProtError(vi,protError)
4.1. viSendCommand(vi,command,param) 1) 目标:向器件发送命令 2) 参数表:
参数名 输入/输出方向 数据类型 描述
vi 输入 ViSession 对话通道标识符(句柄) command 输入 ViUInt32 命令列表 param 输入 ViAddr 参数值 3) 返回状态值: 完成代码:
VI_SUCCESS 命令发送完成 错误代码:
VI_ERROR_INV_SESSION vi不能标识正当对话通道 VI_ERROR_RSRC_LOCKED 存取锁定模式不支持特定操作 VI_ERROR_TMO 超时错误 VI_ERROR_BERR 总线错误
VI_ERROR_RAW_RD_PROT_VIOL读协议错误 VI_ERROR_RAW_WR_PROT_VIOL写协议错误 VI_ERROR_OUTP_PROT_VIOL 输出协议错误 VI_ERROR_INP_PROT_VIOL 输入协议错误
4) 描述:该操作向器件发送特定命令,命令包括:获取硬件版本信息、获取软件 版本信息、发送字串命令、发送长字串命令、发送扩展字串命令、发这GPIB命令及 发送接口缺省命令。
5) 相关项:参见viQueryRequest()。 6) 实现要求:无。
4.2. viQueryRequest(vi,operationMode,command,param,len,response)
1) 目标:请求查询并返回响应值 2) 参数表:
参数名 输入/输出方向 数据类型 描述
vi 输入 ViSession 对话通道标识符(句柄) operationMode 输入 ViUInt16 操作类型 command 输入 ViUInt32 命令列表 param 输入 ViAddr 参数值
len 输入/输出 ViUInt32 响应者数据长度 response 输出 ViAddr 命令响应 3) 返回状态值: 完成代码:
VI_SUCCESS 查询完成 错误代码:
VI_ERROR_INV_SESSION vi不能标识正当对话通道 VI_ERROR_RSRC_LOCKED 存取锁定模式不支持特定操作 VI_ERROR_CMD_TMO 命令发送超时错误 VI_ERROR_RESP_TMO 命令响应超时错误 VI_ERROR_BERR 总线错误
VI_ERROR_ABORT 传送时用户退出
VI_ERROR_RAW_RD_PROT_VIOL读协议错误 VI_ERROR_RAW_WR_PROT_VIOL写协议错误
VI_ERROR_OUTP_PROT_VIOL 输出协议错误 VI_ERROR_INP_PROT_VIOL 输入协议错误 VI_ERROR_NSUP_COMMAND 命令未收到
VI_ERROR_RESP_PENDING 前个响应正在登录
4) 描述:该操作可以向器件发送命令或接收上一个命令的响应。参数 operationMode表明了操作类型。
5) 相关项:参见viSendCommand()。 6) 实现要求:无。
4.3. viGenProtError(vi,protError) 1) 目标:产生一个协议错误 2) 参数表:
参数名 输入/输出方向 数据类型 描述
vi 输入 ViSession 对话通道标识符(句柄) protError 输入 ViUInt16 产生的协议错误 3) 返回状态值: 完成代码:
VI_SUCCESS 协议错误产生完成 错误代码:
VI_ERROR_INV_SESSION vi不能标识正当对话通道 VI_ERROR_NSUP_SERV_OP 从机功能不支持
4) 描述:该操作产生的协议错误包括:清除任一协议错误状态、前一个响应正在 登录引发的多个查询错误、命令未被识别、输入协议错误、输出协议错误、读协议 错误与写协议错误等。 5) 相关项:无。 6) 实现要求:无。
n CPU接口资源(VI_RSRC_CPU_INTF):
1. 资源概述:可实现对当地控制器的接口配置。 2. 资源属性表及属性描述: 属性名 描述
VI_ATTR_HW_INTR_LEVEL CPU板中断级 VI_ATTR_IO_BASE CPU I/O基地址
VI_ATTR_LOCAL_BUS_TMO 当地总线超时期间 VI_ATTR_MEM_BASE 内存基地址
VI_ATTR_MSTR_DMA_CHNL 主机DMA通道 VI_ATTR_SLAVE_DMA_CHNL 从机DMA通道
VI_ATTR_SYSRESET_RESET_PC SYSRESET是否会使当地控制器复位 VI_ATTR_LOCAL_BYTE_ORDER 接口控制器的字节顺序 3. CPU接口资源定义的事件如下所示:无 4. CPU接口资源定义的操作如下:无
3.3.4 VISA仪器控制组织器资源
VISA仪器控制组织器资源在资源模板的基础上,扩展了自己的属性、事件与操作, 实现多仪器控制资源的管理机制,使多个仪器合理地分配通信通道,进行多对话通 道操作。组织器所定义的资源即为VISA仪器控制组织器资源。
n VISA仪器控制组织器资源(VI_RSRC_VISA_IC_ORG): 1. 资源概述:为多仪器的控制资源提供存取能力。 2. 资源属性表及属性描述: 属性名 描述
VI_ATTR_ACC_MODE 操作模式 VI_ATTR_RESOURCES 资源名列表
3. VISA仪器控制组织器资源定义的事件如下所示:无 4. VISA仪器控制组织器资源定义的操作如下:
viGetRsrcSession(sesn,refName,accessMode,vi)
4.1. viGetRsrcSession(sesn,refName,accessMode,vi) 1) 目标:返回一特定VISA仪器控制组织器的资源对话通道 2) 参数表:
参数名 输入/输出方向 数据类型 描述
sesn 输入 ViSession 组织器对话通道标识符 refName 输入 ViRsrc 资源名
accessMode 输入 ViAccessMode 存取模式 vi 输出 ViSession 资源对话通道标识符 3) 返回状态值: 完成代码:
VI_SUCCESS 资源关联完成 错误代码:
VI_ERROR_INV_SESSION vi不能标识正当对话通道 VI_ERROR_RSRC_LOCKED 存取锁定模式不支持特定操作 VI_ERROR_ABORT 传送时用户退出
VI_ERROR_INV_REF_NAME 资源名不当
4) 描述:该操作用于VISA仪器控制组织器对话通道获取资源的存取能力。 5) 相关项:viAttachRsrc()、viDetachRsrc()。
6) 实现要求:viClose()将关闭所有由viGetRsrcSession()打开的资源通道 。
3.3.5 VISA特定接口仪器控制资源
在VISA资源模板的基础上,VISA特定接口仪器控制资源定义了仪器控制特有的属性 、事件与操作。在仪器控制资源中定义的功能是特定的仪器功能,每个控制与操作 功能都有明确的仪器对象。
VISA特定接口仪器控制资源中包括: n GPIB总线接口控制资源 n VXI总线器件配置资源 n VXI总线接口控制资源 n VXI总线零槽资源 n VXI总线系统中断资源 n VXI总线信号处理器资源 n VXI总线信号资源 n VXI总线中断资源 n VXI总线扩展接口资源
n 异步串行总线接口控制资源 下面分别对各个资源进行详尽描述。
n GPIB总线接口控制资源(VI_RSRC_GPIB_INTF):
1. 资源概述:对GPIB总线进行存取,实现GPIB器件的状态并行轮询及远程/当地控 制操作。
2. 资源属性表及属性描述: 属性名 描述
VI_ATTR_GPIB_ATN ATN线当前状态
VI_ATTR_GPIB_BUS_TIMING 接口资源握手延时值 VI_ATTR_GPIB_DATA GPIB数据线(D0~D7)状态 VI_ATTR_GPIB_DAV DAV线当前状态 VI_ATTR_GPIB_EOI EOI线当前状态
VI_ATTR_GPIB_GLOB_TLC_MODE 接口当前讲者/听者/控者模式 VI_ATTR_GPIB_HS488_CBL_LEN HS488电缆长度 VI_ATTR_GPIB_IFC IFC线当前状态
VI_ATTR_GPIB_LOCAL_PP 是否允许并行轮询 VI_ATTR_GPIB_NDAC NDAC线当前状态 VI_ATTR_GPIB_NRFD NRFD线当前状态 VI_ATTR_GPIB_REM REM线当前状态 VI_ATTR_GPIB_SRQ SRQ线当前状态 VI_ATTR_PHYS_ADDR 器件地址
VI_ATTR_SYS_CNTLR 是否置为系统控者 VI_ATTR_7_8_BIT_CMP 终止符有效位
VI_ATTR_SEND_END_ON 终止符是否插入EOI _TERMCHAR_EN
VI_ATTR_GPIB_IST 是否允许并行轮询
VI_ATTR_GPIB_SES_ADDR GPIB对话通道地址 VI_ATTR_GPIB_SES_STAT 32位状态变量
VI_ATTR_GPIB_TLC_MODE 对话通道当前讲者/听者/控制模式 VI_ATTR_PROTOCOL 协议
VI_ATTR_SEND_END 写操作最后一个字节是否插入EOI VI_ATTR_TERMCHAR 终止符
VI_ATTR_TERMCHAR_EN 终止符是否有效 VI_ATTR_TMO_UNIT 超时值单位 VI_ATTR_TMO 超时值
VI_ATTR_TRANSPORT 传送机制
3. GPIB总线接口控制资源定义的事件如下所示: 事件 说明
VI_EVENT_GPIB_REM GPIB REM线有效引发事件 VI_EVENT_GPIB_ATN GPIB ATN线有效引发事件 VI_EVENT_GPIB_TALK 对话通道置为讲者引发事件 VI_EVENT_GPIB_LISTEN 对话通道置为听者引发事件 VI_EVENT_GPIB_CIC 对话通道置为责任控者引发事件 VI_EVENT_GPIB_LOK 对话通道处于锁定状态