DSAD编程指南阿里巴巴langjie668的博客BLOG

     Dinamic SingleAD(简写DSAD)用于单个AD10000卡在Windows下的编程开发,接口是标准的Windows动态连接库(DLL),可以支持C/C++、Delphi、VB等主流开发语言。应用程序透过DSAD接口可以高速获取放大器采样值、编码器计数值、并且产生控制输出(可选)。

硬件清单

普通商用计算机系统
AD10000高速采集试验卡,用于数据高速采样和控制输出
最多4个传感器(应变式传感器,光电编码器),测量4个通道数据
示波器等检测设备,检测控制输出

硬件结构示意图

 

AD10000试验卡

AD10000试验卡标准型支持10kHZ高速采样,增强型支持100kHZ高速采样。

文件清单

AD10000P目录:Windows98/Me/2000/XP/VISTA驱动安装

Pciad.dll:底层输入输出

Vac.dll:通用测控驱动

DSAD.dll:DSAD接口动态连接库

DSAD.lib:DSAD编译连接库

DSAD.h:DSAD声明文件(C语言)

调用层次

 

编程基本流程

DsadOpen(0);

启动:窗口创建代码段

int[] blockA = new int[10000];

int[] blockB = new int[10000];

int[] blockC = new int[10000];

int[] blockD = new int[10000];

int length = DsadSetBlockMode(1);    //设置读取块模式为true,返回块中点的个数

for(int i=0; i<length; i++)

{

blockA[i] = DsadInputA();        //逐个读取块中A通道的数据

blockB[i] = DsadInputB();        //逐个读取块中B通道的数据

blockC[i] = DsadInputC();        //逐个读取块中C通道的数据

blockD[i] = DsadInputCount();    //逐个读取块中D通道的数据

}

int DIState = DsadInputDigit(int DIChnl); //读取DI端口状态(DIChnl(DI端口):0,1,2,3)

DsadSetBlockMode(0);                  //设置读取块模式为false

刷新:定时器代码段(定时读取当前测量值并且显示和记录)

(界面处理)

DsadSetT(double T);

设置输出波形周期

DsadSetStdType(int wType, double vmin, double vmax);

设置输出波形类型,信号范围

DsadOutputWave(void);

控制输出一定频率的波形信号

DsadClose();

退出:窗口退出代码段

AD1M试验卡

AD1M试验卡在实现AD10000试验卡所有功能的基础上增加支持高达1MHZ的高速采样,采样数据的硬件记录缓冲区长度为50KB,可满足冲击试验等的一次性高速数据采集要求。

高速采集编程

读取:返回冲击数据采集频率

int freq = DsadGetFreq(); //返回的数值为冲击数据采集频率实际值,如果为0,卡不支持冲击采集

启动:冲击高速数据采集

ImpStart();

监控:冲击采集数据的长度

int transLength = ImpCheckTransfered();

读取:冲击高速采集数据

short[] blockImp = new short[transLength];

int readLength = ImpGetBlock(blockImp);

(界面处理)

函数说明

extern "C" DSAD_API int __stdcall DsadOpen(int key);

打开测控设备,然后可以作后面的调用

(key是VAC格式的软件注册号,一般DSAD硬件级开发用不上。返回值参见VAC说明,正常的话等于100;如果<0则出错。)

extern "C" DSAD_API void __stdcall DsadClose(void);

关闭测控设备

extern "C" DSAD_API int __stdcall DsadGetType(void);

返回产品类型

extern "C" DSAD_API int __stdcall DsadGetSn(void);

返回产品序号

extern "C" DSAD_API int __stdcall DsadGetId(void);

返回产品ID

extern "C" DSAD_API int __stdcall DsadGetFreq(void);

返回产品数据采集频率

extern "C" DSAD_API int __stdcall DsadGetBits(void);

返回产品数据采集位数

extern "C" DSAD_API int __stdcall DsadInputA(void);

读取块中通道A的数据

extern "C" DSAD_API int __stdcall DsadInputB(void);

读取块中通道B的数据

extern "C" DSAD_API int __stdcall DsadInputC(void);

读取块中通道C的数据

extern "C" DSAD_API int __stdcall DsadInputCount(void);

读取块中通道D的数据(计数)

(AD10000卡能够对输入AB脉冲进行4倍频采样,对于高精度旋转编码器3600码/转,可以得到14400的计数/转。)

extern "C" DSAD_API int __stdcall DsadGetBlock(int chnl, int *blockBuf);

按块读取某通道中的数据

chnl:通道编号,0-3;blcokBuf:读取的块数据保存到的数组;返回读取的块数据长度

extern "C" DSAD_API int __stdcall DsadInputDigit(int diChnl);

读取数字端口状态,端口号diChnl取值0-3

extern "C" DSAD_API void __stdcall DsadOutputDigit(int doChnl, int state);

输出数字开关量,端口号diChnl取值0-3

extern "C" DSAD_API void __stdcall DsadOutputPwm(int width);

控制输出脉宽占空比,参数范围0-1000,分辨率0.1%,1000代表100.0%

extern "C" DSAD_API void __stdcall DsadOutputSwp(int npm);

控制输出脉数频率,单位是每分钟,参数范围60-60M,换算到赫兹范围是1Hz~1MHz

extern "C" DSAD_API void __stdcall DsadOutput(int da);

控制输出DA,参数范围+-2047,模拟信号0~4V,da=0输出中位2V

(AD10000的模拟输出建议采用UTB-SI的隔离伺服功放进行控制,驱动端可以变换为±5V,或者±10V,或者±10mA。)

extern "C" DSAD_API void __stdcall DsadOutputWave(void);

控制输出一定频率的DA波形信号

extern "C" DSAD_API void __stdcall DsadSetT(double T);

设置输出波形的周期,T取值区间0.001-0.5,对应频率2-1000Hz

extern "C" DSAD_API void __stdcall DsadSetStdType(int wType, double vmin, double vmax);

设置输出波的类型,信号范围

(wType波类型:

wType为0:正弦波

wType为1:余弦波

wType为2:方形波

wType为3:三角波

wType为4:正锯齿波

wType为5:反锯齿波

vmin,vmax取值区间-1,1,对应DA输出信号最小{zd0})

extern “C” DSAD_API void __stdcall DsadAddArbi(double ut, double v);

自定义波形输出波形点,ut波形点位置(0.0到1.0,必须有首尾两点),v波形点信号大小(-1到1)。

(冲击专用)

extern "C" DSAD_API int __stdcall ImpGetFreq(void);

返回产品冲击采集频率

extern "C" DSAD_API int __stdcall ImpGetBits(void);

返回产品冲击采集位数

extern "C" DSAD_API void __stdcall ImpStart(void);

启动冲击高速数据采集

extern "C" DSAD_API int __stdcall ImpCheckTransfered (void);

返回冲击采集数据长度,0未采集

extern "C" DSAD_API int __stdcall ImpGetBlock (short *impBlock);

按块读取冲击采集数据,返回数据块长度



无显示 无显示
郑重声明:资讯 【DSAD编程指南阿里巴巴langjie668的博客BLOG】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——