YAV_USB_接口采集卡二次開發(fā)即DLL使用手冊USB6000 201804_第1頁
YAV_USB_接口采集卡二次開發(fā)即DLL使用手冊USB6000 201804_第2頁
YAV_USB_接口采集卡二次開發(fā)即DLL使用手冊USB6000 201804_第3頁
YAV_USB_接口采集卡二次開發(fā)即DLL使用手冊USB6000 201804_第4頁
YAV_USB_接口采集卡二次開發(fā)即DLL使用手冊USB6000 201804_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、YAV USB接口采集卡二次開發(fā)即DLL武漢亞為電子科技有限公司2018.04USB6000YAV USB接口采集卡二次開發(fā)及DLL使用手冊武漢亞為電子科技有限公司版 本 號:ADIO86.dll(32 位開發(fā)平臺)/ADIO64.dll(64 位開發(fā)平臺),V20180115適用范圍:帶有YAV標識,或者武漢亞為電子科技有限公司產品標注,且具備USB (包括但不限于 方口 USB、Micro USB)通信功能的采集卡,均可利用本指南。特別聲明:該指南僅適應于2017年9月1日之后YAV采集卡YAV USB接口的采集卡,無需安裝驅動,可利用ADIO86.dll與其他開發(fā)平臺產生數(shù)據(jù)交互,dll

2、基于VS2010開發(fā)。部分操作系統(tǒng)加載dll時出錯,需msvcr100d.dll、msvcr120d.dll配合使用,直接放ADIO86.dll 同文件夾下即可,如果是64位開發(fā)平臺(注意:64位操作系統(tǒng)如果用的是32位開發(fā)平臺,依然需要使用 ADIO86版本),可ADIO64.dll改名為ADIO86.dll,替換并重啟軟件。該dll可用于通用開發(fā)平臺,例如 VC+、VB、C#、Delphi 等。函數(shù)說明調用ADIO86.dll,使用時多檢查參數(shù)正確性,勿要過于懷疑函數(shù)本身。查找設備FindDeviceint FindDevice( void ),初始化DLL函數(shù),返回設備數(shù)量n,返回0,表

3、示沒有識別任何設備,此函數(shù)推 薦單卡用戶使用。int FindYavDevice( char *string ),初始化DLL函數(shù),查找YAV設備,并返回設備數(shù)量n,返回0,表 示沒有識別任何設備,此函數(shù)推薦多卡用戶使用。返回:n設備數(shù)量,0查找失敗。例如 FindDevice(0)以上兩種函數(shù)二選一,后者主要用于多卡同一電腦使用,不可兩種函數(shù)同時都用。該函數(shù)如 果無法調用,證明用戶開發(fā)平臺DLL調用功能沒有配置正確。打開設備 OpenYavDeviceint OpenYavDevice (unsigned short TaskID)返回:設備臨時ID,返回數(shù)值大于254,表示硬件異常,一個卡

4、就是0,兩個卡就分別為0,1,255失敗。TaskID: USB設備編號,單設備為0 (默認),多個設備為0 1 2例如 OpenYavDevice (0) 讀取數(shù)據(jù)GetYavDataint GetYavData(unsigned short TaskID,int *DAQDataBuffer, unsigned int DataSize, int *YavParam, int *CNTBuffer, unsigned int *IOBuffer)返回:設備臨時ID,返回數(shù)值大于254,表示硬件異常,其中255表示通信超時,256調用函數(shù)錯誤, 硬件通信失敗。臨時ID用于多卡同時連接于一個電

5、腦。為了開發(fā)方便,此函數(shù)可在不調用FindDevice、OpenYavDevice函數(shù)的情況下,單獨使用,第一次 調用報錯,第二次之后便可實現(xiàn)連續(xù)采集。例如 int DAQDataBuffer64=0,YavParam1=0,CNTBuffer2=0,IOBuffer2=0GetY avData(0,DAQDataBuffer,64,Y avParam,CNTBuffer,IOBuffer)其中:TaskID: USB設備任務編號,0;DAQDataBuffer:緩存數(shù)據(jù)數(shù)組,初始化長度必須大于DataSize; LabVIEW中數(shù)據(jù)類型為無符號32位 整形,其他平臺均為unsigned in

6、t。數(shù)據(jù)根據(jù)通道數(shù)全通道交叉排列,【X00 X01.X0N.X10 X11.X1N.XMN】,其中M是通道數(shù),M由采集卡型號決定,N單次是采樣長度,必須為64的整數(shù) 倍。例如兩路采集卡,是 0 1 0 1,8路是 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7,16 路是 0 1 215 0 1 2,循環(huán)排列。數(shù)據(jù)解算:單極性采集卡,例如0-10V量程,AI精度12位,為無符號數(shù),轉換為十進制,除以4095, 再乘以量程。例如10V量程,再乘以10(實際電阻會有偏差,9.83會比較精確,具體可用其他第三方設備 做校準)會得到通道數(shù)據(jù),即真值X*9.83/4095。正負量程的雙極

7、性采集卡,例如AI精度16 (或24位), 為有符號數(shù),轉換為十進制,除以2人(16-1)-1,再乘以量程。例如10V量程,再乘以20。DataSize:單次采樣長度,必須為32的整數(shù)倍,例如32 256 512 1024 2048,最大為81920,是幾個通 道加起來的數(shù)據(jù)長度,例如1024表示每個通道512,不可用其他數(shù)值,越小越快,越大每次采集的越多更 新越慢。為了顯示通暢,一般設置為采樣率的四分之一到一半,例如1k采樣率,設置512為宜。YavParam:采集卡參數(shù)數(shù)組,初始化長度必須大于1。依次為報警、采樣率、通道數(shù)、量程。具體參 數(shù)范圍及含義見“配置命令一覽表。CNTBuffer:

8、數(shù)字量讀數(shù)數(shù)組,初始化長度必須大于2。分別對應通道1通道2計數(shù)/測頻。lOBuffer: IO量狀態(tài)數(shù)組,初始化長度必須大于2。分別對應DI、DO狀態(tài)。0代表DI都為低電平,1 代表DI0高,DI1低,3代表都為高電平。務必對每一個參數(shù)提供正確初始化值,尤其是數(shù)組必須注意長度,否則VBVC等平臺調用會出現(xiàn)錯誤或者崩潰。配置設備SetYavParamint SetYavParam(unsigned short TaskID,unsigned char CMD,unsigned char *SetParam )返回:CMD代表成功,非CMD表示失敗。為了開發(fā)方便,此函數(shù)可在不調用FindDevic

9、e、OpenYavDevice函數(shù)的情況下,單獨使用,第一次 調用報錯,第二次之后便可實現(xiàn)連續(xù)采集。例如 int SetParam 16=0,1,43,4,56,67,8GetY avData(0,FD,SetParam)其中:TaskID: USB設備編號。CMD :命令參數(shù),詳見“配置命令一覽表”。SetParam: SetParam數(shù)組功能詳見“配置命令一覽表,最多可一次性寫入14個數(shù)據(jù)。該函數(shù)功能較多,可以控制采集卡的工作方式、設置采樣率等等。例如設置采樣率,其等級為05-0F, 對應十進制為5-15,對應200 500 1K 2K 5K 10K 20K 50K 100K 200K H

10、z(最高采樣率根據(jù)卡型號視情而定)。 SetYavParam(0,FA, A,0,0,0)設置設備0的采樣率為10K。功能詳見“配置命令一覽表”。單次讀取數(shù)據(jù)GetYavOnceint GetYavOnce(unsigned short TaskID,unsigned int *DAQDataBuffer)該函數(shù)為不用調用FindDevice、OpenYavDevice、GetYavData等函數(shù),簡易高速單次讀取所有通道參數(shù)的 函數(shù),能自動打開設備,讀取后關閉設備的方法,簡單易用,對于采樣率要求不高的開發(fā)者非常實用。例如 int DAQDataBuffer36=0GetY avData(0,

11、DAQDataBuffer)其中:TaskID: USB設備編號;DAQDataBuffer:緩存數(shù)據(jù)數(shù)組,初始化為36個長度的數(shù)組,0-31為通道AI, 32-35分別為DIODI1的測頻計數(shù)、DIDO。LabVIEW中數(shù)據(jù)類型為無符號32位整形,其他平臺均為unsigned into數(shù)據(jù)根據(jù)通道 數(shù)全通道交叉排列,【X00 X01.X0N.X10 Xll.X1N.XMN】,其中M是通道數(shù),M由采集卡型號決定,N單次是采樣長度。例如兩路采集卡,是0 10 1.,8路是0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7.,16 路是0 1 215 0 1 2.,循環(huán)排列。單次設置數(shù)

12、據(jù)SetYavOnceint SetY avOnce(unsigned short TaskID,unsigned char *YavParam)返回:1代表成功,非1失敗例如 int YavParam16=0,l,2,3,4,5,6,6,7GetY avData(0,YavParam)其中:該函數(shù)為不用調用FindDevice OpenYavDevice SetYavParam等函數(shù),簡易高速單次讀取所有通道參數(shù) 的函數(shù),能自動打開設備,讀取后關閉設備的方法,簡單易用,對于采樣率要求不高的開發(fā)者非常實用。YavParam:地址+命令+數(shù)據(jù),聯(lián)合單次下發(fā),最多可一次性寫入16個數(shù)據(jù)。關閉設備

13、CloseYavDeviceInt CloseYavDevice(unsigned short TaskID)返回:1代表成功,非1失敗例如 CloseYavDevice(0)注意:本DLL適用于任何可以調用dll的開發(fā)平臺,經(jīng)過測試,目前能支持幾乎所有平臺所有版本的數(shù)據(jù)采 集,不存在dll無法調用或者錯誤的情況。如果您在開發(fā)的過程中發(fā)現(xiàn)錯誤,多半是dll加載不正確,或者 輸入的參數(shù)有誤。64位平臺注意加載ADIO64.dll,編譯時注意選擇x86還是x64。請注意數(shù)據(jù)類型,以及數(shù)組緩沖區(qū)大小。如果緩沖區(qū)太小,就會出現(xiàn)內存錯誤。所以申請數(shù)組,可以 盡量大一些空間。表1配置命令一覽表16進制序號

14、功能命令CMD參數(shù)數(shù)組備注DOD1D2D3D4-131停止采集OxAO2單次采集0 xA13AI0觸發(fā)采集0 xA2觸發(fā)電平(高位)觸發(fā)電平 (低位)長度 (高位)長度 (低位)需定制0-409632的整數(shù)倍4采集AI0高速采集0 xA35測頻/計數(shù)0 xFC/0 xA8FF(CH0 測頻)CC(CH0開始計數(shù))FF(CH1 測頻)CC(CH1開始 計數(shù))測頻/計數(shù)二選 一。雙通道可 獨立控制6AI連續(xù)采集0 xAAN(0-F)參考 FA默認7特殊采集0 xAF備用6讀取校準系數(shù)0 xB0讀漂移參數(shù)7CH0-3系數(shù)0 xB1AI0系數(shù)8位數(shù)組,可設置950-1250 默認1000,代表1倍,1

15、101代表1.101倍8CH4-7系數(shù)0 xB2AI8AI15系數(shù)8位數(shù)組9CH8-11系數(shù)0 xB3以上類推10系數(shù)CH12-15 系數(shù)0 xB41、用精密電壓源(或精密電流源,具體由通道量程而定)作校準電源連到待校準11校準CH16-19 系數(shù)0 xB5通道AI和GND。12CH20-23 系數(shù)0 xB62、電源調節(jié)到通道量程的最大值(滿量程),用UMS測量值除以信號源的實際13CH24-27 系數(shù)0 xB7值,換算為1000基準的數(shù)據(jù),減900,以U8通過SetYavData函數(shù)發(fā)送下去。950-1250,14CH28-31 系數(shù)0 xB8默認1000,代表1倍,1101代表1.101倍

16、。例如0.99倍,實際是990,U8的十六進制為0 x5A。硬件可記憶參數(shù)。發(fā)送數(shù)據(jù)為90,15讀取零漂0 xC0可設置0-255I8,127 代表 0讀漂移參數(shù)16CH0-3零漂0 xC117CH4-7零漂0 xC218零漂校準CH8-11零漂0 xC31、 用精密電壓源(或精密電流源,具體由通道里程而定)作校準電源連到待校準 通道AI和GND。2、 將電源調節(jié)到通道量程的最小值(零點,一般是接GND,不可懸空),把數(shù)值的16進制U8格式,用此命令,通過SetYavData函數(shù)發(fā)送下去。零漂一般都非常小,19CH12-15 零漂0 xC420CH16-19 零漂0 xC521CH20-23

17、零漂0 xC622CH24-27 零漂0 xC723CH28-31 零漂0 xC824數(shù)字量DO控制0 xD00X00-0XFF25輸出D0每位BIT15-BIT0對應DO15-DO0,1:高電平輸出,0:低電平輸出26控制模擬量DA輸出0 xDA通道號0-7高低低位后一通道類推輸出 3.3V,則 3.3*4096/10,變?yōu)槭M制,再分配給高低位,12位27PWM輸出頻率OxDB頻率(高位)頻率(低位)頻率 (高位)頻率 (低位)頻率通道 1,1-FFFF 代表 1Hz65.535KHz通道2通道n28PWM輸出占空比OxDC占空比1占空比2占空比3占空比4占空比n290-255 對應 0

18、-100%30PWM輸出0 xFD頻率(高位)頻率(低位)占空比1占空比2MAXMAX PRO兩通道同頻,1-FFFF代表1Hz65.535KHz每個通道占空比不同代表0-255 對應 0-100%通道號頻率(高位)頻率(低位)占空比14AD PLUS31輔助設備地址0 xDDN32恢復出廠OxFO33設備量程0 xF10X00-0XFF用戶不可設置0-F 對應 0-100mV /3V /5V / 10V /15V /30V /60V 4-20mA 0-20mA 0-20mV -5-5V -10-10V -20-20V -30-30V -60-60V -20-20mV,F(xiàn)F 代表前 后各一半通

19、道的量程,例如38,也就是前一半是10V,后一半是 0-20mA量程34設備ID0 xF2用USB助手讀35封鎖控制0 xF300/F3用戶不可控36信號處理0 xF400為默認備用37AI精度0 xF500默認精度,01為10位,02為12位,04為14位,06為16位,08位18位,09位24位用戶不可設置38兼容性0 xF6備用39采集卡型號0 xF7接口類型,6 7 8通道數(shù)防護據(jù)命名規(guī)則表40功能0 xF875:754真值38:8 位 AD (U8)37:12位AD (U12無符號)36:16 位 ADCI16 有符號)35:24位AD(I32有符號)21: DI高速22:測頻(I3

20、2位)23:計數(shù)(I32位)24:計數(shù)(I32)測頻(I16)25:編碼器(I32計數(shù)I16測 頻)用戶不可設置41通道使能0 xF9FF開啟全部,01開CH0,02開CH0和1不記憶42采樣率0 xFA采樣等級(05-0F)D0設置采樣率等級的05-0F,對應十進制為5-15,對應200 500 1K 2K 5K 10K 20K 50K 100K 200K Hz (最高采樣率根據(jù)卡型號視情而定)43重啟0 xFB44測量測頻/計數(shù)0 xFCFF(CH0 測頻)CC(CH0開始計數(shù))FF (CH1測頻) CC(CH1 開 始計數(shù))測頻/計數(shù)二選 一。雙通道可 獨立控制45輸出用戶參數(shù)0 xDF

21、備用46幫助版本信息0 xFE01, 201402, 2016050103, 20170901用USB助手讀47幫助0 xFF用USB助手讀說明:一代表參數(shù)無效,可以設置為0;代表部分采集卡不具備改功能;編程中不要頻繁設置參數(shù),否則影響采集速度。例如:設備0輸出為高電平SetYavParam(0, D0, FF,0,0,0);設置PWM SetYavParam(0, FC,05,00,50,50)。設置的瞬間,影響采集速度。5)關閉設備uint32_t CloseDevice (uint_t TaskID)返回:0uint32_t TaskID: USB 設備編號加載流程深色背景為必須操作的函

22、數(shù)。讀取數(shù)據(jù)返回255為超時。在采集速度要求較高的情況下, 不要反復配置設備參數(shù)與改變DO狀態(tài),否則影響采集數(shù)據(jù)時間精度。多卡同步使用多卡同步使用,需要復制多份dll,根據(jù)卡的索引TaskID號(TaskID號自動分配,從0開 始,0、1、2、3.依次增加,先插入的為0),調用不同dll的函數(shù)。調用方法和上面一致。 讀取數(shù)據(jù),可以根據(jù)設備號(設備號用戶可設置)解算數(shù)據(jù)。4. labview 例程注意:程序框圖中重要參數(shù)不可調節(jié),否則會引起系統(tǒng)崩潰,尤其是注明不可修改的部分。 以上框圖,僅供參考,如有更新,恕不另行通知。5. VC例程僅供參考,具體以前文的函數(shù)說明為準。查找設備uint32_t

23、FindDevice()uint32_t OpenYavDevice (uint_t ID)Al、DI 采集Typedef int32_t (*GetYavData)( uint32_t ID, uint32_t *ADBuf, uint16_t Len, int *YavParam, uint32_t *CNbuf, uint32_t *DIO);HINSTANCE hDLL;bool DI0;bool DI1;/float CH0;float CH1;unsigned int ADBuf4096=0;unsigned int Y avParam 2=0;unsigned int CNbuf

24、 2=0;unsigned int DIO 2=0;pReadDeviceHID2BUF ReadDataViaHID2BUF;hDLL=LoadLibrary(ADIO 4.0.dll);具體要看 dll 的命名if(hDLL)GetYavData =(pReadDeviceHID2BUF)GetProcAddress(hDLL, GetYavData ); if(GetYavData) HYPERLINK http:/ 武漢亞為電子科技有限公司 客服電話15727007467int res= GetYavData (0, ADBuf, 1024, YavPara

25、m, CNbuf , DIO); for (i=0 , i 1000)(x1.Clear();y1.Clear();x2.Clear();y2.Clear();x3.Clear();y3.Clear();x4.Clear();y4.Clear();n = 0;for (int i = 0; i num / 2; i+)/2 為通道數(shù),USB 2ADIG 設置 2,8AD 設置 8 16ad 設置 16(val1 = ADbuf2 * i *10.0/ 4096;val2 = ADbuf2 * i + 1 * 10.0 / 4096;x1.Add(n);y1.Add(float)val1);x2

26、.Add(n);y2.Add(float)val2);n+;/for (int i = 0; i num / 8; i+)/2 為通道數(shù),USB 2ADIG 設置 2,8AD 設置 8 16ad 設置 16/(/ val1 = ADbuf8 * i * 10.0 / 4096;/val2 = ADbuf8*i+1*10.0/ 4096;/val3 = ADbuf8*i+2*10.0/ 4096;/val4 = ADbuf8*i+3*10.0/ 4096;/val5 = ADbuf8*i+4*10.0/ 4096;/val6 = ADbuf8*i+5*10.0/ 4096;/val7 = ADb

27、uf8 * i + 6 * 10.0 / 4096; val8 = ADbuf8 * i + 7 * 10.0 / 4096; x1.Add(n);y1.Add(float)val 1); x2.Add(n);y2.Add(float)val2);n+;C#: HYPERLINK http:/ http:/ 4.0.dll和ADIO 4.0.h文件拷貝到Matlab的當前工作目錄下, 輸入loadlibrary(ADIO 4.0, ADIO 4.0.h);(一定要有這步,如果dll不成功,會顯示錯誤原因)查看DLL中導出的函數(shù)libfunctions MatlabDllTest -full-f

28、ull選項會列出導出函數(shù)的詳細輸入和輸出參數(shù),這是輸出信息如下:Functions in library MatlabDllTest:uint32_t FindDevice()uint32_t OpenYavDevice (uint_t ID)調用函數(shù)calllib( ADIO 4.0, OpenYavDevice , 0)此時就會輸出正確的結果1Matlab: HYPERLINK http:/ http:/ 1,千萬不要弄錯!function FindYavDevice(id:PInteger):integer;stdcall;external ADIO86.dll;/ 發(fā)現(xiàn)設備函數(shù)func

29、tion OpenYavDevice(id:integer):integer;stdcall;external ADIO86.dll;/ 打開設備函數(shù)function SetYavParam(id:integer;cmd:Byte;setparam:PChar):integer;stdcall;external ADIO86.dll;/ 寫設備 命令函數(shù)functionGetYavData(id:integer;ADBuffer:PInteger;DataSize:Word;DABuffer:PInteger;CNTBuffer:PInteger;IOBuffer:PInteger):i nt

30、eger; stdcall;external ADIO86 .dll;/ 寫設備命令函數(shù)function CloseYavDevice(id:integer):integer;stdcall;external ADIO86.dll;/ 關閉設備函數(shù)($R *.dfmprocedure TForm1 .Button1 Click(Sender: TObject);varAD: array0.1024 of Integer;DA: array0.4 of Integer;CNT: array0.2 of Integer;IO: array0.2 of Integer;ID:array0.2 of

31、Integer;SETPARAM:array0.6 of Byte; begineditLtext:=inttostr(FindYavDevice(ID);edit2. Text:=intto str(OpenYavDevice(0); edit3.Text:=inttostr(SetYavParam(0,$a1,SETPARAM);/0XA1 命令,單次采集/例如要發(fā)送(0,$a1,1,2,3,4),設置 SETPARAM0=1;SETPARAM1=2;SETPARAM2=3;SETPARAM3=4;參考YAV USB接口采集卡二次開發(fā)說明V201703edit4.Text:=inttostr(GetY

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論