當前位置:首頁 » 編程軟體 » 編程採集卡

編程採集卡

發布時間: 2022-07-25 09:29:22

1. VB編寫與USB採集卡通信程序

用vb實現USB介面設備數據傳送

本文介紹了USB設備中的人機介面,HID設備與主機通信的要點與方式。詳細講解了在VB中調用相關APl函數的方法,並介紹了一種基於USB匯流排的數據採集系統的設計方案及開發方法,採用的是USB2.0協議。該系統主要是從設備的角度描述了人機介面設備通信,以及用來與主機進行數據交換的報告格式。應用程序可以使用任何能訪問API函數的編程語言,調用窗口函數並與USB設備實現通信。掌握USB設備與計算機通訊規程,實現USB設備的自動識別。為數據採集系統與計算機之間的通訊開辟了新的道路。
這幾年,隨著大量支持USB的個人電腦的普及,USB逐步成為PC機的標准介面已經是大勢所趨了。在主機(host)端,最新推出的PC機幾乎100%支持USB;而在外設(device)端,使用USB介面的設備也與日俱增,例如數碼相機、掃描儀、游戲桿、磁帶和軟碟機、圖像設備、列印機、鍵盤、滑鼠等。

二、Windows系統選擇USB驅動的過程

當Windows檢測到一個新的USB外設時,必須做的一件事情是找出應該使用哪個設備驅動應用軟體來與設備通信,然後載入選定的驅動。這是Windows設備管理器的工作,設備管理器使用類、設備安裝器和INF文件來找到這個匹配。
INF文件是一個文本文件,其中包括有利於Windows識別設備的信息。文件告訴Win-dows要使用什麼驅動、注冊表裡存儲什麼信息等。

三、Visual Basic與USB設備通信的設計與實現

使用VB語言訪問串列通信介面的方法。Windows在底層實現了和串列通信有關的很多復雜的工作,給程序員提供了一個相對比較容易掌握的編程介面。例如 Windows自動將所有接收到的字元放到接收緩沖區中,而所有發送的字元也都進入發送緩沖區。只要程序空閑,程序就可以讀取接收緩沖區獲得數據,或者向發送緩沖區發送數據。

1.主機尋找USB設備的過程
第一個被Windows支持的USB外圍設備類是人機介面設備。HID是 HUMANINTER-FACE DEVICE人機介面設備的英文縮寫。是指直接和人進行互動的設備。如滑鼠、鍵盤等。運行在WINDOWS98或其他更高的版本的操作系統的PC機,系統除了提供通用的USB設備的底層驅動以外,還單獨提供了一些HID設備的完整驅動,應用程序可以很容易地與操作系統內部的HID通訊。這樣使得符合HID 類的USB設備很容易開發與運行。也就是說,我們如果想實現一個USB的HID類設備,是不需要在Windows下開發自己的驅動程序的。HID不一定要是標準的外設類型,唯一的要求是交換的數據存儲在報文的結構內,設備固件必須支持報文的格式。任何工作在該限制之內的設備都可以成為一個HID,例如溫度計、電壓計、讀卡機等。

2.VB中調用API函數的過程
(1)聲明:下面是一個Visual Basic使用API函數WriteFile的聲明:可以利用這個涵數來寫數據到HID(也可以是文件和其他設備)中。Public Declare Function WriteFile Lib_「kernel32」_
(By Val hFile As Long,_ByReflpBuffer As Byte,_By Val nNumberOfBytes To Write As Long,_ByRef lpNumberOfBytesWritten As Long,_ByVal lpOvefiapped As Long)_As Long
(2)識別HID過程Public Declare Function HidD_GetHidGuid Lib_「hid.dll」_(ByRefHidGuid As GUID)As Long

3.Visual Basic數據過程
(1)讀數據到設備
Public Declare Function WriteFile Lib「kernel32」_(ByVal hFile As Long,_ByReflpBuffer As Byte_ByValnNumberOfBytesToWrite As Long,_ByRefnNumberOfBytcsWritten As Long,_ByVal lpOvefiapped As Long)_As Long
(2)從設備讀取數據Declare Function ReadFile Lib_「kernel32」_(ByValhFile As Long,_ByReflpBuffer As Byte,_ByValnNumberOfBytesToRead As Long,_ByReflpNumberOfBytesRead As Long,_lpOvefiapped As Long)_As Long
讀寫報文緩沖區時,第一個位元組是ReportID,其後是報文數據。報文緩沖區默認是八個報文,並且環狀排列。因為數據讀寫是發生在主機輪訓設備的時候,並不是由設備觸發產生硬體中斷,所以如不能及時讀寫,新的數據會覆蓋舊的數據,導致報文丟失。當數據讀寫頻繁時應使用特徵報文,它可以保證當報文數據沒有變化時,HID不會傳送新的數據。
當不再使用SetupDiGetClassDevs時,應用上述函數釋放其返回的數組hDevInfo。還有需要使用函數CloseHandle,它是一個非常通用的API函數,可以用於關閉通信。

四、結論

實際編程表明使用VB開發HID類USB設備是一條非常方便快捷的途徑,不需要編寫底層驅動,涉及到的API函數多是大家熟知的通用函數。但同時還必須注意到一點,HID類只支持控制傳輸與中斷傳輸。控制傳輸通常不用於數據的傳輸,而中斷傳輸的特點是保證最大延遲,也就是事務之間的時間。它沒有保證傳輸速率,而是保證每筆事務之間的時間不會超過最大延時。所以中斷傳輸適用於數據量不太大,但需要及時快速地傳送,實時性要求較高的場合。對於數據量比較大的傳輸,是不宜使用中斷傳輸的。因此HID設備應用的場合也必須根據該特點靈活使用。

2. 關於數據採集卡編程的疑問,請熟悉的幫忙指導一下,謝謝各位!!

CVI是可以直接調用DLL中的API,而各個公司的採集卡100%會支持API的調用,所以CVI使用任何公司的數據採集卡應該是沒有問題的。不過你最好打電話問下研祥的客服,好確認下。
不論是哪個公司的採集卡,使用API編程的時候,步驟一般是:
1、程序初始化時,注冊卡片,函數返回值一般是個設備號。(如:設備號 = RegisterCard(卡的型號,該型號的第幾張卡))。這里說明下,如果使用不同類型的卡,那麼在「卡的型號」就已經區分了,如果使用同一類型的幾張卡,那麼「該型號的第幾張卡」這個參數可以確定,可以從0開始往下數。
2、程序執行過程中,使用該設備號操作採集卡的各種各樣的功能,如AI(模擬輸入),AO模擬輸出,DIO數字輸入輸出,TIMER計數器定時器。
3、程序結束時,釋放設備,也就是釋放設備號就可以了。(如:ReleaseCard(設備號))
學採集卡最好的資料就是採集卡的說明書,然後對照它的說明書運行它的例子。只要看懂一張採集卡就完全OK了,沒多少內容的。
最好是學習的是多功能採集卡,(也就是卡上包括 AI AO DIO TIMER/COUNTER)
哦,如果你要程序的話,到數據採集卡的廠商上去下載一個程序安裝包就可以了,安裝完後會給你例子程序,建議還是看中文的吧,像北京阿爾泰,研祥的不知道是不是中文的。

3. CCD數據採集卡的編程

一般簡單的應用比如只要看採集到的數據,可以直接用廠家提供的常式就可以,沒有必要自己編程。
如果是工程項目上使用的話一般都是需要用廠家提供的動態庫來做二次開發,這樣才能達到實際的使用需求。
至於你說的那個測量車速程序的難易程度就要看實際需求了,如果單純的采數據不處理是比較簡單的。

4. 有沒有好的採集卡推薦

你說的應該是模數轉換卡,也就是AD卡。國內做的比較好的,北京阿爾泰科技的,現在做的產品都是出口的,公司做了20多年,產品精度採集頻率多少的都有,你可以問下他們公司的客服人員,會給你選擇,特別是他家的24位AD卡同步卡,可以直接採集IEPE壓電振動加速度感測器(自帶激勵源),效果比進口的卡還好,價格也便宜。

5. 數據採集卡編程學習

一般會有提供案常式序,比如C語言的,直接調用埠的進行操作
如果是Vb,有可能是提供一些調用函數,要仔細卡看說明書,或者和廠家溝通

6. 求用matlab編程的NI的USB數據採集卡型號,採集通道數8~20吧。

MV-E8000 PCI-E 4路圖像採集卡

MV-E8100 PCI-E 4路圖像採集卡

MV-E8800 PCI-E 8路圖像採集卡

MV-8002 2路工業高清圖像採集卡

MV-8000 4路高清實時圖像採集卡

MV-8800 8路高清實時圖像採集卡

7. 數據採集卡 vc編程

我用的是USB的GPIB卡,PCI卡應該差不多,採集電壓和電流要外接數字電表;根據電表提供的資料選擇語言吧,不過一般都會提供vb和vc的庫文件和頭文件,vb比較容易學

8. 數據採集卡VB編程問題

struct{
成員表列
}變數名表列1,變數名表列2;
(變數名表列1,變數名表列2)這2個變數名怎麼理解?

一個是聲明一個結構體的原始用法,
一個是把結構體取了個別名。

例如
struct list{
int a;
char c;
stuct list *next;
};(注意這個分號不能少)

這個結構體的類型名是struct list ;struct只是聲明結構體需要的關鍵字。 如果你要定義一個結構體變數 你就可以 :結構體類型 變數名
如:struct list student;

你是不是覺得寫struct list 覺得很麻煩?
那你就可以把struct list起個別名;就是綽號
可以這樣

struct list{
int a;
char c;
stuct list *next;
};
typedef struct list A;
那麼你的A student; 就等同與 struct list student;


當然你也可以在聲明一個結構體的時候給它起別名
typedef struct list{
int a;
char c;
struct list *next;
}A;

9. delphi 數據採集卡編程

你要修改程序,將所有與硬體交互有關的程序段用模擬程序來替換,並在採集數據部分人為模擬硬體部分返回一些數據,這些數據都是你准備好的,放在程序中或者文件中均可,看你自己的編程習慣了,最好是定義一個硬體是否存在的變數,有硬體就採用原程序段,如果是在筆記本上就改變這個變數,運行自己編制的模擬部分,採用自己的數據進行模擬。

熱點內容
社會腳本法定義 發布:2025-03-18 03:59:00 瀏覽:325
安卓擴展存儲空間 發布:2025-03-18 03:57:34 瀏覽:8
linuxat沒反應 發布:2025-03-18 03:56:51 瀏覽:580
怎麼看是多少位編譯器 發布:2025-03-18 03:47:32 瀏覽:659
solr索引存儲 發布:2025-03-18 03:46:52 瀏覽:329
縫合演算法 發布:2025-03-18 03:46:06 瀏覽:362
java遍歷二維數組 發布:2025-03-18 03:36:01 瀏覽:410
銳捷源碼 發布:2025-03-18 03:26:55 瀏覽:436
訴訟中止裁定後可否解壓 發布:2025-03-18 03:24:51 瀏覽:128
sqlserver全文搜索 發布:2025-03-18 03:23:58 瀏覽:715