CVI驅動程序編寫入門_第1頁
CVI驅動程序編寫入門_第2頁
CVI驅動程序編寫入門_第3頁
CVI驅動程序編寫入門_第4頁
CVI驅動程序編寫入門_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

CVI驅動程序編寫入門儀器驅動程序有一個VPP規(guī)范(VXI即插即用),這個VPP規(guī)范中介紹儀器驅動的架構,使用的接口及前面板規(guī)范,函數(shù)原形規(guī)范等等。看過這個規(guī)范的朋友可能知道,VPP就是對CVI開發(fā)儀器驅動的規(guī)范。在開始編寫驅動之前,請先安裝NI-Visa、labwindows8.0下面介紹如何用CVI編寫儀器驅動生成儀器驅動程序工程文件(.prj)設計函數(shù)樹和函數(shù)面板(.fp,.c,.h)完成驅動程序每個函數(shù)的代碼(.c)編譯調試,生成動態(tài)鏈接庫1新建工程文件雙擊labWindows/CVI程序文件,打開CVI。在“File”下拉菜單中選擇“New”,再選擇“Project”創(chuàng)建工程,彈出如圖1-1對話框圖1-1創(chuàng)建工程在對話框中有兩個單選項,前一個指在當前工作區(qū)創(chuàng)建工程,后一個指新建一個工作區(qū)創(chuàng)建工程。通常選則后一個,這樣在一個工作區(qū)對應一個工程,簡單明了。其他保持默認。單擊確定,創(chuàng)建工程完成。2設計函數(shù)樹和函數(shù)面板這是最關鍵的一步,創(chuàng)建.fp、.c、.h等文件是儀器驅動中必不可少的文件,其中.fp是儀器驅動的核心。先介紹.fp創(chuàng)建過程。在“File”下拉菜單中選擇“New”,再選“FunctionTree”,如圖1-2圖1-2創(chuàng)建fp文件在右邊白色區(qū)域,單擊右鍵并點擊”createInstrument”,彈出如下對話框,如圖1-3圖1-3儀器節(jié)點“Name”指當前函數(shù)樹的名字,”prefix”指函數(shù)名的前趨,在后面創(chuàng)建的.h文件中每一個函數(shù)名以zyosc開頭,后面再跟實際函數(shù)名。填寫完后單擊ok,如圖1-4圖1-4函數(shù)樹創(chuàng)建藍色陰影部分的有這樣的提示“createclassorfunctionpanelwindow”,意思是在此可以創(chuàng)建類和函數(shù)前面板。這里的類指用戶如何劃分函數(shù),根據(jù)用戶的需要將某些函數(shù)規(guī)為一類。通常情況我們將錯誤消息、錯誤查詢、復位,自檢和版本查詢等函數(shù)規(guī)為通用函數(shù),具體操作硬件的部分的函數(shù)規(guī)為功能函數(shù)。單擊陰影部分,再單擊鼠標右鍵,選擇創(chuàng)建類,并在對話框中填入“UtilityFunctions”,單擊確定,如圖1-5圖1-5創(chuàng)建類程序中創(chuàng)建了一個“通用函數(shù)”類。下面在這個類中添加錯誤消息、錯誤查詢、復位,自檢和版本查詢等函數(shù)面板。同樣鼠標右擊“createclassorfunctionpanelwindow”,選擇“創(chuàng)建函數(shù)面板”,彈出如圖1-6對話框圖1-6創(chuàng)建函數(shù)面板該對話框中的“name”項指的是該函數(shù)面板的名字,而”functionname”指的該函數(shù)的函數(shù)名。單擊ok創(chuàng)建成功。圖1-7函數(shù)面板已經(jīng)創(chuàng)建好了,但還得編輯函數(shù)面板。單擊”Reset”函數(shù)面板,右擊選中“editfunctionpanelwindow”,出現(xiàn)如圖1-8圖1-8函數(shù)面板最上面的是加了前綴的函數(shù)名,指示當前正在編輯的函數(shù)面板。在面板上右鍵可以添加輸入?yún)?shù)、輸出參數(shù)、返回值等。參數(shù)不能隨便放,VPP規(guī)定函數(shù)面板的輸入?yún)?shù)放左邊,輸出參數(shù)與返回值放右邊。下面是編輯好的Reset面板如圖1-9圖1-9其他函數(shù)的前面板編輯方法與Reset面板相同。如在創(chuàng)建控件時,需要引入VI數(shù)據(jù)類型,執(zhí)行以下兩步操作,如圖1-9-1、1-9-2:圖1-9-1圖1-9-2下面我們介紹如何創(chuàng)建.c和.h文件。其實有了上述函數(shù)面板的創(chuàng)建過程,源文件與頭文件的創(chuàng)建就非常簡單了?;氐綀D1-7,這時必須保證reset面板已經(jīng)編輯完畢了,并保存完畢。單擊“Reset”,右鍵選擇“generatesourceforfunctionnode”,將自動創(chuàng)建出源文件和頭文件。保存后加入到工程中來即可。生成出來頭文件和源文件都需要修改,源文件只有函數(shù)殼,沒有函數(shù)體,需要自己手動添加,后面再介紹。先來介紹頭文件應該做什么樣修改。在頭文件需要加入C編譯頭,如圖1-10圖1-10c編譯頭加入C編譯頭的目的,如果在C++程序中使用,將自動以C語言方式編譯和連接,其意義是強制編譯器不要修改你的函數(shù)名。只有用這種方式,才能在C++程序中正常使用。3編寫源代碼在源文件中給reset函數(shù)添加代碼。returnVI_WARN_NSUP_RESET;//不支持復位這就是reset函數(shù)體內容。復位根據(jù)板卡要求,有些板子支持復位,有些板子不支持復位。我們使用的本振,并不支持復位。所以代碼就一句。源代碼的實現(xiàn)主要根據(jù)負責開發(fā)板子的人提出的需求,程序員根據(jù)需求來實現(xiàn)的。后面我會講些具體的例子。怎樣去分析需求,來編寫源代碼。4編譯生成dll在編譯之前需要對程序的一些屬性進行設置。首先,單擊“Build”下拉菜單,選擇”targettpye”子菜單,再選中“DynamicLinkLibrary”。這是最重要的一步,否則無法編譯成動態(tài)鏈接庫。其次,單擊“Build”下拉菜單,選擇“Targetsetting……”,打開對話框,如圖1-11圖1-11targetsetting最上方是設置動態(tài)鏈接庫創(chuàng)建的位置和文件名。當前顯示的是Debug狀態(tài),也可以設置release狀態(tài)下的輸出。對話框中部有三個按鈕分別版本說明、導入庫、類型庫。它們的設置保持持默認即可。最下端的兩個按鈕比較重要:“AddFilestoDLL”:添加文件到DLL,必須將源文件添加進去。如圖1-12圖1-12addfilestodll“Change…”:設置DLL輸出。動態(tài)鏈接庫函數(shù)的輸出由這里決定,否則沒有函數(shù)輸出。圖1-13DLLExportOptions該對話框要按如圖1-13進行設置。在“Exportwhat:”選擇”Includefilesymbols”,在下面的列表框中,選中“zyss.h”頭文件。這樣在編譯DLL時,會鏈接到頭文件,將頭文件中的函數(shù)作為輸出。單擊OK完成設置。最后選擇”build”下拉菜單中的”configuration”子菜單,可選擇以調試版或發(fā)布版編譯動態(tài)鏈接庫。最后選擇build下拉菜單中的“Createdebuggable/releaseDynamicLinkLibrary”編譯工程。如果編譯出錯,可能是一些參數(shù)類型沒有找到,即頭文件沒有引入;5dll轉化為llb整個儀器驅動程序就這樣完成了。我們可以通過該儀器驅動生成的DLL和.fp文件,將DLL中的函數(shù)轉換labview可以使用的子VI。在labview7.1的Tools下拉菜單中,選擇Instrumentation->importCVIinstrumentDriver,打開對話框選擇.fp文件,出現(xiàn)如下對話框。如圖1-2對話框中最上面是保存的LLB的路徑及文件名,可以實際情況設定。如果使用默認,那

溫馨提示

  • 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

提交評論