⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3.虚拟仪器系统io接口软件.txt

📁 虚拟仪器软件的介绍
💻 TXT
📖 第 1 页 / 共 5 页
字号:
5) 相关项:参见viEnableEvent()、viWaitOnEvent。
6) 实现要求:该操作可用于模拟一个事件。
22、    viEventHandler(vi,eventType,context,userHandle)
1) 目标:事件服务过程原型
2) 参数表:
参数名  输入/输出方向   数据类型    描述
vi  输入    ViSession   对话通道标识符(句柄)
eventType   输入    ViEventType 事件标识符
context 输入    ViEvent 事件信息
userHandle  输入    ViAddr  事件句柄值
3) 返回状态值:
完成代码:
VI_SUCCESS  事件处理完成
错误代码:
VI_ERROR_ABORT  终止操作引发异常
VI_ERROR_RESET  终止所有操作,复位至缺省状态
VI_ERROR_FAIL   终止对话通道所有操作
VI_ERROR_KILL   终止对话通道所有操作,并自动关闭通道
4) 描述:该操作在通道接收到一个事件并处理该事件时被调用。
5) 相关项:无。
6) 实现要求:在多个句柄情况下,只有所有句柄运行都终止时,正常运行才终止



3.3.2 VISA资源管理器资源
VISA资源管理器(VI_RSRC_VISA_RM)是VISA各资源的中间调度器,其在VISA各子
系统元件在整个系统中配合工作中起着重要作用。资源管理器的基本功能包括:
1) 分配资源地址
2) 分配资源识别号(ID)
3) 进行操作调用
4) 进行事件管理
图3.3体现了VISA资源管理器在系统配置中的中间调度作用。
 
图3.3 VISA资源管理器与其它资源的关系示图
根据VISA规范,VISA资源管理器资源继承了资源模板定义的所有属性、事件与操作
,在资源模板基础上本身没有加以扩展自己的属性、事件与操作。但资源管理器资
源具有自己的语义,在系统资源中起着根资源的作用。

3.3.3 VISA仪器控制资源
在VISA资源模板的基础上,VISA仪器控制资源定义了仪器控制特有的属性、事件与
操作。在仪器控制资源中定义的功能是通用的仪器功能,它适用于各种仪器类型。

VISA仪器控制资源中包括:
n   写资源
n   读资源
n   格式化I/O资源
n   触发资源
n   状态/服务请求资源
n   清除资源
n   高级存取资源
n   低级存取资源
n   器件特定命令资源
n   CPU接口资源
VISA仪器控制各资源的关系如图3.4所示。
 
图3.4 VISA仪器控制资源关系概图
在VISA仪器控制资源中,CPU接口资源是相对独立的,它与其它仪器控制资源无内
部联系。这并不是说CPU接口资源不能与其它资源相互调用,但它不能调用其它仪
器控制资源的相关操作,也不能被其它仪器控制资源调用其相关操作。而如格式化
I/O资源的操作是依赖于写资源及读资源操作的,它们之间存在着内部关联性。同
样,触发资源、状态/服务请求资源及清除资源与器件特定命令资源,高级存取资
源与低级存取资源之间也存在着内部关联性。
n   写资源(VI_RSRC_WR):
1.  资源概述:控制器向器件传送任意数据块,器件可以将接收到的数据块解释为
消息、命令或二进制编码数据。
2.  资源属性表及属性描述:
属性名          描述
VI_ATTR_FDC_ACCESS_MODE FDC(高速数据通道)缓冲区存取模式
VI_ATTR_FDC1_SUPP   FDC版本1是否有效
VI_ATTR_FDC2_SUPP   FDC版本2是否有效
VI_ATTR_FDC_CHNL    FDC数据传送通道
VI_ATTR_FDC_GEN_SIGNAL_EN   是否允许通过FDC传送数据
VI_ATTR_FDC_MODE    FDC模式
VI_ATTR_FDC_USE_PAIR    一对或一个FDC有效
VI_ATTR_FDC_USE_VER FDC协议版本
VI_ATTR_INP_RDY_NOTIFY_EN   数据有效是否被通知
VI_ATTR_NRDY_ABORT_EN   器件不再接收数据时是否被通知
VI_ATTR_PHYS_ADDR   器件地址
VI_ATTR_REPEAT_ADDR_EN  是否使用重复地址
VI_ATTR_SEND_END_ON 终止符是否被确认
_TERMCHAR_EN    
VI_ATTR_SEND_END_ON 是否将END作为终止符
VI_ATTR_TERMCHAR    终止符
VI_ATTR_TMO_UNIT    超时值单位
VI_ATTR_TMO_VALUE   超时值
VI_ATTR_TRANSFER_MECH   传送机制(DMA或PIO)
VI_ATTR_WR_PROT 传送协议
VI_ATTR_CMDR_SERV   主从模式
VI_ATTR_ASRL_BAUD   波特率
VI_ATTR_ASRL_DATA_BITS  数据位
VI_ATTR_ASRL_PARITY 校验极性
VI_ATTR_ASRL_STOP_BITS  停止位
VI_ATTR_ASRL_FLOW_CNTRL 数据流控制状态
3.  写资源定义的事件如下所示:
事件    说明
VI_EVENT_IO_COMPLETION  异步I/O操作已完成
4.  写资源定义的操作如下:
viWrite(vi,buf,count,retCount)
viWriteAsync(vi,buf,count,jobId)
viWriteStatus(vi,jobId,jobStatus)
4.1.    viWrite(vi,buf,count,retCount)
1) 目标:将数据同步写入到器件中
2) 参数表:
参数名  输入/输出方向   数据类型    描述
vi  输入    ViSession   对话通道标识符(句柄)
buf 输入    ViBuf   数据块位置
count   输入    ViUInt32    写入的字节数
retCount    输出    ViPUInt32   实际传送字节数
3) 返回状态值:
完成代码:
VI_SUCCESS  同步写操作完成
VI_WARN_NRDY_ABORT  同步写操作退出,器件未准备好输入数据
错误代码:
VI_ERROR_INV_SESSION    vi不能标识正当对话通道
VI_ERROR_RSRC_LOCKED    存取锁定模式不支持特定操作
VI_ERROR_TMO    超时错误
VI_ERROR_RAW_WR_PROT    传送时写协议被破坏
_VIOL
VI_ERROR_RAW_RD_PROT    传送时读协议被破坏
_VIOL
VI_ERROR_OUTP_PROT_VIOL 传送时输出协议错误
VI_ERROR_INP_PROT_VIOL  传送时输入协议错误
VI_ERROR_BERR   传送时总线错误
VI_ERROR_ABORT  传送时用户退出
VI_ERROR_IN_PROGRESS    同步写已执行
VI_ERROR_INV_SETUP  设置错误,不能开始写操作
4) 描述:该操作将位于buf中的数据写入到器件中去,任一写资源通道只能登录
一个同步写操作。
5) 相关项:参见viWriteAsync()、viTerminate()、viWriteStatus()、
viRead()、viReadAsync()。
6) 实现要求:无。
4.2.    viWriteAsync(vi,buf,count,jobId)
1) 目标:将数据异步写入到器件中
2) 参数表:
参数名  输入/输出方向   数据类型    描述
vi  输入    ViSession   对话通道标识符(句柄)
buf 输入    ViBuf   数据块位置
count   输入    ViUInt32    写入的字节数
jobId   输出    ViPjobId    异步写操作作业标识符
3) 返回状态值:
完成代码:
VI_SUCCESS  异步写操作完成
错误代码:
VI_ERROR_INV_SESSION    vi不能标识正当对话通道
VI_ERROR_RSRC_LOCKED    存取锁定模式不支持特定操作
VI_ERROR_QUEUE_ERROR    不能进行写操作排队
4) 描述:该操作将位于buf中的数据异步写入到器件中去,任一写资源通道可以
登录多个异步写操作,进行排队处理。
5) 相关项:参见viWrite()、viTerminate()、viWriteStatus()、viRead
()、viReadAsync()。
6) 实现要求:无。
4.3.    viWriteStatus(vi,jobId,jobStatus)
1) 目标:获取写操作状态
2) 参数表:
参数名  输入/输出方向   数据类型    描述
vi  输入    ViSession   对话通道标识符(句柄)
jobId   输入    VijobId 写操作作业标识符
jobStatus   输出    ViPJobstatus    写操作状态
3) 返回状态值:
完成代码:
VI_SUCCESS  状态获取完成
错误代码:
VI_ERROR_INV_SESSION    vi不能标识正当对话通道
VI_ERROR_RSRC_LOCKED    存取锁定模式不支持特定操作
VI_ERROR_INV_JOBID  作业标识符不当
4) 描述:当操作为同步时,标识符唯一确定,为VI_SYNC;当操作为异步时,标
识符为操作的输出参数值。
5) 相关项:参见viWriteAsync()。
6) 实现要求:无。
n   读资源(VI_RSRC_RD):
1.  资源概述:控制器从器件读出任意数据块,控制器可以将接收到的数据块解释
为消息、命令或二进制编码数据。
2.  资源属性表及属性描述:
属性名          描述
VI_ATTR_FDC_ACCESS_MODE FDC(高速数据通道)缓冲区存取模式
VI_ATTR_FDC1_AVAIL  FDC版本1是否有效
VI_ATTR_FDC2_AVAIL  FDC版本2是否有效
VI_ATTR_FDC_CHNL    FDC数据传送通道
VI_ATTR_FDC_GEN_SIGNAL_EN   是否允许通过FDC传送数据
VI_ATTR_FDC_MODE    FDC模式
VI_ATTR_FDC_USE_PAIR    一对或一个FDC有效
VI_ATTR_FDC_USE_VER FDC协议版本
VI_ATTR_PHYS_ADDR   器件地址
VI_ATTR_7_8_BIT_CMP 终止符有效位
VI_ATTR_NRDY_ABORT_EN   器件不再输出数据时是否被通知
VI_ATTR_OUTP_RDY_NOTIFY_EN  数据有效是否被通知
VI_ATTR_RD_PROT 传送协议
VI_ATTR_REPEAT_ADDR_EN  是否使用重复地址
VI_ATTR_SUPPRESS_END_ON 终止符是否被禁止
VI_ATTR_TERMCHAR    终止符
VI_ATTR_TERMCHAR_EN 终止符是否被允许
VI_ATTR_TMO_UNIT    超时值单位
VI_ATTR_TMO_VALUE   超时值
VI_ATTR_TRANSFER_MECH   传送机制(DMA或PIO)
VI_ATTR_CMDR_SERV   主从模式
VI_ATTR_ASRL_BAUD   波特率
VI_ATTR_ASRL_DATA_BITS  数据位
VI_ATTR_ASRL_PARITY 校验极性
VI_ATTR_ASRL_STOP_BITS  停止位
VI_ATTR_ASRL_FLOW_CNTRL 数据流控制状态
3.  读资源定义的事件如下所示:
事件    说明
VI_EVENT_IO_COMPLETION  异步I/O操作已完成
4.  读资源定义的操作如下:
viRead(vi,buf,count,retCount)
viReadAsync(vi,buf,count,jobId)
viReadStatus(vi,jobId,jobStatus)
4.1.    viRead(vi,buf,count,retCount)
1) 目标:从器件同步读取数据
2) 参数表:
参数名  输入/输出方向   数据类型    描述
vi  输入    ViSession   对话通道标识符(句柄)
buf 输出    ViBuf   数据块位置
count   输入    ViUInt32    读出的字节数
retCount    输出    ViPUInt32   实际传送字节数
3) 返回状态值:
完成代码:
VI_SUCCESS  同步读数据完成
VI_SUCCESS_TERM_CHAR    特定终止符被读取
VI_SUCCESS_MAX_CNT  读取的字节数与count数相同
VI_WARN_NRDY_ABORT  传送退出,器件未准备好输出数据
错误代码:
VI_ERROR_INV_SESSION    vi不能标识正当对话通道
VI_ERROR_RSRC_LOCKED    存取锁定模式不支持特定操作
VI_ERROR_TMO    超时错误
VI_ERROR_RAW_WR_PROT    传送时写协议被破坏
_VIOL

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -