使用GPIB的疑問 |
缺席
|
nlj859
資深會員 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
剛接觸GPIB不久,目前需要透過GPIB interface去取得2台設備之間溝通的訊息.
設備A與設備B之間是以GPIB在溝通(設備A裡有部PC,裡面裝有GPIB board,負責將資料送往設備B), 我必須在這部PC裡掛上一隻程式,去抓取這2台設備間的一些資訊並做一些資訊處理. (有點像寫一個簡單的NI Spy) 問題如下: 1. 設備A與設備B不停的運作狀態下,我有辦法直接抓到他們溝通訊息嗎? 2. GPIB可以是controller,talker,listener,但如果是以我的上述狀況來看,我該以什麼腳色來擷取資料? 3. 我是使用NI gpib card,裡面所提到的Board level和device level 是代表什麼意思? 4. 嘗試寫一個程式(如下),ibdev裡的"primary address of GPIB device" 我要如何知道它該使用多少呢? [code cpp] try { bd = ibfind("GPIB0"); } catch(...) {ShowMessage("ibfind error");} try { ud = ibdev (0, // connect board 1, // primary address of GPIB device 0, // secondary address of GPIB device T10s, // 10 second I/O timeout 1, // EOT mode turned on 0); // EOS mode disabled } catch(...) {ShowMessage("ibdev open error");} if (ibsta & ERR) { sprintf(MsgBuffer, "Unable to open device\nibsta = 0x%x\niberr = %d (%s)\n", ibsta, iberr, ErrorMnemonic[iberr]); Application->MessageBox(MsgBuffer, "Error", MB_OK MB_ICONSTOP); Close(); } [/code] 5. 上述程式執行後,出現錯誤ibsta(8100),iberr(ECIC), "GPIB error"(8000)和 "I/O completed"(100)為什麼會出現?代表什麼樣的錯誤? "ECIC"是"Function requires GPIB board to be CIC",這又是指什麼錯誤? 是否是要變為controller的意思? 問了一些問題,對於自己所了解的GPIB不是很清楚,所以是否能請有經驗的前輩指導一下並給個方向我該如何去實現我的目的,謝謝. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |