《虚拟仪器导论》PPT电子教案第3章 虚拟仪器软件标准_第1页
《虚拟仪器导论》PPT电子教案第3章 虚拟仪器软件标准_第2页
《虚拟仪器导论》PPT电子教案第3章 虚拟仪器软件标准_第3页
《虚拟仪器导论》PPT电子教案第3章 虚拟仪器软件标准_第4页
《虚拟仪器导论》PPT电子教案第3章 虚拟仪器软件标准_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、虚拟仪器虚拟仪器软件标准软件标准 instrument driver 第第3 3章章 虚拟仪器软件标准虚拟仪器软件标准 教学内容 可编程仪器标准命令可编程仪器标准命令(scpi) 虚拟仪器软件结构虚拟仪器软件结构(visa) 虚拟仪器驱动程序虚拟仪器驱动程序 instrument driver 3.1 可编程仪器标准命令(scpi) scpi:standard commands for programmable instruments 可编程仪器标准命令是为解决程控仪可编程仪器标准命令是为解决程控仪 器编程进一步标准化而制定的标准程序语器编程进一步标准化而制定的标准程序语 言,目前已经成为重要

2、的程控仪器软件标言,目前已经成为重要的程控仪器软件标 准之一。准之一。 scpi的产生背景 nieee488.1主要规定了仪器在电气上、机械上和功主要规定了仪器在电气上、机械上和功 能上相容性的要求,保证了系统部件间正确的电气、能上相容性的要求,保证了系统部件间正确的电气、 机械连接。机械连接。 nieee488.2使程控仪器器件消息的数据编码和格式、使程控仪器器件消息的数据编码和格式、 命令功能元素和编码句法、消息交换控制等方面实命令功能元素和编码句法、消息交换控制等方面实 现了标准化。它仅仅定义了程控仪器的少数公用命现了标准化。它仅仅定义了程控仪器的少数公用命 令语义,用于器件内部基本操作

3、控制,并未解决器令语义,用于器件内部基本操作控制,并未解决器 件消息标准化的问题,而器件消息的非标准化给编件消息标准化的问题,而器件消息的非标准化给编 程人员造成很大的困难。程人员造成很大的困难。 n为 了 解 决 这 个 问 题 ,为 了 解 决 这 个 问 题 , 1 9 9 0 年年 4 月 , 建 立 在月 , 建 立 在 ieee488.2基础上的可程控仪器标准命令基础上的可程控仪器标准命令scpi应应 运而生。运而生。 3.1.1 scpi的目标 nscpi的总目标是节省自动测试设备程序开发的总目标是节省自动测试设备程序开发 时间,保护设备制造者和使用者双方的硬件时间,保护设备制造

4、者和使用者双方的硬件 和软件投资,为仪器控制和数据利用提供广和软件投资,为仪器控制和数据利用提供广 泛兼容的编码环境。泛兼容的编码环境。 n这个广泛兼容的编码环境是指:这个广泛兼容的编码环境是指:scpi仪器程仪器程 控消息、响应消息、状态报告结构和数据格控消息、响应消息、状态报告结构和数据格 式均有标准化的定义,其使用只与仪器测试式均有标准化的定义,其使用只与仪器测试 功能及仪器性能、精度相关。而不考虑仪器功能及仪器性能、精度相关。而不考虑仪器 硬件组成、制造厂家、通信物理连接硬件环硬件组成、制造厂家、通信物理连接硬件环 境和测试程序编制环境。境和测试程序编制环境。 scpi的目标 (1)程

5、控命令面向测试功能(信号),而不是描述)程控命令面向测试功能(信号),而不是描述 仪器操作仪器操作.可从纵向、横向两个延伸关系上规定仪器可从纵向、横向两个延伸关系上规定仪器 兼容能力兼容能力 纵向编码兼容性:同一家族中的各代仪器的相同测试功能都能响应同一程控 横向编码兼容性:使用同一程控命令控制不同类别仪器的类似测试功能。 (2)减少类似测试功能的控制方法是保证编程相容)减少类似测试功能的控制方法是保证编程相容 性的关键性的关键. scpi基本原则:用同一scpi命令控制相同的仪器功能 (3)在与通信物理连接层硬件无关的高层次上定义)在与通信物理连接层硬件无关的高层次上定义 程控消息程控消息.

6、 scpi基于ieee-488.2(gpib总线标准),支持vxi、rs-232等总线。 scpi的目标 (4)与编程手段和程序语言无关,)与编程手段和程序语言无关,scpi用户用户 测试程序模块易于移植测试程序模块易于移植. 使用各种编程语言:c、delphi等都能把scpi命令传送给 scpi仪器 (5)具有可缩性,可适应不同规模的测量控)具有可缩性,可适应不同规模的测量控 制制 简单测量命令:提供容易、快速的scpi仪器控制 详细测量命令:提供传统仪器控制 (6)scpi的可扩性的可扩性. scpi允许用新命令扩充程控命令集。 3.1.2 scpi仪器模型 n针对针对scpi命令是描述测

7、试功能,而不是仪器命令是描述测试功能,而不是仪器 硬件组成、技术手段和前面板控制,硬件组成、技术手段和前面板控制,scpi提提 出了一个描述仪器测试功能的通用仪器模型,出了一个描述仪器测试功能的通用仪器模型, 如图如图: 信号路由选择 信号路由选择 测量功能 格式化 数据总线 触发 存储器 信号产生 格式化 数据总线 信号路由选择信号路由选择 用来控制信号输入通道与用来控制信号输入通道与 内部功能间的路径内部功能间的路径 格式化格式化 用来转换数据的表达式,当数据需要用来转换数据的表达式,当数据需要 向外部接口传送时,必须格式化向外部接口传送时,必须格式化 程控命令与仪器硬件无关 3.1.3

8、scpi命令句法 nscpi程控命令标准由程控命令标准由3部分内容组成:部分内容组成: n第一部分第一部分“语语法和样式法和样式”,描述,描述scpi命令的产命令的产 生规则以及基本的命令结构;生规则以及基本的命令结构; n第二部分第二部分“命令标记命令标记”,主要给出,主要给出scpi要求或要求或 可供选择的命令;可供选择的命令; n第三部分第三部分“数据交换格式数据交换格式”描述了一种数据采描述了一种数据采 集的标准表示方法,用于实现仪器与仪器之间集的标准表示方法,用于实现仪器与仪器之间 及其他应用场合中的数据交换。及其他应用场合中的数据交换。 1. 语法和样式 nscpi命令由程控题头、

9、程控参数和注释命令由程控题头、程控参数和注释3部分组成。部分组成。 scpi程控题头有两种形式,如图所示程控题头有两种形式,如图所示. 程控助记符 * ? : : : ? 短形助记符 长形助记符 数字后缀 短形助记符的规则 (1)如果关键词不多于)如果关键词不多于4个英语字母,则关键词就个英语字母,则关键词就 是短形助记符。是短形助记符。 (2)如果关键词多于)如果关键词多于4个英语字母,则通常保留关个英语字母,则通常保留关 键词的前键词的前4个字母作为短形助记符。但是在这种情个字母作为短形助记符。但是在这种情 况下,如果第况下,如果第4个字母是元音,则把这个元音去掉,个字母是元音,则把这个元

10、音去掉, 用用3个字母作短形助记符。个字母作短形助记符。 (3)所有长形、短形助记符均允许有数字后缀,以)所有长形、短形助记符均允许有数字后缀,以 区别类似结构的多种应用场合。例如使用不同触区别类似结构的多种应用场合。例如使用不同触 发源时可用不同的数字后缀区别它们。在使用数发源时可用不同的数字后缀区别它们。在使用数 字后缀时,短形助记符仍允许使用字后缀时,短形助记符仍允许使用4个不包括数字个不包括数字 的字母。的字母。 长形助记符的规则 n长形助记符与关键词的字母完全相同,只长形助记符与关键词的字母完全相同,只 不过长形助记符的书写格式有一定要求,不过长形助记符的书写格式有一定要求, 它被分

11、成两部分,第一部分用大写字母表它被分成两部分,第一部分用大写字母表 示短形助记符,第二部分用小写字母表示示短形助记符,第二部分用小写字母表示 关键词的其余部分。关键词的书写形式要关键词的其余部分。关键词的书写形式要 求不严格,可以与长形助记符完全相同,求不严格,可以与长形助记符完全相同, 也可以只把第一个字母大写。也可以只把第一个字母大写。 助记符形成实例 1. 语法和样式 scpi命令中除了命令中除了”:”之外,还使用的标点符号之外,还使用的标点符号 (1)“;”用来分隔同一命令字串中的两个用来分隔同一命令字串中的两个 命令命令 (2)“,”用于分隔命令参数用于分隔命令参数 (3)“ ”空格

12、用来分隔命令助记符和参数空格用来分隔命令助记符和参数 2. 命令标记 nscpi命令标记主要给出命令标记主要给出scpi要求的和可供要求的和可供 选择的命令。选择的命令。scpi命令分为两类:仪器公命令分为两类:仪器公 用命令和用命令和scpi主干命令。主干命令。scpi把把ieee- 488.2要求仪器必须执行的公用命令作为要求仪器必须执行的公用命令作为 scpi仪器公用命令,这些公用命令用于控仪器公用命令,这些公用命令用于控 制仪器的某些基本功能操作,其句法和语义制仪器的某些基本功能操作,其句法和语义 遵循遵循ieee-488.2的规定。的规定。 scpi仪器公用命令 scpi主干命令关键

13、字与基本功能 scpi主干命令关键字与基本功能 3. 数据交换格式 n数据交换格式主要描述了一种仪器与应用之间、应数据交换格式主要描述了一种仪器与应用之间、应 用与应用之间、仪器与仪器之间可以使用的数据集用与应用之间、仪器与仪器之间可以使用的数据集 的标准方法。的标准方法。scpi的交换格式语法与的交换格式语法与ieee-488.2 语法是兼容的,分为标准参数格式和数据交换格式语法是兼容的,分为标准参数格式和数据交换格式 两部分两部分。 n标准参数格式标准参数格式 :数值参数、离散参数、布尔参数、:数值参数、离散参数、布尔参数、 字符串参数字符串参数 n数据交换格式数据交换格式 :scpi的数

14、据交换格式主要描述了的数据交换格式主要描述了 一种数据结构,它用来作为仪器与仪器之间以及不一种数据结构,它用来作为仪器与仪器之间以及不 同应用场合情况下交换特征数据。同应用场合情况下交换特征数据。 3.1.4 常用scpi命令简介 1. 常用仪器公用命令常用仪器公用命令 (1)*idn?仪器标识查询命令。每台?仪器标识查询命令。每台vxi仪器都指仪器都指 定了一个仪器标识代码。如对定了一个仪器标识代码。如对hp1411b模块,该模块,该 命令实际返回标识码命令实际返回标识码hewlett packard,e1411b, 0,g.06.03。 (2)*rst复位命令。复位仪器到初始上电状态。在复

15、位命令。复位仪器到初始上电状态。在 仪器工作过程中,当发生程序出错或其他死机情况仪器工作过程中,当发生程序出错或其他死机情况 时,经常需要复位仪器。一般情况下先用命令时,经常需要复位仪器。一般情况下先用命令*cls 清仪器,然后再复位。清仪器,然后再复位。 常用仪器公用命令 (3)*tst?自检命令。该命令复位仪器,完成自检,?自检命令。该命令复位仪器,完成自检, 返回自检代码。返回返回自检代码。返回“0”表示仪器正常,否则仪器表示仪器正常,否则仪器 存在故障需维修。自检命令是确定仪器操作过程是存在故障需维修。自检命令是确定仪器操作过程是 否出现问题的一个有效手段。否出现问题的一个有效手段。

16、(4)*cls清除命令。中断正在执行的命令,清除在清除命令。中断正在执行的命令,清除在 命令缓冲区等待的命令。例如当数字表正在等待外命令缓冲区等待的命令。例如当数字表正在等待外 部触发信号时,此时输入的命令将在缓冲区等待,部触发信号时,此时输入的命令将在缓冲区等待, 直至触发信号接收到后才执行。命令直至触发信号接收到后才执行。命令*cls将清除在将清除在 缓冲区等待的命令。缓冲区等待的命令。 (5)*err?错误信息查询命令。当仪器操作过程中?错误信息查询命令。当仪器操作过程中 发生错误时,错误代码和解释信息储存在错误队列发生错误时,错误代码和解释信息储存在错误队列 中,用下述命令可以读出错误

17、代码和解释信息:中,用下述命令可以读出错误代码和解释信息: syst:err? 2. scpi主干命令 (1)measure:测量命令:测量命令 measure命令的一般形式为:命令的一般形式为: measure: ? , n完成交流电压测量的命令形式为:完成交流电压测量的命令形式为: measure:voltage:ac?, , (2)configure:配置命令 configure命令的一般形式为:命令的一般形式为: configure: , n该命令完成仪器配置,其参数意义及用法与该命令完成仪器配置,其参数意义及用法与 measure命令一致。例如,对于数字万用表,命令一致。例如,对于数

18、字万用表, 该命令用指定参数设置数字万用表。该命令用指定参数设置数字万用表。 (3)read?:读命令 read?命令的一般形式为:命令的一般形式为: read: ? , n读命令通常与读命令通常与configure命令配合使用。例如,对命令配合使用。例如,对 于数字万用表,该命令主要完成如下两个功能。于数字万用表,该命令主要完成如下两个功能。 置数字万用表在等待触发状态(执行置数字万用表在等待触发状态(执行initiate命命 令)。令)。 触发后,直接将读数送入输出缓冲区。触发后,直接将读数送入输出缓冲区。 (4)fetch?:取命令 fetch?命令的一般形式为:命令的一般形式为: fe

19、tch? ? , n该命令取出由最近的该命令取出由最近的initiate命令放在内存命令放在内存 中的读数值,并将这些读数送到输出缓冲区。中的读数值,并将这些读数送到输出缓冲区。 在送在送fetch?命令前,必须先执行命令前,必须先执行init命令,命令, 否则将产生错误。否则将产生错误。 3.1.5 scpi编程方法 初始化状态 复 位 设定触发方式 测 量 读数据到缓冲器 结果处理 到主机 *cls *rst configure: trigger: measure: calculate: scpiscpi的编程步骤的编程步骤 3.2 虚拟仪器软件结构(visa) n虚拟仪器软件结构虚拟仪器

20、软件结构 (virtual instrumentation software architecture, visa),是),是vxi即插即用即插即用 (vxi plug vistring buffer; viuint32 retcnt; vistatus status; status=viopendefaultrm( /打开与默认资源管理器的通话打开与默认资源管理器的通话 status=viopen(defaultrm,”gpib0:1:instr”, ,vi_ null,vi_null, / 打开与特定器件的通话打开与特定器件的通话 status=viwrite(vi,”*idn? n”,6

21、, /向特定器件写字符串向特定器件写字符串 status=viread(vi,buffer,80, /从特定器件读字符串从特定器件读字符串 status=viclose(vi); / 关闭与特定器件的通话关闭与特定器件的通话 status=viclose(defaultrm); /关闭与默认资源管理器的通话关闭与默认资源管理器的通话 3.3 虚拟仪器驱动程序 n仪器驱动程序是完成对某一特定仪器的控制与通信仪器驱动程序是完成对某一特定仪器的控制与通信 的软件程序。是连接仪器与用户界面的桥梁。的软件程序。是连接仪器与用户界面的桥梁。 n每个仪器模块均有自己的仪器驱动程序。仪器驱动每个仪器模块均有自

22、己的仪器驱动程序。仪器驱动 程序的实质是为用户提供了用于仪器操作的较抽象程序的实质是为用户提供了用于仪器操作的较抽象 的操作函数集。对于应用程序来说,它对仪器的操的操作函数集。对于应用程序来说,它对仪器的操 作是通过仪器驱动程序来实现的。对于应用程序设作是通过仪器驱动程序来实现的。对于应用程序设 计人员来说,一旦有了仪器驱动程序,在不是十计人员来说,一旦有了仪器驱动程序,在不是十 分了解仪器内部操作过程的情况下,也可以进行虚分了解仪器内部操作过程的情况下,也可以进行虚 拟仪器系统的设计工作。仪器驱动程序是连接上层拟仪器系统的设计工作。仪器驱动程序是连接上层 应用软件与底层输入应用软件与底层输入

23、/输出软件的纽带和桥梁,是输出软件的纽带和桥梁,是 虚拟仪器软件的核心,是系统设计的关键。虚拟仪器软件的核心,是系统设计的关键。 vpp与ivi nvxi即插即用即插即用(vxi plug visual basic联编的初始化函数原型为:联编的初始化函数原型为: declare function prefix_init lib prefix.dll ( byval r s r c n a m e a s s t r i n g , b y v a l i d _ q u e r y a s integer,byvail reset_instr as integer,vi as long ) a

24、s long 初始化函数的参数与返回值表 复位函数 复位函数用于将仪器置于默认状态。复位函数用于将仪器置于默认状态。 ansi c联编的复位函数原型为:联编的复位函数原型为: vistatus_vi_func prefix_reset ( visession vi ); visual basic联编的复位函数原型为:联编的复位函数原型为: declare function prefix_reset lib prefix.dll ( byval vi as long ) as long 复位函数的参数与返回值表:复位函数的参数与返回值表: 自检函数 自检函数实现仪器的自检并返回自检结果。自检函数

25、实现仪器的自检并返回自检结果。 ansi c联编的自检函数原型为:联编的自检函数原型为: vistatus_vi_func prefix_self_ test (visession vi,viint16 test_result,vichar_vi_far test_message); visual basic联编的自检函数原型为:联编的自检函数原型为: declare function prefix_self_test lib prefix.dll (byval vi as long,test_result long,byval test_merrage as string ) as long

26、 自检函数的参数与返回值表 错误查询函数 错误查询函数对仪器进行查询并返回与仪器相关错误查询函数对仪器进行查询并返回与仪器相关 的错误信息。的错误信息。 ansi c联编的错误查询函数原型为:联编的错误查询函数原型为: vistatus_vi_func prefix_error_query (visession vi,viint32 error_code,vichar_vi_far error_message); visual basic联编的错误查询函数原型为:联编的错误查询函数原型为: declare function prefix_error_query lib prefix.dll (

27、byval vi as long, error_code as long, byval error_merrage as string ) as long 错误查询函数的参数与返回值表 错误消息函数 错误消息函数将仪器驱动程序函数返回的错误代错误消息函数将仪器驱动程序函数返回的错误代 码转换为用户可读的字符串。码转换为用户可读的字符串。 ansi c联编的错误消息函数原型为:联编的错误消息函数原型为: vistatus_vi_func prefix_error_message (visession vi, vistatus status_code, vichar_vi_far message)

28、; visual basic联编的错误消息函数原型为:联编的错误消息函数原型为: declare function prefix_error_message lib prefix.dll (byval vi as long, byval status_code as long, byval merrage as string ) as long 错误消息函数的参数与返回值表 版本查询函数 版本查询函数返回仪器驱动程序和仪器固件的版本号。如版本查询函数返回仪器驱动程序和仪器固件的版本号。如 果仪器不支持固件版本查询,版本查询函数将在输出参数果仪器不支持固件版本查询,版本查询函数将在输出参数 in

29、str_rev中返回字符串中返回字符串“not available”,并返回警告代码并返回警告代码 vi_warn_nsup_rev_que。 ansi c联编的版本查询函数原型为:联编的版本查询函数原型为: vistatus_vi_func prefix_revision_query (visession vi,vichar_vi_far driver_rev, vichar_vi_far instr_rev); visual basic联编的版本查询函数原型为:联编的版本查询函数原型为: declare function prefix_revision_query lib prefix.d

30、ll (byval vi as long,byval driver_rev as string, byval instr_rev as string ) as long 版本查询函数的参数与返回值表 关闭函数 关闭函数终止与仪器的软件连接,并释放与该仪关闭函数终止与仪器的软件连接,并释放与该仪 器相关的系统资源。器相关的系统资源。 ansi c联编的关闭函数原型为:联编的关闭函数原型为: vistatus_vi_func prefix_close(visession vi); visual basic联编的版本查询函数原型为:联编的版本查询函数原型为: declare function pre

31、fix_close lib prefix.dll (byval vi as long) as long 关闭函数的参数与返回值表:关闭函数的参数与返回值表: 5. vpp仪器驱动程序的设计方法 (1)应确定需要研制的仪器模块的类型,确定其属于)应确定需要研制的仪器模块的类型,确定其属于vxi仪仪 器、器、gpib仪器还是串行接口仪器。仪器还是串行接口仪器。 (2)应确定仪器模块的应用目标及功能指标。)应确定仪器模块的应用目标及功能指标。 (3)在基本清楚了设计目标之后,应选择虚拟仪器系统的系)在基本清楚了设计目标之后,应选择虚拟仪器系统的系 统框架,确定模块设计的软、硬件环境。统框架,确定模块

32、设计的软、硬件环境。 (4)应选择一个可作参考的现有的)应选择一个可作参考的现有的vpp仪器驱动程序,尽量仪器驱动程序,尽量 在现有的仪器驱动程序基础上进行设计,不必要从头开始进在现有的仪器驱动程序基础上进行设计,不必要从头开始进 行重复劳动。行重复劳动。 (5)在对应参考模块的研究基础上,确定仪器驱动程序应包)在对应参考模块的研究基础上,确定仪器驱动程序应包 括的功能函数,也即仪器驱动程序的内部设计模型。括的功能函数,也即仪器驱动程序的内部设计模型。 (6)将所定义的所有功能函数用)将所定义的所有功能函数用c语言实现。语言实现。 (7)在图形化平台上运行调试仪器驱动程序。)在图形化平台上运行

33、调试仪器驱动程序。 (8)编写仪器驱动程序相关文件。)编写仪器驱动程序相关文件。 3.3.2 ivi仪器驱动器 n1998年美国年美国ni公司最先提出了一种新的基于状态公司最先提出了一种新的基于状态 管理的仪器驱动器体系结构,即可互换虚拟仪器驱管理的仪器驱动器体系结构,即可互换虚拟仪器驱 动器动器(interchangeable virtual instruments, ivi)模型和规范,并开发了基于虚拟仪器软件平台模型和规范,并开发了基于虚拟仪器软件平台 的的ivi驱动程序库。驱动程序库。 nivi是在是在vpp技术上发展而来的一项新技术,主要技术上发展而来的一项新技术,主要 研究仪器驱动

34、器的互换性,测试性能,开发灵活性研究仪器驱动器的互换性,测试性能,开发灵活性 及测试品质保证,其特有的状态管理结构,可以不及测试品质保证,其特有的状态管理结构,可以不 重新优化设计硬件系统,在现有测试系统的基础上,重新优化设计硬件系统,在现有测试系统的基础上, 从测试系统软件结构出发,消除测试冗余,提高测从测试系统软件结构出发,消除测试冗余,提高测 试速度。试速度。 1. ivi的技术特点 1)通过仪器的可互换性,节省测试系统的开发费用通过仪器的可互换性,节省测试系统的开发费用 2)通过状态缓冲,改善测试性能)通过状态缓冲,改善测试性能 在在ivi属性模型中,驱动器能够自动地对仪器的属性模型中,驱动器能够自动地对仪器的 当前状态进行缓冲。当前状态进行缓冲。 3)通过仿真,使测试开发更容易、更经济)通过仿真,使测试开发更容易、更经济 利用利用ivi仪器驱动器的仿真功能,用户可以在仪仪器驱动器的仿真功能,用户可以在仪 器还不能用的条件下,输入所需参数来仿真特定的器还不能用的条件下,输入

温馨提示

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

评论

0/150

提交评论