小弟菜鸟,想用VB编个界面通过调用数据采集卡的动态连接库函数来进行数据采集,不知道具体如何操作,望高手相助!
动态连接库NETAD. DLL
函数一览:
(1)OnLink_Net函数 
函数形式:int WINAPI OnLink_Net(int m_port,int outtime,int Net_Num, char *Net_addr[ ]) 说明:该函数用于连接网络采集设备,取得连接设备数和设备IP地址,对网络采集设备操作时,应首先执行该函数。 
(2)OnClose_Net函数
 函数形式:void WINAPI OnClose_Net(void) 说明:该函数用于关闭网络采集连接的所有设备,在结束网络采集设备操作时,应执行该函数关闭设备。 
(3)OnStart_Net函数 
函数形式:void WINAPI OnStart_Net(int TY,float FS,BYTE SCH, BYTE ECH,BYTE GN,int TR,BYTE Kb,int Bn) 说明:该函数用于单或多通道多点采集的初始化(对连接的所有设备),在数据采集时应先执行此函数。 
(4)OnStop_Net函数
 函数形式:void WINAPI OnStop_Net(int TY) 说明:该函数用于停止网络数据采集(对连接的所有设备)。
 (5)OnReadH_Net函数
 函数形式:int WINAPI OnReadH_Net(short int *addata[ ],long len) 说明:该函数用于对连接的所有设备多点连续(单通道或多通道)数据采集(高速),此函数与OnStart_Net连用(TY为1),可连续多次调用,读取大量数据。 
(6)OnReadL_Net函数 
函数形式:int WINAPI OnReadL_Net(short int *addata[ ],long len) 说明:该函数用于对连接的所有设备多点连续(单通道或多通道)数据采集(低速),此函数与OnStart_Net连用(TY为0),可连续多次调用,读取大量数据。 

解决方案 »

  1.   

    (4)OnStop_Net函数
     函数形式:void WINAPI OnStop_Net(int TY) 说明:该函数用于停止网络数据采集(对连接的所有设备)。
    vb中建一个BAS模块文件Declare Function OnStop_Net Lib "NETAD. DLL" () As long
      

  2.   

    其他的几个DLL函数,原理也差不多,最好找个VB的SAMPLE范例,一般开发包都有几种语言调用例子的
      

  3.   

    非常感谢“xiaoyao961”!我找到一个该采集卡函数调用例子,不过是在C环境下调用的,不知道高手能否照葫芦画瓢修改成在VB环境下调用的程序呢?小弟急用,还望不吝赐教,80分答谢~
    例子如下:
    //NetDemo.cpp
    #include "stdafx.h"
    #include <stdio.h>
    #include <string.h>
    #include <conio.h>
    #include <math.h>
    #include "netad.h"
    int main(int argc, char* argv[])
    {
    int i,j,k,n,ch,Ret,Num,DataN,Data,CHn,Dn;
    BYTE   KB;
    int KN,BN,DataLeng;
    float  Fsample;
    char *IP_Addr[10];
    short int *addat[10];
    for(i=0;i<10;i++){
      addat[i]=(short int *)malloc(sizeof(short int)*100000);
      IP_Addr[i]=(char *)malloc(sizeof(char)*20);
    }
    printf("\nPlease input connect numbers");
    printf("\nCon_Num=");
    _getch();
    scanf("%d",&Num);
    Ret=OnLink_Net(3000,60,Num,IP_Addr);                //连接网络设备
    if(Ret==0){
      printf("无设备连接!\n");
      return 0;
    }
    else{
       for(i=1;i<=Ret;i++){
          printf("IP address %d: %s\n",i,IP_Addr[i]);
       }
    }
    //开始采集
        CHn=4;               //采集通道数
        Fsample=5000;   //单通道采样频率
        DataN = 0;
     //计算每包上传数据数
        Dn=CHn*Fsample*0.1;
        for(i=0;i<6;i++){ 
            n=32*pow(2,i);
            if(Dn<=n){
                KB=i;
                KN=n/2;
                break;
            }
            else{
                KB=5;
                KN=512;
            }
        }
        //计算上位机一次读取数据
        Dn=Fsample*0.1; 
        n=Dn/64;
        if(64*n<Dn) n++;
        Dn=64*n;
        Data=Dn*CHn;       //一次读取数据量,Data不超过4096
        if(Data>4096)    Data=4096-4096%(CHn*64);
        DataLeng=1024;    //单通道总采集数据,可任意指定
        DataN=(DataLeng*CHn)/Data;    //读取次数
        if((DataN*Data)<(DataLeng*CHn)) DataN++;
        BN=(DataN*Data)/KN;               // 指定数据块数
        if(BN*KN<DataN*Data)  BN++;
    OnStart_Net(DAQ_LOW,Fsample,1,4,1,DAQ_NTR,KB,BN); //低速采集1-4通道,总采样频率 
                                     //20000HZ,非触发,每包上传KN 字节,上传数据块数BN;
    for(k=0;k<DataN;k++) {                 //循环读取指定数据
        if(OnReadL_Net(addat,Data)){                              
          for(n=1;n<=Ret;n++){
           j=0;
           for(i=0;i<10;i++){   //取数显示,每次每通道取10个数显示
               for(ch=0;ch<4;ch++){
                printf("%6d  ",addat[n][j++]);        
             }
             printf("\n");
             }
           }
        }
      }
      OnStop_Net(DAQ_LOW);              //停止采集
      OnClose_Net();                                //关闭网络
      for(i=0;i<10;i++){
       free(addat[i]);
       free(IP_Addr[i]);
      }
      printf("\nTest complete.");
      return 0;
     }