
基于LabVIEW的万用表设计.doc
20页LabVIEW 在数据采集与仪器控制中有着十分广泛的应用,本章将通过几个典型实例来介绍 LabVIEW 在数据采集与仪器控制领域的编程方法 10.1 虚拟万用表 万用表是一种电子测量工具,它能对电压、电流、电阻等进行度量它在现实中应用相当 广泛,是电子测试不可缺少的工具用 LabVIEW 中编写的万用表使用起来方便、灵活, 改变了传统观念上万用表的外形,增强了其测量功能这种方式现在越来越多地被人们应 用本节将以板卡作数据采集硬件进行编程,实现虚拟数字万用表 10.1.1 实例内容说明 板卡在工业中应用相当广泛,尤其近年来在数据采集行业中被人们认可它最大的好处是 安装方便,操作简单,编程容易本节中将利用 PCI8335 接口板卡作为数据采集卡,对信 号进行采集并处理,开发一款虚拟 DT9205 万用表 DT9205 型数字万用表是一个功能强大的工具本例中将以它为实物参考,用 LabVIEW 实 现一款虚拟的万用表,基本功能与 DT9205 一样,同时还增加了数据分析、在计算机上存 储数据等功能 1.板卡说明 PCI8335 接口板卡是一种基于 32bit PCI 总线的多功能数据采集卡,它可以应用于现场数据 采集、控制、小型实验和教学等多种场合。
它在硬件安装上也非常简单,使用时只需将接 口卡插入机内任何一个 PCI 总线插槽,并用螺丝固定,将信号电缆从机箱外部直接接入 它的详细功能参数如下: — 32 bit PCI 总线,即插即用 — 输入范围:0~10V ,-5~+5V — 分辨率:12 bit — 32 路单端/16 路差分模拟量输入 — 12 bit A/D 转换 — 4 路 12 bit D/A 输出 — 2 倍、10 倍、100 倍硬件增益选择 — 8 路 TTL 开入(其中 4 路可中断)、8 路 TTL 开出— A/D 单通道采样速率 100 KHz,N 个通道时,每一个通道的采样率为 100/N KHz — 3 路 8 bit 计数器输入,可级联为 1 路 24 bit 计数器 — A/D 工作方式为:软件触发、定时启动、FIFO 半满中断 — 8 KB FIFO — 自动通道切换和单通道设置 — 通过率:单通道 100 KHz — 超压范围:-12~+12V — 输入阻抗:10 MΩ — A/D 触发方式:定时 — 8 通道输入输出 — 提供 DLL 作为用户程序的接口 PCI8335 板卡的功能如图 10-1 所示。
图 10-1 PCI8335 板卡功能图 2.DT9205 万用表说明 DT9205 数字万用表具有多精度、多范围的优点它可以直接把测量得到的数据显示出来 ,并按要求保存它的具体参数如下: — 直流电压:200mV~1000V — 交流电压:200mV~750V — 直流电流:2mA~10A — 交流电流:2mA~20A — 电阻:200Ω~200MΩ — 电容:2nF~200μF — 二极管测试 — 导通蜂鸣— 数据保存 — 精度调节 — 工作指示灯 10.1.2 开发思路分析 在 LabVIEW 中开发虚拟仪器,必须先配置好硬件电路这里先介绍 PCI8335 板卡的安装 ,这是整个工作的前期准备,再从 PCI 数据采集开始详细讲解说明,最后阐述信号在计算 机中的分析、运算、显示等的编程 10.1.3 板卡开发过程 板卡开发过程就是以相应板卡为硬件进行编程的过程这里先用 PCI8335 板卡进行数据采 集,然后对其调试,并在 LabVIEW 中编程,完成一个虚拟万用表编程是本例的重点, 也是本例的难点,尤其是整个程序的组合编程,涉及许多数据的融合和控件的配合下面 分步进行介绍。
1.板卡安装 板卡的安装是整个工作的第一步,PCI8335 在硬件安装完成后还需要进行软件安装,软件 安装是非常重要的一个环节,它关系到采集板能否正常使用具体安装步骤如下: (1)检查硬件安装是否正确,然后通电正常启动计算机,在系统启动完成后,会自动检测 新安装的硬件,如图 10-2 所示 图 10-2 发现 PCI 硬件 (2)等到检测完毕后,弹出“ 找到新的硬件向导” 对话框,如图 10-3 所示 (3)单击“ 下一步” 按钮,进入硬件连接向导界面,如图 10-4 所示图 10-3 硬件安装向导 图 10-4 PCI 桥连接 (4)单击“ 下一步” 按钮,进入硬件类型选择界面,如图 10-5 所示 (5)单击“ 下一步” 按钮,进入驱动选择界面,如图 10-6 所示 图 10-5 硬件类型选择 图 10-6 选择驱动程序 (6)单击“ 从磁盘安装” 按钮,将出现选择驱动程序地址的对话框,如图 10-7 所示 图 10-7 选择驱动程序地址 (7)单击“ 浏览” 按钮,选择“PCI8335.inf” 所在的目录(光盘:\ZTPCI8KA) ,单击“ 确定”按 钮。
系统将会按要求自动安装驱动安装完成后重启计算机即可使用你也可以继续安装 第二块 PCI 卡 安装第二块 PCI8335 卡时,系统会自动检测安装,不再经过上述步骤,只是卡的索引值不 同索引值是使用 PCI 板卡时非常重要的参数,相同的 ISA 卡是靠地址拨号区分的,而相 同的 PCI 卡是靠索引值来区分的一般情况下,第一块安装的 PCI8335 卡的索引值为 0, 以后安装的 PCI8335 卡索引值自动依次加 1调用动态链接库(ZTPCI8KA.dll)中的 Open Device 函数,将 PCI 卡的索引值赋给此函数,即可操作相应的 PCI 卡 2.板卡测试 在板卡安装好后,必须进行测试,这样才能保证以后的正常使用测试是利用 PCI8335 数 据采集卡驱动光盘自带的测试程序进行的它一般位于光盘:\ZTPCI8KA\8335\ 测试程序\8 335test_vb\8335test.exe 中此程序给硬件测试带来方便,也给后面的工作提供保障下面 将对测试程序的使用方法进行讲解,测试程序的整体界面如图 10-8 所示图 10-8 测试界面 运行“PCI8335 数据采集卡测试程序”,从菜单栏中单击“ 选择板卡”命令,弹出“选择板 卡”对话框,如图 10-9 所示。
先输入所要操作的板卡的索引值,即可在程序的界面中对选 中的 PCI8335 卡进行测试若计算机中只安装了一块 PCI8335 卡,可略过这一步操作(本 程序默认对索引值为 0 的板卡进行测试) 设置完后,就可以进行各项测试操作此测试程序根据 PCI8335 的各种功能,分为以下几 个部分: (1)开关量测试 该部分程序既可测试开关量输出,也可以测试开关量输入,界面如图 10-10 所示在测试 界面的左上角“ 开关量测试” 功能块中,单击“ 输出测试” 后面的灯,可进行开关量的输出测 试这 8 个灯,从左至右依次对应着通道 1 至通道 8,8 个开关量输出通道单击某个灯, 其状态就会在亮灭之间切换,同时输出到对应的开关量输出通道,进行相应的输出通断状 态的切换 “输入状态”后面的 8 个灯,从左至右依次为通道 1 至通道 8,分别指示了开关量输入通道 的通断状态该功能是自动的,无须手动操作 (2)模拟量输出测试 此部分程序用于测试模拟量输出,界面如图 10-11 所示其中 4 个文本下拉框对应着 4 个 通道模拟量输出在某一文本框中输入的值会输出到对应的通道这几个文本下拉框的值 一般是固定的。
可以通过旁边的下拉按钮选择,也可以输入任意值 图 10-9 选择板卡 图 10-10 开关量测试 图 10-11 模拟 量输出测试 (3)模拟量输入测试 此部分程序用于模拟量输入测试,界面如图 10-12 所示,32 个文本框对应着 32 个通道的 模拟量输入单击“ 模拟量输入” 按钮,32 个模拟输入电压值就会通过相应的文本框显示出 来 在“采集方式”单选框中,可选择模拟信号采集方式 — 单路:用来对模拟量进行实时采集 — 单路滤波:用来对采集到的模拟量进行滤波处理,这也是程序默认方式 — 多路循环:用来对 32 路模拟信号通道同时采集它的采集速度较前两者快,多用于快 速变化量的测量过程测试中 在“显示设置”单选框中,可进行输入模拟量的显示设置 — 原码值(十六进制):文本框中显示模拟量的十六进制原码值(000~FFF ) — 0-10000mV:显示 0 到 10000mV 的单极性输入信号的电压值 — -5000~+5000mV :显示-5000mV 到+5000mV 的双极性输入信号的电压值。
以上设置都可在单击“ 模拟量输入” 按钮后进行动态地进行这样方便在系统测试过程中对 参数进行设置 (4)计数器测试 计数器测试主要是测试脉冲输入,对脉冲计数,如图 10-13 所示它可进行 PCI8335 的三 个计数器的测试,分为三组,分别对三个计数器进行测试在每组中的第一个文本框显示 计数器寄存器中的当前值,第二个文本框显示计数累加值单击“累加清零”按钮,将清空 第二列文本框中的值,重新进行累加计数 测试程序运行后,软件就自动读取计数器寄存器中的当前值,并进行累加,无须手动操作 图 10-12 模拟量输入测试 图 10-13 计数器测试 (5)中断测试 中断测试就是对采集卡的中断进行一定的测试它能对 PCI8335 采集卡上的三种中断进行 测试单击“ 打开中断总允许” 按钮,可打开 PCI8335 中断功能,其界面如图 10-14 所示 — “FIFO 半满中断” 区域:可对 FIFO 半满产生的中断进行测试单击“FIFO 中断测试”按钮 ,打开 FIFO 中断允许,并启动 A/D 转换。
当中断到来时,“中断次数” 文本框显示由于 FIF O 半满产生的中断次数,“ 中断个数” 文本框显示本次中断把 FIFO 中的数据读空,所读取的 数据个数 — “计数器中断”区域:对计数器产生的中断进行测试单击“计数器中断测试” 按钮,即打 开计数器中断允许中断次数” 文本框中显示计数中断的累计次数 — “开关量中断”区域:可对开关量中断进行测试单击“开关量中断测试” 按钮,打开开关 量中断允许中断次数” 文本框中显示开关量中断的累计次数 单击“关闭所有中断” 按钮,将关闭所有中断,禁止中断进入 图 10-14 中断测试 3.参数设置 在 PCI8335 数据采集板卡中,为了简化操作动态链接库(PCI8KA.dll)中几乎所有的函 数的参数均通过一个结构体(ZT_PCIBOARD )来传递该结构体及 PCI8000 的有关函数 说明如下:struct ZT_PCIBOARD{long lIndex; /* PCI 卡索引值,该值在安装时被系统分配*/ HANDLE hHandle; /* PCI 卡的操作句柄(只有涉及中断时才用)*/short nCh; /* 通道号*/long lData; /*输入输出数据变量*/long* plData; /* 输入输出数据指针*/long lCode; /*设备控制字,具体含义见函数说明*/}; 下面对各函数功能进行说明。
(1 )打开设备 函数 long APIENTRY OpenDeviceAmcc(ZT_PCIBOARD* bs) 功能 打开某一块 PCI8335 卡 入口有效参数 lIndex:PCI 卡索引值 出口返回参数 hHandle:PCI 卡的操作句柄(只有涉及中断时,返回才有意义) 返回值 0:打开设。
