《虛擬儀器實(shí)用編程技術(shù)》第7章_外部應(yīng)用接口_第1頁(yè)
《虛擬儀器實(shí)用編程技術(shù)》第7章_外部應(yīng)用接口_第2頁(yè)
《虛擬儀器實(shí)用編程技術(shù)》第7章_外部應(yīng)用接口_第3頁(yè)
《虛擬儀器實(shí)用編程技術(shù)》第7章_外部應(yīng)用接口_第4頁(yè)
《虛擬儀器實(shí)用編程技術(shù)》第7章_外部應(yīng)用接口_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 第第7章章 外部應(yīng)用接口外部應(yīng)用接口 主要學(xué)習(xí)內(nèi)容主要學(xué)習(xí)內(nèi)容 n1學(xué)習(xí)學(xué)習(xí)CIN的概念和調(diào)用;的概念和調(diào)用;n2學(xué)習(xí)學(xué)習(xí)Matlab節(jié)點(diǎn)的使用;節(jié)點(diǎn)的使用;n3學(xué)習(xí)學(xué)習(xí)DLL的概念和調(diào)用。的概念和調(diào)用。 7.1 CIN7.1 CIN CINCIN的概念的概念 CIN是是Code Interface Node的縮的縮寫,是寫,是LabVIEW開發(fā)平臺(tái)的開發(fā)平臺(tái)的G語(yǔ)言環(huán)境語(yǔ)言環(huán)境與與C語(yǔ)言的接口語(yǔ)言的接口 CIN與與LabVIEW中的其他節(jié)點(diǎn)類似,中的其他節(jié)點(diǎn)類似,是通過輸入、輸出端口來實(shí)現(xiàn)兩種語(yǔ)言是通過輸入、輸出端口來實(shí)現(xiàn)兩種語(yǔ)言之間的數(shù)據(jù)和參數(shù)的傳遞的之間的數(shù)據(jù)和參數(shù)的傳遞的。 CINC

2、IN的調(diào)用步驟的調(diào)用步驟在后面板框圖程序設(shè)計(jì)窗口中,選擇在后面板框圖程序設(shè)計(jì)窗口中,選擇All Functions Advanced子模板下的子模板下的Code Interface Node 節(jié)點(diǎn)節(jié)點(diǎn) ,放置在框圖程序設(shè)計(jì)窗口中放置在框圖程序設(shè)計(jì)窗口中。 CIN圖標(biāo)中的一個(gè)小格表示一個(gè)參數(shù)端口,左側(cè)為輸圖標(biāo)中的一個(gè)小格表示一個(gè)參數(shù)端口,左側(cè)為輸入端口,右側(cè)為輸出端口,而且左右端口是一一對(duì)應(yīng)入端口,右側(cè)為輸出端口,而且左右端口是一一對(duì)應(yīng)的,代表一個(gè)參數(shù)的一對(duì)輸入輸出端口。的,代表一個(gè)參數(shù)的一對(duì)輸入輸出端口。 CIN節(jié)點(diǎn)的節(jié)點(diǎn)的輸入、輸出端口的數(shù)據(jù)類型由連接在該端口上的控件輸入、輸出端口的數(shù)據(jù)類型

3、由連接在該端口上的控件的數(shù)據(jù)類型來決定。的數(shù)據(jù)類型來決定。 2.2.在節(jié)點(diǎn)圖標(biāo)上單擊右鍵彈出快捷在節(jié)點(diǎn)圖標(biāo)上單擊右鍵彈出快捷菜單,選擇菜單,選擇Add parameter命令項(xiàng)命令項(xiàng)添加參數(shù)。添加參數(shù)。 如果需要增加參數(shù),可以通過兩種方法如果需要增加參數(shù),可以通過兩種方法:1. 用鼠標(biāo)定位工具拖動(dòng)節(jié)點(diǎn)一角改變節(jié)點(diǎn)圖標(biāo)的尺寸;用鼠標(biāo)定位工具拖動(dòng)節(jié)點(diǎn)一角改變節(jié)點(diǎn)圖標(biāo)的尺寸;設(shè)計(jì)設(shè)計(jì)CINCIN模塊的步驟模塊的步驟n利用利用LabVIEW提供的框架設(shè)計(jì)提供的框架設(shè)計(jì)CIN模塊模塊的步驟:的步驟:1生成生成C源代碼框架源代碼框架 2添加添加C源代碼源代碼3編譯生成編譯生成lsb文件文件 4加載編譯成功

4、的加載編譯成功的lsb文件文件 7.2 Matlab7.2 MatlabnLabVIEW中的公式節(jié)點(diǎn)可以實(shí)現(xiàn)一些基中的公式節(jié)點(diǎn)可以實(shí)現(xiàn)一些基本的數(shù)學(xué)運(yùn)算,如果涉及到比較復(fù)雜的本的數(shù)學(xué)運(yùn)算,如果涉及到比較復(fù)雜的數(shù)學(xué)運(yùn)算,則可以調(diào)用數(shù)學(xué)運(yùn)算,則可以調(diào)用Matlab的腳本文的腳本文件(件(m文件)來實(shí)現(xiàn)。文件)來實(shí)現(xiàn)。n注意:注意:要使用要使用MatlabMatlab節(jié)點(diǎn),必須首先安節(jié)點(diǎn),必須首先安裝裝MatlabMatlab ,因?yàn)椋驗(yàn)镸atlabMatlab節(jié)點(diǎn)要調(diào)用節(jié)點(diǎn)要調(diào)用MatlabMatlab腳本服務(wù)器。腳本服務(wù)器。 7.2.1 Matlab7.2.1 Matlab節(jié)點(diǎn)節(jié)點(diǎn) nMatl

5、ab節(jié)點(diǎn)位于功能面板的節(jié)點(diǎn)位于功能面板的All FunctionsAnalyze MathematicsFormula子模板內(nèi),添加子模板內(nèi),添加Matlab節(jié)節(jié)點(diǎn)的方式和前面章節(jié)中添加公式節(jié)點(diǎn)的方式類似。點(diǎn)的方式和前面章節(jié)中添加公式節(jié)點(diǎn)的方式類似。 創(chuàng)建創(chuàng)建Matlab節(jié)點(diǎn)節(jié)點(diǎn) 在在Formula子模板選擇子模板選擇Matlab節(jié)點(diǎn)節(jié)點(diǎn) n向向Matlab節(jié)點(diǎn)輸入節(jié)點(diǎn)輸入Matlab文件的方法文件的方法有兩種:有兩種: 一種一種是直接在框內(nèi)寫入文件代碼是直接在框內(nèi)寫入文件代碼; 另一種另一種是在是在MatlabMatlab節(jié)點(diǎn)的邊框上單擊鼠節(jié)點(diǎn)的邊框上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇標(biāo)右

6、鍵,在彈出的快捷菜單中選擇ImportImport命令選項(xiàng),在彈出的對(duì)話框中命令選項(xiàng),在彈出的對(duì)話框中輸入輸入MatlabMatlab腳本文件即可腳本文件即可。 輸入輸入Matlab文件的菜單操作文件的菜單操作 n輸入輸入/輸出變量的添加和公式節(jié)點(diǎn)類似,分別用輸出變量的添加和公式節(jié)點(diǎn)類似,分別用Add Input和和Add Output來實(shí)現(xiàn)。來實(shí)現(xiàn)。 n和公式節(jié)點(diǎn)一樣,用戶可以為和公式節(jié)點(diǎn)一樣,用戶可以為Matlab節(jié)點(diǎn)的每個(gè)輸入節(jié)點(diǎn)的每個(gè)輸入/輸出變量添加指示器或者控制器。輸出變量添加指示器或者控制器。 為為Matlab節(jié)點(diǎn)的輸入節(jié)點(diǎn)的輸入/輸出變量添加指示器或控制器輸出變量添加指示器或控

7、制器 7.2.2 7.2.2 LabVIEWLabVIEW和和MatlabMatlab數(shù)據(jù)類型數(shù)據(jù)類型n在在Matlab中,用戶一般不用指定數(shù)據(jù)類型,所中,用戶一般不用指定數(shù)據(jù)類型,所有輸入變量會(huì)有缺省的類型,而在有輸入變量會(huì)有缺省的類型,而在LabVIEW里里面,面,Matlab節(jié)點(diǎn)并不能夠判斷數(shù)據(jù)類型,因此節(jié)點(diǎn)并不能夠判斷數(shù)據(jù)類型,因此用戶必須要為每個(gè)數(shù)據(jù)變量指定一個(gè)類型。用戶必須要為每個(gè)數(shù)據(jù)變量指定一個(gè)類型。n在腳本節(jié)點(diǎn)上,可以改變輸入或輸出端子的數(shù)在腳本節(jié)點(diǎn)上,可以改變輸入或輸出端子的數(shù)據(jù)類型,應(yīng)該經(jīng)常檢查腳本節(jié)點(diǎn)的輸入、輸出據(jù)類型,應(yīng)該經(jīng)常檢查腳本節(jié)點(diǎn)的輸入、輸出數(shù)據(jù)類型。數(shù)據(jù)類型。

8、n在在Matlab中,對(duì)于任何新的輸入或輸出,其默中,對(duì)于任何新的輸入或輸出,其默認(rèn)類型為認(rèn)類型為Real。 改變腳本節(jié)點(diǎn)上輸入輸出端子的數(shù)據(jù)類型改變腳本節(jié)點(diǎn)上輸入輸出端子的數(shù)據(jù)類型n首先在變量上面單擊鼠標(biāo)右鍵,在彈出的快捷菜單中首先在變量上面單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇選擇Choose Data Type命令選項(xiàng),就會(huì)出現(xiàn)命令選項(xiàng),就會(huì)出現(xiàn)Matlab中的各種數(shù)據(jù)類型名稱,然后按照事先在中的各種數(shù)據(jù)類型名稱,然后按照事先在Matlab中定中定義的類型給每個(gè)變量選擇合適的數(shù)據(jù)類型,則系統(tǒng)就義的類型給每個(gè)變量選擇合適的數(shù)據(jù)類型,則系統(tǒng)就會(huì)把變量變成相應(yīng)的會(huì)把變量變成相應(yīng)的LabVIEW內(nèi)

9、的類型。內(nèi)的類型。 定義數(shù)據(jù)類型的菜單操作定義數(shù)據(jù)類型的菜單操作 數(shù)據(jù)類型圖標(biāo)數(shù)據(jù)類型圖標(biāo)LabVIEW數(shù)據(jù)類型數(shù)據(jù)類型Matlab數(shù)據(jù)類型數(shù)據(jù)類型帶符號(hào)帶符號(hào)32位整數(shù)位整數(shù)不適用不適用雙精度浮點(diǎn)數(shù)雙精度浮點(diǎn)數(shù)Real字符串字符串不適用不適用帶符號(hào)帶符號(hào)32位整數(shù)一維數(shù)組位整數(shù)一維數(shù)組不適用不適用帶符號(hào)帶符號(hào)32位整數(shù)多維數(shù)組位整數(shù)多維數(shù)組不適用不適用雙精度浮點(diǎn)數(shù)一維數(shù)組雙精度浮點(diǎn)數(shù)一維數(shù)組Real Vector雙精度浮點(diǎn)數(shù)多維數(shù)組雙精度浮點(diǎn)數(shù)多維數(shù)組Real Matrix多精度復(fù)數(shù)多精度復(fù)數(shù)Complex雙精度復(fù)數(shù)一維數(shù)組雙精度復(fù)數(shù)一維數(shù)組Complex Vector雙精度復(fù)數(shù)多維數(shù)組雙精

10、度復(fù)數(shù)多維數(shù)組Complex Matrix表表7 7-1 LabVIEW1 LabVIEW和和MatlabMatlab數(shù)據(jù)類型數(shù)據(jù)類型 7.2.3 Matlab7.2.3 Matlab節(jié)點(diǎn)應(yīng)用節(jié)點(diǎn)應(yīng)用n例例7.1 畫一段正弦函數(shù)圖像。畫一段正弦函數(shù)圖像。在在Matlab節(jié)點(diǎn)內(nèi)寫入如下代碼:節(jié)點(diǎn)內(nèi)寫入如下代碼:x=-5:1/10:5;y=sin(x);plot(x, y); 框圖程序框圖程序 -5-4-3-2-1012345-1-0.8-0.6-0.4-0.200.20.40.60.81 Matlab中畫出的正弦函數(shù)圖中畫出的正弦函數(shù)圖 LabVIEW中畫出的正弦函數(shù)圖中畫出的正弦函數(shù)圖 7.3

11、 DLL7.3 DLLnLabVIEW提供了提供了C語(yǔ)言接口及直接調(diào)用動(dòng)態(tài)鏈語(yǔ)言接口及直接調(diào)用動(dòng)態(tài)鏈接庫(kù)(接庫(kù)(DLL)函數(shù)的功能)函數(shù)的功能。nDLL是建立在客戶端是建立在客戶端/服務(wù)器通信的概念上,服務(wù)器通信的概念上,包含若干個(gè)函數(shù)、類或資源的庫(kù)文件,函數(shù)和包含若干個(gè)函數(shù)、類或資源的庫(kù)文件,函數(shù)和數(shù)據(jù)被存儲(chǔ)在一個(gè)數(shù)據(jù)被存儲(chǔ)在一個(gè)DLL服務(wù)器上,并由一個(gè)或服務(wù)器上,并由一個(gè)或多個(gè)客戶導(dǎo)出使用,這些客戶可以是應(yīng)用程序,多個(gè)客戶導(dǎo)出使用,這些客戶可以是應(yīng)用程序,或者是其他的或者是其他的DLL。 n在動(dòng)態(tài)鏈接的情況下,有兩個(gè)文件,一個(gè)是引在動(dòng)態(tài)鏈接的情況下,有兩個(gè)文件,一個(gè)是引入庫(kù)(入庫(kù)(.Lib

12、)文件,一個(gè)是)文件,一個(gè)是DLL文件。文件。n引入庫(kù)文件包含從引入庫(kù)文件包含從DLL導(dǎo)出的函數(shù)的名稱和位導(dǎo)出的函數(shù)的名稱和位置,置,DLL包含實(shí)際的函數(shù)和數(shù)據(jù)。應(yīng)用程序使包含實(shí)際的函數(shù)和數(shù)據(jù)。應(yīng)用程序使用用Lib文件鏈接到所需要使用的文件鏈接到所需要使用的DLL文件,庫(kù)中文件,庫(kù)中的函數(shù)和數(shù)據(jù)并不復(fù)制到可執(zhí)行文件中,因此,的函數(shù)和數(shù)據(jù)并不復(fù)制到可執(zhí)行文件中,因此,在應(yīng)用程序的可執(zhí)行文件中,存放的不是被調(diào)在應(yīng)用程序的可執(zhí)行文件中,存放的不是被調(diào)用的函數(shù)代碼,而是在用的函數(shù)代碼,而是在DLL中所要調(diào)用的函數(shù)中所要調(diào)用的函數(shù)的內(nèi)存地址,這樣當(dāng)一個(gè)或多個(gè)應(yīng)用程序運(yùn)行的內(nèi)存地址,這樣當(dāng)一個(gè)或多個(gè)應(yīng)用程

13、序運(yùn)行時(shí),再把程序代碼和被調(diào)用的函數(shù)代碼鏈接起時(shí),再把程序代碼和被調(diào)用的函數(shù)代碼鏈接起來,從而節(jié)省了內(nèi)存資源。來,從而節(jié)省了內(nèi)存資源。 7.3.2 7.3.2 調(diào)用調(diào)用DLLDLLn在在LabVIEW中,可通過中,可通過 Call Library Function函數(shù)函數(shù)模塊調(diào)用動(dòng)態(tài)鏈接庫(kù)。模塊調(diào)用動(dòng)態(tài)鏈接庫(kù)。 n在框圖程序設(shè)計(jì)窗口,選擇功能模板中的在框圖程序設(shè)計(jì)窗口,選擇功能模板中的 Advanced Call Library Function Node,放置在框圖程序設(shè)放置在框圖程序設(shè)計(jì)窗口中。計(jì)窗口中。 圖圖7-11 Call Library Function Node的圖標(biāo)的圖標(biāo) n雙

14、擊此函數(shù)模塊,將彈出雙擊此函數(shù)模塊,將彈出Call Library Function Node對(duì)話框?qū)υ捒?,可以?duì)要調(diào)用的動(dòng)態(tài)鏈接庫(kù)及其函數(shù)進(jìn)可以對(duì)要調(diào)用的動(dòng)態(tài)鏈接庫(kù)及其函數(shù)進(jìn)行設(shè)定。行設(shè)定。 Call Library Function Node對(duì)話框?qū)υ捒?nLibrary Name Or PathLibrary Name Or Path為要調(diào)用的動(dòng)態(tài)鏈接庫(kù)為要調(diào)用的動(dòng)態(tài)鏈接庫(kù)文件名和路徑,用戶也可以通過文件名和路徑,用戶也可以通過Browse按按鈕查找該動(dòng)態(tài)鏈接庫(kù)文件鈕查找該動(dòng)態(tài)鏈接庫(kù)文件 ;nFunction NameFunction Name為即將調(diào)用的函數(shù)名,它必須為即將調(diào)用的函數(shù)名

15、,它必須與動(dòng)態(tài)鏈接庫(kù)中函數(shù)創(chuàng)建時(shí)的函數(shù)名相同,并與動(dòng)態(tài)鏈接庫(kù)中函數(shù)創(chuàng)建時(shí)的函數(shù)名相同,并且注意大小寫且注意大小寫 ;nAdd a Parameter BeforeAdd a Parameter Before或或Add a Parameter Add a Parameter AfterAfter可以可以添加函數(shù)的參數(shù)添加函數(shù)的參數(shù),也可用,也可用Delete this Parameter刪除當(dāng)前參數(shù)刪除當(dāng)前參數(shù) ;nParameterParameter選項(xiàng)用于指定任一參數(shù)的類型,也選項(xiàng)用于指定任一參數(shù)的類型,也可指定該函數(shù)返回值的類型。可指定該函數(shù)返回值的類型。 n函數(shù)的參數(shù)名任意函數(shù)的參數(shù)名任

16、意,但其順序和類型必須與動(dòng)但其順序和類型必須與動(dòng)態(tài)鏈接庫(kù)中函數(shù)創(chuàng)建時(shí)的順序和類型一致。態(tài)鏈接庫(kù)中函數(shù)創(chuàng)建時(shí)的順序和類型一致。n需要注意的需要注意的是,上圖所示對(duì)話框中是,上圖所示對(duì)話框中Calling Conventions項(xiàng)的設(shè)置應(yīng)與創(chuàng)建動(dòng)態(tài)鏈接庫(kù)時(shí)的項(xiàng)的設(shè)置應(yīng)與創(chuàng)建動(dòng)態(tài)鏈接庫(kù)時(shí)的編譯模式相一致,否則會(huì)發(fā)生不可預(yù)見的錯(cuò)誤而編譯模式相一致,否則會(huì)發(fā)生不可預(yù)見的錯(cuò)誤而退出程序。退出程序。 n單擊單擊OK按鈕后,就可以將該按鈕后,就可以將該Call Library Function節(jié)點(diǎn)當(dāng)作一個(gè)具有該動(dòng)態(tài)鏈接庫(kù)中被節(jié)點(diǎn)當(dāng)作一個(gè)具有該動(dòng)態(tài)鏈接庫(kù)中被調(diào)函數(shù)功能的節(jié)點(diǎn)來使用。調(diào)函數(shù)功能的節(jié)點(diǎn)來使用。nLa

17、bVIEW還提供了編寫動(dòng)態(tài)鏈接庫(kù)的還提供了編寫動(dòng)態(tài)鏈接庫(kù)的C源代碼源代碼框架,利用此框架編寫動(dòng)態(tài)鏈接庫(kù)的步驟如下:框架,利用此框架編寫動(dòng)態(tài)鏈接庫(kù)的步驟如下:n1 1生成生成C C源代碼框架源代碼框架n 在后面板框圖程序設(shè)計(jì)窗口創(chuàng)建在后面板框圖程序設(shè)計(jì)窗口創(chuàng)建Call Library Function Node,在其圖標(biāo)上單擊右鍵,在其圖標(biāo)上單擊右鍵彈出快捷菜單,選擇彈出快捷菜單,選擇Create .c File命令選項(xiàng),命令選項(xiàng),這時(shí)彈出一個(gè)文件對(duì)話框,在其中鍵入文件名這時(shí)彈出一個(gè)文件對(duì)話框,在其中鍵入文件名(例如:(例如:labview_DLL.c),然后用文本編輯),然后用文本編輯器打開保存的文件,器打開保存的文件,LabVIEW在文件中已經(jīng)在文件中已經(jīng)生成了如下的框架生成了如下的框架 : n/* Call Library source file */n#include extcode.hnvoid funcName(void);nvoid funcName(void)nn/* Insert code here */nn2 2添加源代碼添加源代碼 在生成的在生成的C源代碼框架中源代碼框架中/* Insert code here */處加入用戶需要的函數(shù)體,框

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論