原创 MPS-150101便携式USB数据采集器(MiniDAQ)使用及编程方式详解

2010-5-6 17:51 3857 0 分类: 测试测量

 


MPS-150101便携式USB数据采集器


 


(MiniDAQ)使用及编程介绍


 


一、MPS-150101简介


        在测量测试领域,数据采集器(或称信号采集器、电压采集器、数据采集卡等)是一种正在被普遍应用的新型设备。这类设备的基本功能就是将外部设备或传感器输出的电压信号进行模数转换,并通过标准的通讯接口(如RS232、USB、PCI等)将数据传输给计算机。用户或测试工程师通过在计算机端编写软件程序,对接收到的数据进行分析、显示、保存或反馈输出等处理工作,从而将难以感知的电压信号转换成较为直观的形式。通过数据采集和软件处理,不但可以对电压信号进行精确的量化,而且可以将快速变化的瞬时信号抓取下来进行充分的观察和分析。 数据采集设备作为一种新型的设备,已经开始慢慢普及。市场上有不少各类的数据采集板卡或数据采集模块,各有优势,用户可以根据各自不同的要求进行选择。


        MPS-150101就是一种这样的设备。MPS-150101不但可以将电压信号采集到计算机,而且具有触发、缓存等高级功能。与其他数据采集设备相比,MPS-150101具备如下优势:


        ·功能实用。MPS-150101内置200ksps的10bit模-数转换器,能够采集单通道±5V量程内的任意电压信号,并且内置了硬件触发,能够精确的捕捉信号波形。
        ·便携易用。MPS-150101体积小,集成度高,便于携带。采用通用的USB2.0接口与计算机连接,自带USB接口线,即插即用。也不需要另接电源,只要插上计算机再把信号线连好就可以进行采集了。
        ·编程简单。MPS-150101采用通用的DLL动态链接库作为驱动函数接口,支持绝大多数编程语言。只有唯一的驱动函数,易懂易用,不需要费力理解晦涩的编程说明。配套提供VC、VB、LabVIEW等常用语言的参考程序,并提供数款可直接运行的应用软件,能在极短的时间内就完成绝大多数的复杂应用。
        ·性价比高。作为一种普及型的数据采集设备,MPS-150101摒弃了不常用的扩展功能,至保留了基本的数据采集功能,因此MPS-150101具有无以伦比的价格优势。200元左右的价格使MPS-150101成为中端数据采集设备的首选。


        MPS-150101适用于中低端数据采集用户、信号处理仪器的研发和生产机构、各种工业现场和研究所、高校实验室等,同时也适用于刚刚入门数据采集和虚拟仪器领域的初学者学习使用。


点击看大图


MPS-150101 MiniDAQ


 


二、MPS-150101驱动接口函数


        MPS-150101是即插即用的USB设备,不需要额外的驱动插件,但在首次连接时需要安装驱动。MPS-150101配套提供有相应的驱动文件,在首次插入设备时,用户可按下述过程手动安装驱动(详细安装说明见说明书):


    1.       计算机提示“发现新硬件”,选择“从列表或指定位置安装(高级)”,并点击“下一步”。


    2.       选择“在搜索中包括这个位置”,并点击“浏览”选择MPS-150101驱动文件所在的文件夹,点击“下一步”。


    3.       等待驱动安装完成


<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

    安装好驱动后,就可以正常使用MPS-150101了。MPS-150101面向软件设计工程师的驱动函数封装在MPS-150101.dll中,编程时需先将该文件拷贝到软件工程目录下,并在程序中进行引用。


    MPS-150101.dll中只要唯一的驱动函数,其函数定义如下:


 


l         int __stdcall DAQ(int SampleRate, int SampleNumber, int TriggerModal, double TriggerVoltage, double TriggerTimeLimit, float *VoltageArray, int DeviceNumber)


    其中的参数分别为:SampleRate采样率;SampleNumber采集样点个数; TriggerModal触发模式; TriggerVoltage触发电;TriggerTimeLimit触发时限;VoltageArray指向采集缓存数组首地址的指;DeviceNumber当前操作所针对设备的序。函数返回值为带符号32位整形数据,其值可为-2-101,代表了函数的执行结果。


    编程时,只需在程序中对该函数作导出声明,即可在程序中像一般函数一样使用。只需要根据需要配置好函数的各个参数,执行函数后就能自动获得按设置参数所采集到的一组样点电压数据。


三、MPS-150101参考程序


1、VC参考程序代码


int TEST()


{


  HINSTANCE hDll;                  //Declare function in DLL


  hDll=LoadLibrary("MPS-150101.dll");


  if(NULL==hDll)


  {


       AfxMessageBox("Cann't find MPS-150101.dll");


       return 0;


  }


 


  typedef int( __stdcall *lpDAQ)(int SampleRate, int SampleNumber, int TriggerModal, double TriggerVoltage, double TriggerTimeLimit, float *VoltageArray, int DeviceNumber);


  lpDAQ DAQ=(lpDAQ)GetProcAddress(hDll,"DAQ");


  if(NULL==DAQ)


  {


       AfxMessageBox("Cann't find <DAQ> function");


  }


 


  int Status = 0;


  int DeviceNumber = 0;            //Device 0


  int SampleRate = 100000;         //SampleRate can be set from 1000 to 200000


  int SampleNumber = 1000;         //SampleNumber can be set from 1 to 1800


  int TriggerModal= 0;             //TriggerModal can be set to: 0-no trigger; 1-Triggered on rising edge; 2-Triggered on falling edge


  double TriggerVoltage = 0;       //TriggerVoltage can be set from -5V to +5V. If TriggerModal = 0, TriggerVoltage will be ignored


  double TriggerTimeLimit = 1;     //TriggerTimeLimit is set to limit triggering time.If TriggerModal = 0, TriggerTimeLimit will be ignored.


  float VoltageArray[1800] = {0};  //DataBuffer to hold voltage data


  float VoltageAverage = 0;


  int i = 0;


 


  while( Status >= 0 )


  {


       Status = DAQ(SampleRate,SampleNumber,TriggerModal,TriggerVoltage,TriggerTimeLimit,VoltageArray,DeviceNumber);


       switch(Status)


       {


            case 0:AfxMessageBox("Trigger timeout!");break;


            case -1:AfxMessageBox("Open device error! ");break;


            case -2:AfxMessageBox("Open driver files error!");break;


            case 1:


                {


                     VoltageAverage = 0;


                     for(i = 0; i < SampleNumber;i++)


                          VoltageAverage = VoltageAverage + VoltageArray;


                     VoltageAverage = VoltageAverage / SampleNumber;


                     //Could display "VoltageAverage" here


                }


            default:break;


       }


  }


  return Status;


}


2、VB参考程序代码



'Declare DLL Function
Private Declare Function DAQ Lib "MPS-150101.dll" (ByVal SampleRate As Long, ByVal SampleNumber As Long, ByVal TriggerModal As Long, ByVal TriggerVoltage As Double, ByVal TriggerTimeLimit As Double, ByRef VoltageArray As Single, ByVal DeviceNumber As Long) As Long


Dim Status As Integer
Dim DeviceNumber As Long
Dim SampleNumber As Long
Dim SampleRate As Long
Dim TriggerModal As Long
Dim TriggerVoltage As Double
Dim TriggerTimeLimit As Double
Dim VoltageArray(1800) As Single



Private Sub Form_Load() 'initialization


'Configure parameters
DeviceNumber = 0 'Device 0
SampleRate = 100000 'SampleRate can be set from 1000 to 200000
SampleNumber = 1000 'SampleNumber can be set from 1 to 1800
TriggerModal = 0 'TriggerModal can be set to: 0-no trigger; 1-Triggered on rising edge; 2-Triggered on falling edge
TriggerVoltage = 0 'TriggerVoltage can be set from -5V to +5V. If TriggerModal = 0, TriggerVoltage will be ignored
TriggerTimeLimit = 1 'TriggerTimeLimit is set to limit triggering time.If TriggerModal = 0, TriggerTimeLimit will be ignored.


'Test Device
Status = DAQ(SampleRate, SampleNumber, TriggerModal, TriggerVoltage, TriggerTimeLimit, VoltageArray(0), DeviceNumber)


If Status < 0 Then 'If Error Occurred
    Select Case Status
        Case 0: MsgBox "Trigger timeout!"
        Case -1: MsgBox "Open device error!"
            End
        Case -2: MsgBox "Open driver files error!"
            End
        Case Else
    End Select
End If


'Initialize Timer
Timer1.Interval = 1
Timer1.Enabled = True


'Initialize Graph
Picture1.Scale (0, -5)-(SampleNumber, 5) 'X scale is equal to "SampleNumber";Y scale is from -5V to 5V
Picture1.AutoRedraw = True


End Sub


Private Sub Timer1_Timer()


Dim i As Integer


'DAQ
Status = DAQ(SampleRate, SampleNumber, TriggerModal, TriggerVoltage, TriggerTimeLimit, VoltageArray(0), DeviceNumber)


If Status <= 0 Then 'If Error Occurred
    Select Case Status
        Case 0: MsgBox "Trigger timeout!"
        Case -1: MsgBox "Open device error!"
            End
        Case -2: MsgBox "Open driver files error!"
            End
        Case Else
    End Select
    Timer1.Enabled = False
Else
    Picture1.Cls
    For i = 0 To SampleNumber - 2   'Drow waveform
        Picture1.Line (i, VoltageArray(i))-(i + 1, VoltageArray(i)), vbBlack
    Next i
End If


End Sub


点击看大图


VB参考程序界面截图


3、LabVIEW参考程序源码


c849a75d-61b8-4cd7-8ee0-de9fda372345.jpg


基本采集参考程序源码截图,可见编程非常简单


 

点击看大图


LabVIEW参考程序用户界面截图


 


四、配套应用软件


1、虚拟示波器


    MPS-150101虚拟示波器可将输入信号进行采集,并以波形的形式显示出来。该软件可以调节波形图的X轴和Y轴显示范围,还可以设置触发参数,通过触发来稳定波形显示。此外,该软件还能自动分析波形的最大值、最小值、平均值、有效值、幅值、频率等,并可以显示波形的TTF频域图。该软件还可以将有代表性的波形图和相关数据截取下来,并导出为jpeg图像文件和txt数据文本文件。


点击看大图


使用MPS-150101 MiniDAQ采集正弦波效果截图


2、信号记录仪


    MPS-150101信号记录仪可对信号进行长期的在线监测,并能把信号实时记录到硬盘文件,以供后续分析。该软件启动后,每一个记录周期自动记录一个样点,样点的记录时刻和电压值被分别写入记录文件。记录周期可以是从0.1秒到10分钟内的可调时长,可根据实际需要设置。


点击看大图


MPS-150101信号记录仪软件截图


 

 五、结语


    MPS-150101具有实用、便携和性价比高等特点,与同类设备相比拥有巨大的优势。MPS-150101不但是测量测试业内人士的必备工具,也是初学者入门学习的首选。MPS-150101由Morphues Electronic推出,详细的介绍及资料下载可参看网页:http://www.mps-electronic.com.cn/ProductShow.asp?ID=115。相关咨询及订货可联系mail@electronic.com.cn。小批量订购也可直接到Morphues Electronic指定的淘宝网店http://shop34880090.taobao.com/在线购买。


    MPS-150101作为一种实用型的数据采集器,深受广大用户的欢迎和好评。本文只对MPS-150101的使用和编程做了简要的介绍,希望能够抛砖引玉,让更多的朋友分享使用经验。

文章评论0条评论)

登录后参与讨论
相关推荐阅读
blackeyes 2009-10-28 15:29
MPS-010601多功能USB数据采集卡介绍与测评(三)
 五、MPS-010601的软件编程   MPS-010601的特色之一是编程简单。MPS-010601提供了跨平台的DLL驱动函数,可支任何可以调用DLL的编程语言使用,不但包括VC、VB等,还包括...
blackeyes 2009-10-28 15:23
MPS-010601多功能USB数据采集卡介绍与测评(二)
 二、MPS-010601的信号输出功能   MPS-010601具有多达四路的信号输出端口,每路最高都可以达到80Ksps的输出刷新率,输出分辨率为12位,并且四路输出是独立和同步的。这些高端的配置...
blackeyes 2009-10-28 15:19
MPS-010601多功能USB数据采集卡介绍与测评(一)
    MPS-010601是一款新型的多功能USB数据采集卡。与传统的采集卡不同,MPS-010601不但具备八路信号采集通道,而且具备四路信号输出(DAC)、八路数字信号输入\输出(DIO)、两路...
blackeyes 2009-10-20 08:10
基于LABVIEW的虚拟示波器
这个程序来自于不知名前辈公开的"虚拟示波器2003"程序.我修改了他的驱动部分,使它能用于我们的USB数据采集卡(12位,MSP-010501).修改后效果相当好,很佩服当初编写这个程序的前辈,程序很...
blackeyes 2009-10-20 08:09
MSP虚拟示波器:(提供源代码下载)
http://space.ednchina.com/Upload/2008/9/25/2b7aebd7-afc3-4814-ae31-8ceff7ce55cf.rar" target=_blank&g...
广告
我要评论
0
0
广告
关闭 热点推荐上一条 /5 下一条