- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
以LabView为技术基础的RVO4000数字示波器二次开发应用
1 引言
LabVIEW(laboratory virtual instrument engineering workbench,实验室虚拟仪器工程平台)是美国NI公司(national instrument company)推出的一种基于g语言(graphics language,图形化编程语言)的虚拟仪器开发工具。rvo4000数字示波器是一种小巧、轻型、便携式的双通道示波器。它包含有数字存储器、频谱分析、李沙育图形、数据采集四大功能模块。相对于以往的数字存储器,其功能更加强劲,价格更加低廉,升级更加容易,应用范围更加广泛。本文将主要介绍在 LabVIEW开发环境中rvo4000双通道数据采集的实现。
2 二次开发实现
一般 i/o设备都带有dll驱动函数库以及相应的lib文件和.h头文件,rvo4000提供的rvo4000.dll、rvo4000.lib、 rvo4000.h文件供用户二次开发,而LabVIEW恰好提供了调用动态链接库的手段——clf节点(call library function,位于LabVIEW功能模板中的 advanced子模板中)。基于这种状况,使用clf节点便是笔者驱动此类设备的首选方法。
2.1 rvo4000.dll中函数通过clf节点的调用方法
(1) 函数说明
settriggermode:设置触发模式函数
函数入口:mode-触发模式参数
函数返回:
error:err_none-无错误
err_setsarate-设置触发模式出错
函数说明:此函数用于设置采样率的触发模式,当mode=autosampling采样时不判别是否触发;当mode=normalsampling采样时判别触发,当没有触发时,示波器将一直处于等待触发的状态直至触发采样才能结束。
(2) clf节点的配置步骤
● 在clf节点的右键菜单中选择“configure…”或直接双击节点,弹出clf节点配置对话框。点击“browse…”按钮找到动态链接库文件 rvo4000.dll,选定后,LabVIEW会自动装载选定的dll文件,并检测dll文件中所包含的函数。按“function name”框的下拉按钮可以看到dll中所有的函数。
●在“function name”下拉框中选择设置触发模式函数:settriggermode 。
●“calling conventions”指的是调用dll遵从的规范,有stdcall和c两个选项,若所选函数是windows api函数,则选用stdcall;否则选用c选项。
●设置函数返回参数类型:在“parameter”下拉框中选择 return type,同时在“type”下拉框中选择numeric,在随后出现的“data type”下拉框中选择类型,这里选unsigned 32-bit interger。
●设置函数输入参数:点击add a paramter after按钮,就可以添加一个新的输入参数。
下面分别是clf节点设置前和设置后的图标,如图1所示:
图1 clf节点图标
注意:settriggermode()的输入参数本来应为autosampling或normalsampling等, 但这里为1或2等,这是因为在rvo4000.h有定义:
#define autosampling 0x01
#define normalsampling 0x02
类似的处理在其他clf节点设置也用到。
2.2 rvo4000.dll中需要使用的主要函数
oscinit:初始化 rvo4000硬件和软件参数;
settriggermode:设置触发模式;
setvoltagediv: 设置模拟通道档位;
setvoltageoffset:设置模拟通道位移;
settriggersource: 设置触发源;
settriggerslope:设置触发沿;
settriggeroffset:设置触 发位置;
settriggerlevel:设置触发电平;
setcoupling:设置模拟通道耦合;
setmemdepth: 设置内存深度;
setsamplingstart:设置开始采样;
getsamplingend:取得 结束采样信号;
setsamplingstop:设置结束采样;
getoscdata:取得采样数据;
2.3 系统整体实现方案
(1) 首先设置好数字示波器的属性
参 数,如图2所示。这里需要通过clf节点来实现调用的函数包括有:初始化rvo4000硬件和软件参数、设置触发模式、设置采样率、设置模拟通道档位、设置模拟通道位移、设置触发源、设置触发沿、设置触发位置、设置触发电平、设置模拟通道耦合、设置内存深度。
图2 设置示波器的属性
(2) 接着启动数字示波器开始采样
并判断采样信号是否结束,如图3所示。这里需要通过clf节 点来实现调用的函数有:设置开始采样、取得结束采样信号。
图3 启动数字示波器开始采样
(3) 结束采样并取得采样数据,如图4所示。
图4 结束采样并取得采样数据
这里需要通过clf节点来实现调用的函数包括有:设置结束采样、取得采样数据。
(4) 双通道采样系统的前面板框图设计如图5所示(图5中只画出了单个波形发生器显示图)。
图5 采样系统前面板
3 结束语
一般看来,i/o设备厂商都会为自己的产品提供dll形式的驱动库给用户作开发应用,这种开发应用在我们实际应用会经常遇到。本文以rvo4000数字示波 器为实例主要讲述了在LabVIEW环境中调用动态链接库函数的方法以及二次开发实现方案,有一定的实际价值。