LabVIEW擷取usb裝置裡的資料

我是一位剛學習LabVIEW的新手!

前些日子剛做完資料庫的建立!

現在有一台usb裝置的血糖機!我試著想把他的資料

透過usb的傳輸~把資料抓進電腦裡!

但我查了很多書~~都只有用RS-232的例子!

請問各位高手~~如果我要用USB的話~~是不是也是用VISA呢?

我該如何下手~~考慮哪些東西!?

謝謝!

請參考以下文章

USB Instrument Control Tutorial

[QUOTE=jessejay]

我是一位剛學習LabVIEW的新手!

前些日子剛做完資料庫的建立!

現在有一台usb裝置的血糖機!我試著想把他的資料

透過usb的傳輸~把資料抓進電腦裡!

但我查了很多書~~都只有用RS-232的例子!

請問各位高手~~如果我要用USB的話~~是不是也是用VISA呢?

我該如何下手~~考慮哪些東西!?

謝謝!

[/QUOTE]

請你先想辦法拿到血糖機的firmware spec. 裡面應該會定義USB資料的傳輸格式和意義 之後再使用VISA USB RAW Device的功能去讀資料 這類裝置我猜應該是USB HID device, 所以如果你對Windows programming熟悉的話 應該可以不用用VISA 透過Windows作業系統直接存取HID devices

如果真的拿不到firmware spec. 那只好想辦法用filter driver"偷看"裝置和電腦間的溝通囉 PeriSoft的BusHound是強大的好工具
PeriSoft

這是我用的一個範例,當然對你而言是不適用的,但應該可以作為參考

你可以去找看看你所用的儀器的公司是否有提供library,若是有的話可以用labview內的call library function node 來呼叫他的usb.dll 然後就像上面那位大大所說的去閱讀他的spec看他和電腦間是如何溝通的.

可以的話請把你所用的血糖機的型號和廠商PO一下!

 

Fbalance39567.4746412037

感謝Fbalance與ancle & Ozzy的協助!

目前我聽從Ozzy建議去抓了BusHound來用看看!

不過我之前沒有用過這類的軟體~~所以我還在摸索!

至於原廠方面他們並沒有提供firmware spec. 或是library等

所以就要像Ozzy建議一樣~花時間去看裝置是怎麼與電腦做溝通的!

請問Fbalance可以把你的範例程式傳給我嗎!?

感恩各位高手的解答!!小弟再次扣首了!!

[QUOTE=jessejay]

感謝Fbalance與ancle & Ozzy的協助!

目前我聽從Ozzy建議去抓了BusHound來用看看!

不過我之前沒有用過這類的軟體~~所以我還在摸索!

至於原廠方面他們並沒有提供firmware spec. 或是library等

所以就要像Ozzy建議一樣~花時間去看裝置是怎麼與電腦做溝通的!

請問Fbalance可以把你的範例程式傳給我嗎!?

感恩各位高手的解答!!小弟再次扣首了!!

[/QUOTE]

如果可能的話 當你弄懂裝置如何和電腦互動後 我強烈建議你將USB裝置溝通的功能實作在dll裡面 透過dll來跟裝置溝通

LabVIEW對於各類USB裝置的支援非常差勁 非得靠VISA 而許多實做的應用根本不允許掛上更改過後的VISA USB driver, 希望以後的版本能夠改進

當然

程式: Xpress_TestPanel8.0.vi

但是這個範例主要是用在8051,如果該公司沒有資料的話

或許你可以看看他所用的USB晶片

然後去找那個晶片的datasheet

 

我使用了bus hound 去查看裝置和電腦間的溝通!

但是在用的時候bus hound 出現 The device  has no USB ednpoints!

還有如果我依照NI-VISA控制USB的方法去製作INF檔!

這樣去抓資料會比較好嗎?

如果我要將USB裝置溝通的功能實作在dll裡面 透過dll來跟裝置溝通 !

那我該如何著手!?

PS.我的血糖機是:泰博科技   & 型號是TD-4227

[QUOTE=jessejay]

我使用了bus hound 去查看裝置和電腦間的溝通!

但是在用的時候bus hound 出現 The device  has no USB ednpoints!

還有如果我依照NI-VISA控制USB的方法去製作INF檔!

這樣去抓資料會比較好嗎?

如果我要將USB裝置溝通的功能實作在dll裡面 透過dll來跟裝置溝通 !

那我該如何著手!?

PS.我的血糖機是:泰博科技   & 型號是TD-4227

[/QUOTE]

把你在BusHound裡看到的圖貼上來看看吧

如果要寫在DLL裡 你得要會用Visual C++之類的語言透過Win32 API去跟USB裝置溝通
呃.. 請加油~

剛進泰博科技網頁去查,它用的應該是USB to  RS232轉換晶片(PL2303),

資料傳輸

RS232標準資料傳輸介面

所以當你灌完USB驅動程式,你的VISA應該會多出現COM*的介面,

那才是你要控制的PORT,請再確認一下!

[QUOTE=dickson]

剛進泰博科技網頁去查,它用的應該是USB to  RS232轉換晶片(PL2303),

資料傳輸

RS232標準資料傳輸介面

所以當你灌完USB驅動程式,你的VISA應該會多出現COM*的介面,

那才是你要控制的PORT,請再確認一下!

[/QUOTE]

原來是USB模擬出來的RS-232啊 那好辦多了 在LabVIEW下就用VISA存取COM port, VB的話用mscomm, Visual C++就用CSerial或CSerialMFC這些class
PL-2303的相關資訊 可以參考一下
PL-2303

[QUOTE=Ozzy] [QUOTE=dickson]

剛進泰博科技網頁去查,它用的應該是USB to  RS232轉換晶片(PL2303),

資料傳輸

RS232標準資料傳輸介面

所以當你灌完USB驅動程式,你的VISA應該會多出現COM*的介面,

那才是你要控制的PORT,請再確認一下!

[/QUOTE]

原來是USB模擬出來的RS-232啊 那好辦多了 在LabVIEW下就用VISA存取COM port, VB的話用mscomm, Visual C++就用CSerial或CSerialMFC這些class
PL-2303的相關資訊 可以參考一下
PL-2303
[/QUOTE]

我用過各種方法就是沒法把資料抓取下來!

不知道到底是程式用錯還是哪邊有錯!

之前用visa製作inf檔來想抓取資料!

但是卻沒法成功!

後來灌了PL-2303後!

再抓裝置裡的資料!!

卻出現錯誤!

Error -1073807246 occurred at Property Node (arg 1) in VISA Configure Serial Port (Instr).vi->USB.vi

Possible reason(s):

VISA:  (Hex 0xBFFF0072) The resource is valid, but VISA cannot currently access it.

我的程式順序是

先使用visa open --> visa read --> visa close 這樣有對嗎

另一種是用VISA Configure Serial Port-->visa resd

還是我觀念錯誤!!

卡這關卡好久= =!