小弟菜鸟,想用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),可连续多次调用,读取大量数据。
动态连接库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),可连续多次调用,读取大量数据。
解决方案 »
- 发一个,用代码创建MDB文件的代码
- 请教toolbar的一个问题
- 各位大哥、大姐、老少爷么们,帮我解决一个关于Excel的问题好吗?
- 关于VSFlexgird的最后一行合计问题请教
- 金蝶k3二次开发bos 插件
- 如何使用 createwindow 创建 IP 地址输入框?
- 如何动态关联ImageList控件,toolbar控件
- 求转long类型数到Byte数组
- 在DataGrid控件中如何才能将标题的背景颜色改变呢,还有如何将某个单元的背景色改变呢?
- ★★★★★急急急急急,数据库的问题快快帮我解决★★★★★★
- CATIA VBA 如何判断装配件下的组件节点为激活/取消状态
- 请教VB6 Toolbar控件运行问题
函数形式:void WINAPI OnStop_Net(int TY) 说明:该函数用于停止网络数据采集(对连接的所有设备)。
vb中建一个BAS模块文件Declare Function OnStop_Net Lib "NETAD. DLL" () As long
例子如下:
//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;
}