设备介绍
应组内大佬要求特地国庆加大班,分享一下如何用LabVIEW控制示波器监控比记录数据。
LabVIEW 是NI旗下开发的软件,是为了跟他们公司的产品配套使用(让他们大卖!!!),确实好用,对于他们的产品来说直插USB,通过串口CMO3就能完美识别到,还能区分不同设备,确实好用,对研究生或者本科生、新手等实在太友好,无需写协议,即插即用,打了一波广告(没碴饭)。
话不多说,本次例程只针对示波器,后面会出针对NI 旗下的产品,接下来的产品是来自普源示波器的产品,RIGOL,型号是DS1102。为什么要使用这个型号,关键是便宜,大概2000-3000元左右,对学生档十分友好,关键端口齐全,有老朋友LAN、USB,可以使用多端口进行控制。同时支持多个信号耦合,信号的触发控制,采样率能达到1Gsal/s,相比泰克示波器只能价格亲民多了(RIGOL广告费什么时候结一下。。。)。
可以通过普源的命令集来实现控制,其命令集在普源官网上,上链接DS1000Z-Ex-普源精电科技-RIGOL TECHNOLOGIES, Co. LTDDS1000Z-Ex|https://www.rigol.com/products/detail/DS1000Z-Ex
案列实现与讲解
示波器数据定义
首先,对示波器数据进行定义,一般我采用BYTE类型就行。如下
采用此类型返回数据是16进制,共8位。要注意一开始返回的是数据描述头,在读取的时候要去掉。
在LabVIEW的定义如下:
运行一下代码可以看到下面结果:(注意要用16进制观看不然会看到乱编码)
可以看出这段数据总概,描述数据的长度为9位,波形数据长度为1200。
示波器数据处理
后面是要用的数据,前头描述数据要去掉,可以通过LabVIEW上的截取字符串函数去掉。
数据处理代码如下:
处理后的结果:
示波器数据转换
得出来的数据只是字符串,就算转化成字节类型,也与实测的电压值对不上。
实测为3V,转为后为127,如图:
所以要通过算法进行转化,采用计算公式如下
V=(Vhef-V0ff-Vref)*Vinc
Vhef为接收端电压值,Voff为示波器当前相对于垂直参考位置的垂直偏移,Vref为当前选中通道源 垂直参考位置,Vinc为道源 Y 方向上波形的步进值,单位与当前幅度单位一致。
并通过查询当前时基dt值,来创造新的波形函数,则可完成数据监控与记录。
代码实现:
处理后的结果
完整的代码
示波器数据记录
既然监测了,那肯定要记录,下面的例程不跟这相关,但是可以接过来。
记录可以采用NI一个TDM函数。只要把信号接到这个函数就可以轻松采集到数据。
函数TDM内部设置如下:
前面板
实物展示视频
(稍后传送,不知道CSDN要审核多久)
LabVIEW 控制示波器 实物实现
总结
此段例程可以自由选择存储文件路径,几个例程都是demo,要想开发多点,得继续丰富命令集,普源提供大量的命令集,可以继续霍霍,希望多搞点高级,如果有兴趣多多支持一下普源。他们的客服不错的,命令集开发文档一开始没找到,找他们客服要的。
、
后面的文件和普源的开发文档我都会发在我的gitb上,欢迎大伙们来指导和开发。