版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本章學(xué)習(xí)要求:1.掌握虛擬儀器的基本概念2.掌握LabVIEW軟件的功能3.了解LabVIEW的編程思想第一章緒論1.1
虛擬儀器的概念
第一章緒論
虛擬儀器是指以計(jì)算機(jī)(PC)和操作系統(tǒng)的高速運(yùn)算和控制能力為基礎(chǔ),結(jié)合高精度高速的I/O接口硬件儀器(PCDAQ卡、GPIB儀器、串并口儀器、PXI/VXI儀器、圖像采集卡)等,并利用(LabVIEW)軟件對(duì)測(cè)控?cái)?shù)據(jù)進(jìn)行用戶自定義的采集、顯示、存儲(chǔ)、運(yùn)算分析和輸出控制,以實(shí)現(xiàn)各種傳統(tǒng)儀器功能的一種計(jì)算機(jī)測(cè)控儀器系統(tǒng)。這里的“虛擬”有兩層含義:
●虛擬的儀器面板;
●由軟件實(shí)現(xiàn)各類儀器的測(cè)控功能(盡可能的使用通用硬件)。1.1虛擬儀器的概念
虛擬儀器的基本結(jié)構(gòu)和類型
GPIBSerialDAQProcessorUnitUnderTestVXIImageAcquisitionMotionControlPXIApplicationSoftwareHardware&DriverSoftware
LabWindows/CVILabVIEW1.1虛擬儀器的概念
待測(cè)模擬信號(hào)信號(hào)處理DSP/FPGA前置預(yù)處理數(shù)據(jù)顯示信號(hào)輸入硬件電子系統(tǒng)A/D轉(zhuǎn)換數(shù)字信號(hào)處理數(shù)據(jù)顯示數(shù)字信號(hào)產(chǎn)生信號(hào)輸出信號(hào)控制待測(cè)模擬信號(hào)輸出模擬信號(hào)D/A轉(zhuǎn)換計(jì)算機(jī)數(shù)字信號(hào)控制數(shù)字信號(hào)產(chǎn)生輸出模擬信號(hào)傳統(tǒng)(數(shù)字)儀器虛擬儀器DAQ卡利用計(jì)算機(jī)強(qiáng)大、高效的數(shù)字信號(hào)處理和控制能力,配合高速高精度的DAQ設(shè)備,實(shí)現(xiàn)與傳統(tǒng)專用儀器相同乃至更強(qiáng)的功能,組成虛擬儀器前置預(yù)處理A/DD/A+PCLabVIEW1.1虛擬儀器的概念
虛擬儀器傳統(tǒng)儀器開放、靈活,可與計(jì)算機(jī)技術(shù)保持同步發(fā)展封閉、固定用戶定義儀器功能廠商定義儀器功能關(guān)鍵是軟件關(guān)鍵是硬件價(jià)格低、可復(fù)用與可重配置性強(qiáng)價(jià)格昂貴技術(shù)更新周期短(1~2年)技術(shù)更新周期長(5~10年)軟件使得開發(fā)與維護(hù)費(fèi)用降至最低開發(fā)與維護(hù)開銷高網(wǎng)絡(luò)化虛擬儀器適合異地或遠(yuǎn)程控制、數(shù)據(jù)采集、故障監(jiān)測(cè)、報(bào)警等功能單一、互聯(lián)有限的獨(dú)立設(shè)備平臺(tái)特性GPIB(IEEE488標(biāo)準(zhǔn))PC-DAQ(典型:PCI總線)PXI(由PCI總線擴(kuò)展而來)總線寬度88,16,32(expandableto64)同PCI總線總線頻率33MHz、66MHz同PCI總線數(shù)據(jù)傳速率1MB/s(3-wire)8MB/s(HS488)典型:132MB/s最高:1064MB/s同PCI總線特點(diǎn)可連接最多14臺(tái)儀器;傳輸距離?、倏芍苯硬迦胗?jì)算機(jī)的PCI插槽,使用靈活方便;②插槽數(shù)有限;③可靠性較差。①完全兼容PCI總線;②通常需要專用的PXI機(jī)箱,可擴(kuò)展到255個(gè)機(jī)箱和上千個(gè)模塊;③可靠性較強(qiáng)。產(chǎn)品種類>10,000>1,000>1,000價(jià)格低廉~昂貴適中較為昂貴適用場(chǎng)合低頻、低速、通道少、對(duì)電磁干擾要求不嚴(yán)高頻、大容量、EMI屏蔽要求高1.1虛擬儀器的概念
典型的虛擬儀器標(biāo)準(zhǔn)體系結(jié)構(gòu)1.1虛擬儀器的概念
GPIB控制方案1.1虛擬儀器的概念
NI-PXIe8103
Embedded
ControllerNI-PXIe1062Q
8槽機(jī)箱PXI系統(tǒng)由三個(gè)基本部分組成——機(jī)箱、系統(tǒng)控制器和外圍模塊。1.1虛擬儀器的概念
典型的DAQ虛擬儀器由四部分構(gòu)成:PCIUSBPCMAIC/(筆記本電腦)1.1虛擬儀器的概念
PC-USBDAQ控制方案第一章緒論1.2
虛擬儀器的軟件簡(jiǎn)介1.I/O接口儀器驅(qū)動(dòng)程序--NIDAQmx
完成特定外部DAQ硬件設(shè)備的設(shè)置、擴(kuò)展、驅(qū)動(dòng)與通信等功能。2.應(yīng)用程序--LabVIEW系列軟件
(包含兩方面功能的程序):實(shí)現(xiàn)虛擬面板功能的軟件程序;
定義測(cè)試功能的流程圖軟件程序。1.2
LabVIEW簡(jiǎn)介
什么是LabVIEW?
LabVIEW(LaboratoryVirtualInstrumentEngineeringWorkbench,實(shí)驗(yàn)室虛擬儀器工程平臺(tái))是美國NI公司推出的一種基于G語言(
GraphicsLanguage,圖形化編程語言)的虛擬儀器軟件開發(fā)工具。
1.2
LabVIEW簡(jiǎn)介
LabVIEW軟件的特點(diǎn)
采用數(shù)據(jù)流編程模式,是能夠同時(shí)運(yùn)行多個(gè)程序的多任務(wù)系統(tǒng)。提供了豐富的用于數(shù)據(jù)采集、信號(hào)分析、圖形表達(dá)/數(shù)據(jù)存儲(chǔ)、控制運(yùn)算等的函數(shù)庫。
提供如設(shè)置斷點(diǎn)、單步運(yùn)行,高亮執(zhí)行等調(diào)試工具,使程序的調(diào)試和開發(fā)更為便捷。內(nèi)置了PCI、DAQ、GPIB、PXI、VXI、RS-232和RS485在內(nèi)的各種儀器通信總線標(biāo)準(zhǔn)的所有功能函數(shù),支持?jǐn)?shù)據(jù)采集卡和GPIB、串口設(shè)備、VXI儀器、PLC、工業(yè)現(xiàn)場(chǎng)總線以及用戶特殊的硬件板卡。1.2
LabVIEW簡(jiǎn)介
具有強(qiáng)大的外部接口能力,可以實(shí)現(xiàn)LabVIEW與外部的應(yīng)用軟件(如Word,Excel等)、C語言、WindowsAPI、MATLAB等編程語言之間的通信。強(qiáng)大的
Internet功能,內(nèi)置了便于應(yīng)用TCP/IP、DDE、ActiveX等軟件標(biāo)準(zhǔn)的庫函數(shù)。支持常用網(wǎng)絡(luò)協(xié)議,方便網(wǎng)絡(luò)、遠(yuǎn)程測(cè)控儀器的開發(fā)。支持多操作系統(tǒng)平臺(tái)可直接移植到其它平臺(tái)上1.3
LabVIEW與虛擬儀器的應(yīng)用第一章緒論一、信號(hào)分析二、遠(yuǎn)程在線監(jiān)測(cè)三、工業(yè)測(cè)控四、系統(tǒng)仿真1.3
LabVIEW與虛擬儀器的應(yīng)用
波音公司使用NIPXI硬件平臺(tái)和LabVIEW軟件定位飛機(jī)起降時(shí)的噪聲使用NI的PXI控制器、機(jī)箱、動(dòng)態(tài)信號(hào)分析儀和LabVIEW軟件來設(shè)計(jì)一個(gè)可升級(jí)的分布式測(cè)試系統(tǒng),該系統(tǒng)擁有嚴(yán)格的定時(shí)和同步功能,用于在飛機(jī)低空飛行測(cè)試時(shí)進(jìn)行相控陣數(shù)據(jù)采集。
把采集系統(tǒng)分布地放置在多個(gè)機(jī)箱中,嚴(yán)格同步所有的通道,而且可以允許無限數(shù)量的通道數(shù)擴(kuò)展。需要的電纜數(shù)量是原來的1/5,使麥克風(fēng)系統(tǒng)的成本降低為原來的1/30600多個(gè)基地麥克風(fēng)按照自定義的螺旋狀方式安裝在一個(gè)250英尺寬、300英尺長的跑道區(qū)域的末端,多個(gè)PXI系統(tǒng)中的采集通道分別連接到麥克風(fēng)上。在777-300ER飛機(jī)飛過頭頂時(shí),獲取它發(fā)出的噪音,使用LabVIEW軟件立即恢復(fù)并處理數(shù)據(jù),然后得到一幅該飛機(jī)的聲學(xué)成像圖。一個(gè)數(shù)據(jù)處理計(jì)算機(jī)集群通過千兆網(wǎng)連接到主計(jì)算機(jī)上,用于對(duì)這些數(shù)據(jù)和圖像進(jìn)行實(shí)時(shí)分析。超過600個(gè)麥克風(fēng)的數(shù)據(jù)被采集并分析1.3
LabVIEW與虛擬儀器的應(yīng)用
使用LabVIEW和NI硬件精確安全地測(cè)量胎兒心率(FHR)采用LabVIEW來實(shí)現(xiàn)調(diào)制信號(hào)生成,經(jīng)NIUSB9474數(shù)字輸出模塊在計(jì)數(shù)器端生成725Hz的信號(hào)驅(qū)動(dòng)LED照射孕婦,使用24位的NIUSB-9239DAQ采集經(jīng)母親和胎兒的血液脈動(dòng)調(diào)制后的信號(hào),然后采用LabVIEW來實(shí)現(xiàn)同步檢測(cè)算法、降采樣、高通濾波、自適應(yīng)噪聲消除(ANC)等算法后從混合信號(hào)中提取胎兒的光電血管容積圖(PPG)信號(hào),從而分析胎兒心率。此方法既可避免傳統(tǒng)的超聲波檢測(cè)法對(duì)胎兒的傷害,又可避免胎兒心電圖(FECG)法的復(fù)雜步驟??肆_地亞VESKI公司推出基于LabVIEW的水電設(shè)備在線監(jiān)測(cè)系統(tǒng)1.3
LabVIEW與虛擬儀器的應(yīng)用
水電設(shè)備的現(xiàn)代化監(jiān)控系統(tǒng)通常要求采集振動(dòng)、溫度、壓力、流量等一系列數(shù)據(jù),并同步維護(hù)一個(gè)儲(chǔ)存相關(guān)信息的數(shù)據(jù)庫。VESKI基于NILabVIEW開發(fā)開發(fā)的CoDiS
系統(tǒng)可以監(jiān)控發(fā)電機(jī)的一系列參數(shù),如:相對(duì)軸振、絕對(duì)轉(zhuǎn)子振動(dòng)、定子和基座的動(dòng)態(tài)特性、空氣間隙狀態(tài)、轉(zhuǎn)子極磁通、電氣參數(shù)(電壓,電流)、有功功率/無功功率、以及大型旋轉(zhuǎn)電機(jī)的水力學(xué)參數(shù)(效率η),被客戶稱為“水電站的健康顧問”。整個(gè)系統(tǒng)通過其網(wǎng)口可以與中央處理器的數(shù)據(jù)庫通信;而LabVIEW
聲音與振動(dòng)工具包提供了很多現(xiàn)成的分析工具,可以直接計(jì)算出總諧波失真(THD)等分析結(jié)果。1.3
LabVIEW與虛擬儀器的應(yīng)用
1.3
LabVIEW與虛擬儀器的應(yīng)用
基于LabVIEW的輪缸壓力測(cè)試仿真系統(tǒng)受高速開關(guān)閥電磁鐵的響應(yīng)能力及閥芯運(yùn)動(dòng)時(shí)間的影響,實(shí)際的閥芯響應(yīng)不能完全跟隨脈寬信號(hào)的變化,脈沖調(diào)制周期和占空比對(duì)其影響很大。因此需要搭建如圖所示的測(cè)試仿真平臺(tái),得到在不同的載波頻率下得到不同的增減壓力曲線。綜合考慮控制的快速性和有效的占空比調(diào)節(jié)范圍選擇合適的載波頻率。第一章緒論1.4
課程學(xué)習(xí)的網(wǎng)絡(luò)資源-非常精彩的海量中文資料和視頻,而且免費(fèi)?!太令人興奮了!請(qǐng)到百度中輸入“NI中國”。本章學(xué)習(xí)要求:1.掌握LabVIEW軟件的程序設(shè)計(jì)與調(diào)試技術(shù)2.掌握子VI的創(chuàng)建及調(diào)用第二章LabVIEW程序設(shè)計(jì)入門2.1VI的創(chuàng)建第二章LabVIEW程序設(shè)計(jì)入門使用LabVIEW開發(fā)平臺(tái)編制的程序稱為虛擬儀器(VirtualInstruments)程序,簡(jiǎn)稱為VI。
它包括前面板(FrontPanel)、程序框圖(BlockDiagram)以及圖標(biāo)/連接線(Icon/Connector)三部分。
2.1VI的創(chuàng)建
2.1.1前面板:用于模擬真實(shí)儀表的操作面板,即圖形化用戶界面,在VI中用于設(shè)置輸入數(shù)值和觀察輸出量。
前面板構(gòu)成:控制(Control)、顯示(Indicator)和修飾(Decoration)構(gòu)成。
控制(輸入):用戶設(shè)置和修改VI輸入量的接口;
顯示:顯示VI輸出數(shù)據(jù)或圖形;
修飾:對(duì)前面板進(jìn)行美化、裝飾。
控制和顯示統(tǒng)稱為控件。2.1VI的創(chuàng)建
前面板的控件模板:每個(gè)圖標(biāo)代表一類子模板。2.1VI的創(chuàng)建
區(qū)分控制和顯示的辦法:程序框圖中箭頭的指向2.1VI的創(chuàng)建
2.1.2程序框圖:與傳統(tǒng)儀器中的電子線路、硬件模塊和信號(hào)處理(DSP)模塊的功能類似,在VI中用于實(shí)現(xiàn)數(shù)據(jù)采集、信號(hào)分析與處理、輸出控制等功能。
2.1VI的創(chuàng)建
函數(shù)模板:
是創(chuàng)建流程圖程序的工具。
該模板上的每一個(gè)頂層圖標(biāo)都表示一個(gè)子模板。
2.1VI的創(chuàng)建
2.1.3創(chuàng)建VI的一般步驟
1.選擇創(chuàng)建一個(gè)新的VI;
2.創(chuàng)建VI前面板;
3.創(chuàng)建框圖程序;
4.保存VI。
例:每隔500ms產(chǎn)生一個(gè)隨機(jī)數(shù),用波形圖表顯示該隨機(jī)數(shù)的大小,且當(dāng)隨機(jī)數(shù)大于0.5時(shí),報(bào)警指示燈亮。2.1VI的創(chuàng)建
1、選擇創(chuàng)建一個(gè)新的VI2.1VI的創(chuàng)建
2、創(chuàng)建VI的前面板2.1VI的創(chuàng)建
3、創(chuàng)建VI的程序框圖2.1VI的創(chuàng)建
4、運(yùn)行結(jié)果2.2VI的運(yùn)行與調(diào)試第二章LabVIEW程序設(shè)計(jì)入門
2.2.1運(yùn)行VI
1.運(yùn)行VI
2.連續(xù)運(yùn)行VI
3.停止運(yùn)行VI
4.暫停VI運(yùn)行2.2VI的運(yùn)行與調(diào)試2.2.2調(diào)試VI
1.單步執(zhí)行VI
(1)單步(入)執(zhí)行
(2)單步(跳)執(zhí)行
(3)單步(出)2.2VI的運(yùn)行與調(diào)試2.設(shè)置斷點(diǎn)
將工具模板中鼠標(biāo)切換到斷點(diǎn)工具狀態(tài),單擊框圖程序中需設(shè)置斷點(diǎn)的地方即可。2.2VI的運(yùn)行與調(diào)試3.設(shè)置探針
將工具模板總鼠標(biāo)切換到探針工具狀態(tài),單擊框圖程序中需查看的數(shù)據(jù)連線,會(huì)彈出一個(gè)對(duì)話框,若有數(shù)據(jù)流過,即顯示該數(shù)據(jù)值。2.2VI的運(yùn)行與調(diào)試4.顯示數(shù)據(jù)流動(dòng)動(dòng)畫
單擊工具條中
運(yùn)行VI,再框圖程序上實(shí)時(shí)顯示程序執(zhí)行過程。通常和單步結(jié)合使用。2.2VI的運(yùn)行與調(diào)試
課堂練習(xí):創(chuàng)建一個(gè)VI程序模擬溫度測(cè)量,用溫度計(jì)顯示溫度,其攝氏溫度值用隨機(jī)數(shù)生成VI乘上100來模擬。本程序可以分別顯示攝氏溫度和華氏溫度:華氏溫度=攝氏溫度*1.8+32。2.3創(chuàng)建和調(diào)用子VI第二章LabVIEW程序設(shè)計(jì)入門
子VI(SubVI)相當(dāng)于普通編程語言中的子程序,也就是被其他的
VI調(diào)用的VI。在程序框圖中打開函數(shù)?選擇VI….,就可以選擇要調(diào)用的子
VI。構(gòu)造一個(gè)子VI主要的工作就是定義它的圖標(biāo)和聯(lián)接器。1.創(chuàng)建VI圖標(biāo)每個(gè)VI在前面板和流程圖窗口的右上角都顯示了一個(gè)默認(rèn)的圖標(biāo)。啟動(dòng)圖標(biāo)編輯器的方法是,用鼠標(biāo)右鍵單擊面板窗口的右上角的默認(rèn)圖標(biāo),在彈出菜單中選擇“編輯圖標(biāo)”。2.創(chuàng)建連線板2.3
創(chuàng)建和調(diào)用子VI
創(chuàng)建連線板的方法是:用鼠標(biāo)右鍵單擊面板窗口中的圖標(biāo)窗口,在快捷菜單中選擇“顯示連接板”。
連接線圖標(biāo)會(huì)取代面板窗口右上角的圖標(biāo)。LabVIEW
自動(dòng)選擇的端子連接模式是控制對(duì)象的端子位于聯(lián)接器窗口的左邊,顯示對(duì)象的端子位于聯(lián)接器窗口右邊。2.3
創(chuàng)建和調(diào)用子VI例:產(chǎn)生一個(gè)隨機(jī)數(shù)并顯示,當(dāng)數(shù)值大于報(bào)警限時(shí),報(bào)警燈亮。將該VI生成一個(gè)子VI并保持。第一步.創(chuàng)建VI的前面板和程序框圖2.3
創(chuàng)建和調(diào)用子VI第二步.創(chuàng)建子VI的圖標(biāo)
右鍵點(diǎn)擊前面板或程序框圖窗口右上角的圖標(biāo),選擇“編輯圖標(biāo)”。
一般來說,很難把圖標(biāo)弄得美觀…..2.3
創(chuàng)建和調(diào)用子VI第三步.創(chuàng)建連線板
右鍵點(diǎn)擊前面板窗口右上角的圖標(biāo),選擇“顯示連線板”>>“模式”。因本例只有1個(gè)控制和2個(gè)顯示,所以選擇如圖所示的模式,每個(gè)方塊為一個(gè)連線端口第四步.連線板定義
用連線工具單擊連線板左邊的輸入窗口,該端口將變成黑色。然后再用連線工具單擊前面板上的“報(bào)警限”控件,則該端口變成與“報(bào)警限”控件的數(shù)據(jù)類型相同的顏色(棕色)。2.3
創(chuàng)建和調(diào)用子VI
如法炮制,
用連線工具單擊連線板右邊的輸出窗口,然后再用連線工具單擊前面板上的“隨機(jī)數(shù)值”和“報(bào)警燈”控件,則這2個(gè)端口變成與“隨機(jī)數(shù)值”和“報(bào)警燈”控件數(shù)據(jù)類型相同的顏色(棕色、綠色)。第五步.保存VI
定義完連線板的連接端口,就完成了子VI的創(chuàng)建,保存該子VI后,就可以在其它VI中調(diào)用它。3.調(diào)用子VI2.3
創(chuàng)建和調(diào)用子VI調(diào)用子VI的步驟:
1.在”函數(shù)“模板中選擇”選擇“選擇VI”,到子VI的保存路徑中進(jìn)行選擇;
2.將子VI的圖標(biāo)放入主VI框圖程序中;
3.連線。本章學(xué)習(xí)要求:1.掌握LabVIEW中的數(shù)據(jù)類型及操作2.學(xué)習(xí)常用數(shù)組、簇函數(shù)的使用3.
掌握For、While循環(huán)、Case結(jié)構(gòu)和順序結(jié)構(gòu)的操作4.掌握各類波形圖表控件的特性及操作5.掌握各類文件的讀寫操作第三章數(shù)據(jù)類型與程序結(jié)構(gòu)第三章數(shù)據(jù)類型與程序結(jié)構(gòu)3.1
LabVIEW中的數(shù)據(jù)類型及操作認(rèn)識(shí)數(shù)據(jù)類型的概念,編程時(shí)需要明確函數(shù)和子VI每一個(gè)數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)匹配;學(xué)習(xí)要點(diǎn)3.1LabVIEW中的數(shù)據(jù)類型與操作
LabVIEW的數(shù)據(jù)按類型有數(shù)值型、布爾(邏輯)型、字符串型、文件路徑等幾類,在結(jié)構(gòu)上有標(biāo)量、一維數(shù)組、多維數(shù)組和簇等。編程時(shí)需要注意數(shù)據(jù)連線匹配。3.1LabVIEW中的數(shù)據(jù)類型與操作
3.1.1數(shù)值型對(duì)象數(shù)據(jù)類型隱含在前面板的控制(輸入信號(hào))和指示(輸出信號(hào)中);使用右鍵快捷菜單來改變數(shù)值型控制與指示對(duì)象的屬性:數(shù)值大小、數(shù)據(jù)類型、數(shù)據(jù)范圍和精度等;數(shù)值型常量只能在程序框圖窗口中創(chuàng)建。3.1.1
數(shù)值型對(duì)象及操作
數(shù)值型對(duì)象的操作:在函數(shù)模板的Numeric子模板下,提供了大量的函數(shù)供調(diào)用,常用的初等數(shù)學(xué)運(yùn)算功能都可以用這些函數(shù)實(shí)現(xiàn);在數(shù)學(xué)模板下面有大量的高等數(shù)學(xué)運(yùn)算VI;還可以使用另外2個(gè)ExpressVI:公式VI、時(shí)域信號(hào)處理函數(shù)VI。3.1LabVIEW中的數(shù)據(jù)類型與操作
3.1.2布爾型對(duì)象及操作布爾型對(duì)象的值為真(True)或假(False),其最常應(yīng)用于條件判斷中;布爾量在測(cè)試虛擬儀器程序設(shè)計(jì)中承擔(dān)著重要的控制與指示功能:如開始或結(jié)束一個(gè)過程;判斷某個(gè)物理量是否處于合理范圍等,并可在程序中起到提示和預(yù)警等作用。3.1.1
數(shù)值型對(duì)象及操作
布爾控制的機(jī)械動(dòng)作布爾型控制的一個(gè)重要屬性是它的機(jī)械動(dòng)作屬性(mechanicalaction),它可以模擬實(shí)際開關(guān)觸點(diǎn)的開/閉特性;在布爾型控制上用右鍵彈出快捷菜單,選中其中的機(jī)械動(dòng)作(MechanicalAction項(xiàng)),以設(shè)置該布爾型控制的機(jī)械動(dòng)作屬性;布爾型控制共有6種不同的機(jī)械動(dòng)作屬性。3.1.1
布爾型對(duì)象及操作
課堂練習(xí)
:修改布爾開關(guān)的機(jī)械動(dòng)作(演示).3.1LabVIEW中的數(shù)據(jù)類型與操作
3.1.3字符型對(duì)象和文件路徑控件創(chuàng)建字符串控制器和指示器:3.1.3字符型對(duì)象和文件路徑控件字符串控件的菜單選項(xiàng)
1、顯示模式:在字符串對(duì)象上單擊鼠標(biāo)右鍵彈出字符串菜單選項(xiàng)2.滾動(dòng)條(Scrollbar)3.“鍵入時(shí)刷新”選項(xiàng)
在程序運(yùn)行過程中,字符串顯示器的內(nèi)容將會(huì)隨著字符的輸入而改變,無需用戶按動(dòng)鍵盤上的回車按鈕或工具欄的確認(rèn)按鈕進(jìn)行輸入確認(rèn)。3.1.3字符型對(duì)象和文件路徑控件3.1.3字符型對(duì)象和文件路徑控件創(chuàng)建文件路徑控件常用字符串函數(shù)1.StringLength(字符串長度)函數(shù):2.ConcatenateString(連接字符串)函數(shù)3.StringSubset(從字符串提取子串)函數(shù)4.MatchPattern(查找匹配字串)函數(shù)5.FormatIntoString(格式化字符串)函數(shù)6.數(shù)據(jù)、文件路徑與字符串轉(zhuǎn)換的函數(shù)3.1.3字符型對(duì)象和文件路徑控件字符串函數(shù)應(yīng)用舉例例、MatchPattern(查找匹配字符串)函數(shù)的使用。3.1.3字符型對(duì)象和文件路徑控件3.1.3字符型對(duì)象和文件路徑控件課堂練習(xí):使用字符串函數(shù)等設(shè)計(jì)一個(gè)VI,在前面板輸入密碼,密碼輸入時(shí)顯示*,檢測(cè)輸入密碼與設(shè)定密碼(可設(shè)置為“password”)是否匹配,如果不匹配則提示“密碼錯(cuò)誤”,若密碼匹配則在一個(gè)字符顯示框中顯示系統(tǒng)當(dāng)前的日期和時(shí)間。3.2
數(shù)組
數(shù)組是相同類型數(shù)據(jù)元素的有序集合創(chuàng)建數(shù)組的方法:前面板數(shù)組&矩陣&簇子模板創(chuàng)建各種數(shù)組控件;程序框圖窗口的數(shù)組子模板創(chuàng)建數(shù)組常量;利用循環(huán)結(jié)構(gòu)的自動(dòng)索引功能創(chuàng)建數(shù)組第三章數(shù)據(jù)類型與程序結(jié)構(gòu)3.2數(shù)組3.2.1創(chuàng)建數(shù)組
1、在前面板創(chuàng)建數(shù)組控件:創(chuàng)建一個(gè)數(shù)組有兩件事要做,首先要建一個(gè)數(shù)組的“殼”(shell),然后在這個(gè)殼中置入數(shù)組元素(數(shù)或字符串等)。1)放置數(shù)組框(數(shù)組殼)3.1數(shù)組2)定義數(shù)組類型(把一個(gè)數(shù)值對(duì)象,例如數(shù)值型、字符型或布爾型拖曳到數(shù)組殼中)3.2數(shù)組數(shù)組元素的顯示(用鼠標(biāo)拖曳拉大數(shù)組外殼)多維數(shù)組創(chuàng)建方法3.2數(shù)組2、在程序框圖創(chuàng)建數(shù)組常量
常數(shù)數(shù)組空殼布爾常數(shù)數(shù)組3.2數(shù)組3.2.2利用循環(huán)的自動(dòng)索引功能創(chuàng)建數(shù)組什么是循環(huán)的自動(dòng)索引?
ForLoop
和WhileLoop
結(jié)構(gòu)都可以在它們的邊界自動(dòng)索引數(shù)組或積聚數(shù)組,這一匯集數(shù)據(jù)的能力稱為自動(dòng)索引。例
:利用ForLoop創(chuàng)建一維數(shù)組3.2數(shù)組例:利用ForLoop創(chuàng)建二維數(shù)組3.2數(shù)組例:利用自動(dòng)索引計(jì)算數(shù)組元素的平方和當(dāng)把數(shù)組傳送到一個(gè)自動(dòng)索引有效的For循環(huán)中,LabVIEW將自動(dòng)把循環(huán)次數(shù)設(shè)置為數(shù)組長度,這樣就可以不再需要把循環(huán)次數(shù)連接到For循環(huán)的計(jì)數(shù)端子N上3.2數(shù)組注意:對(duì)于ForLoop結(jié)構(gòu)的每一個(gè)數(shù)組,其缺省為自動(dòng)索引使能,相反接入WhileLoop結(jié)構(gòu)的每一個(gè)數(shù)組,其缺省值為關(guān)閉自動(dòng)索引。決定For循環(huán)次數(shù)的是數(shù)組的長度而不是N,這是因?yàn)閿?shù)組的長度比N小。3.2數(shù)組3.2.3利用數(shù)組函數(shù)進(jìn)行數(shù)組操作數(shù)組(Array)函數(shù)選項(xiàng)板3.2數(shù)組
1、創(chuàng)建數(shù)組:BuildArray函數(shù)(用于根據(jù)標(biāo)量值或者其他的數(shù)組創(chuàng)建一個(gè)數(shù)組)。例:將3個(gè)字符串常數(shù)放入一個(gè)一維字符串?dāng)?shù)組中例:將三組一維數(shù)值數(shù)組組成一個(gè)二維數(shù)組3.2數(shù)組若在函數(shù)彈出菜單選擇“連接輸入”項(xiàng),則函數(shù)會(huì)將兩個(gè)數(shù)組按輸入順序合并成一個(gè)一維數(shù)組輸出輸出二維數(shù)組輸出一維數(shù)組
3.1數(shù)組2.ArraySize(數(shù)組大小)函數(shù)3.InitializeArray(初始化數(shù)組,所有元素相同)3.2數(shù)組4.ArraySubset(數(shù)組子集
)函數(shù)例:ArraySubset函數(shù)的使用3.2數(shù)組5.IndexArray(索引數(shù)組)
函數(shù):用于訪問數(shù)組中指定位置的元素3.2數(shù)組例:使用索引數(shù)組從數(shù)組中提取一行或一列
IndexArray函數(shù)既可從數(shù)組中抽取一個(gè)標(biāo)量元素。也可用于從一個(gè)二維數(shù)組中抽取一行或一列來產(chǎn)生一個(gè)原數(shù)組的子數(shù)組。課堂練習(xí)3.2數(shù)組找出如圖所示二維數(shù)組中的最大、最小值及位置,以及數(shù)值“8”在數(shù)組中的行、列位置。3.2數(shù)組3.2數(shù)組3.2.4函數(shù)的多態(tài)性(Polymorphism)概念多態(tài)性是指函數(shù)可以接受不同類型、不同維數(shù)或不同表示法的輸入數(shù)據(jù)的能力。大多數(shù)G語言函數(shù)都是多態(tài)化的。3.3
簇(Clusters)什么是簇?簇是由不同類型的數(shù)據(jù)元素組成的一種數(shù)據(jù)類型,類似于C語言中的Structure結(jié)構(gòu)體類型數(shù)據(jù)。簇具有固定的大小。可以包含不同的數(shù)據(jù)類型。簇通常用于將出現(xiàn)在框圖上的有關(guān)數(shù)據(jù)元素分組管理。因?yàn)榇卦诳驁D中僅用惟一的連線在框圖上,只有當(dāng)簇具有相同類型、相同元素?cái)?shù)量和相同元素順序時(shí),才可以將簇的端子連接多態(tài)性應(yīng)用于簇時(shí),需要簇具有相同元素?cái)?shù)量和相同元素順序第三章數(shù)據(jù)類型與程序結(jié)構(gòu)3.3
簇
3.3.1簇的創(chuàng)建在前面板上放置簇框架(clustershell)創(chuàng)建簇控件和指示器。將數(shù)字、布爾型、字符串、圖表、圖形、數(shù)組等任意組合放進(jìn)來創(chuàng)建。簇可以包含控制或指示器,但兩者不能同時(shí)存在。一個(gè)簇成為控制簇或指示器簇取決于放進(jìn)簇中的第一個(gè)元素。如果放進(jìn)簇框架中的第一個(gè)元素是控制,后來給簇添加的任何對(duì)象都將變成控制對(duì)象。3.3
簇
(a)混合簇控制件(b)混合簇指示器(c)數(shù)值型簇控制件a.混合簇控制端點(diǎn)b.混合簇指示端點(diǎn)c.數(shù)值型控制簇3.3
簇
3.3.2簇函數(shù)注意:如果要訪問簇中單個(gè)元素,必須記住簇順序,因?yàn)榇刂械膯蝹€(gè)元素是按順序而不是按名字訪問的。例:Bundle函數(shù)的使用。1.Bundle(捆綁)函數(shù)2.Unbundle(解捆)函數(shù)例:將一個(gè)簇中的各個(gè)元素值分別取出3.3
簇
例:修改簇中某些元素的值。3.3
簇
3.3.3數(shù)組和簇的互換在編程中,有時(shí)需要將數(shù)組變?yōu)榇?,而有時(shí)卻要將簇變?yōu)閿?shù)組??梢允褂霉δ蹸lustertoArray將簇轉(zhuǎn)換為數(shù)組,在進(jìn)行完數(shù)組的操作后再利用ArraytoClaster
變換回簇。第三章數(shù)據(jù)類型與程序結(jié)構(gòu)3.4
波形數(shù)據(jù)(Waveform)波形數(shù)據(jù)實(shí)際上是一種特殊數(shù)據(jù)記錄類型文件,在每個(gè)記錄中可以包含一個(gè)或多個(gè)波形的數(shù)據(jù)。一個(gè)波形數(shù)據(jù)包括采樣開始時(shí)間t0,采樣間隔dt
和采樣數(shù)據(jù)
y[](
單精度數(shù)組)三部分信息。3.4
波形數(shù)據(jù)例:將聲卡的通道2采樣波形存儲(chǔ)在D盤根目錄下,命名為“聲音記錄文件”3.4
波形數(shù)據(jù)例:將上例保存在D盤根目錄下的“聲音記錄文件”讀出并顯示第三章數(shù)據(jù)類型與程序結(jié)構(gòu)3.5
局部變量與全局變量局部變量和全局變量可以在程序的不同位置之間進(jìn)行數(shù)據(jù)傳遞而不必進(jìn)行連線;局部變量適用于在同一個(gè)VI程序中控制初始化、協(xié)調(diào)控制功能、臨時(shí)保存數(shù)據(jù)和傳遞數(shù)據(jù)。全局變量可在不同VI之間交換數(shù)據(jù);一個(gè)變量一定是與一個(gè)前面板對(duì)象相關(guān)聯(lián)的。3.5
局部變量與全局變量3.5.1局部變量(只能在同一個(gè)VI中使用的變量)一、創(chuàng)建局部變量的方法(演示)3.5
局部變量與全局變量二、
局部變量的讀寫屬性
寫屬性:修改局部變量的值讀屬性:從局部變量中取數(shù)據(jù)
讀寫屬性的設(shè)置方法(可為一個(gè)面板對(duì)象建立多個(gè)局部變量)3.5
局部變量與全局變量三、局部變量的應(yīng)用實(shí)例
例:用一個(gè)布爾開關(guān)控制一個(gè)LED循環(huán)閃爍。在該VI中,為開關(guān)創(chuàng)建了2個(gè)局部變量,其中一個(gè)為“寫”屬性,另一個(gè)為“讀”屬性。3.5
局部變量與全局變量3.5.2全局變量(可在不同VI中進(jìn)行數(shù)據(jù)傳遞)一.、全局變量的創(chuàng)建
必須將全局變量聲明在一個(gè)特殊的VI文件中
1.打開一個(gè)新VI,從程序框圖函數(shù)
->結(jié)構(gòu)模板選擇全局變量
,將其放置在框圖程序上。
2.使用操作工具雙擊全局變量節(jié)點(diǎn),自動(dòng)打開全局變量VI的前面板。
3.在前面板放置所需的控制或顯示對(duì)象,為每個(gè)對(duì)象命名。
4.保存全局變量文件。
5.關(guān)閉全局變量的前面板窗口。
6.返回第一步打開的文件,可使用全局變量。3.5
局部變量與全局變量二、全局變量的使用1.在VI的框圖程序中,選擇函數(shù)
->選擇VI,在彈出的ChoosetheVItoopen對(duì)話框中選擇所需的全局變量聲明文件,按下打開按鈕,在框圖程序放置一個(gè)默認(rèn)的全局變量2.右擊全局變量節(jié)點(diǎn),在彈出菜單中選擇選擇項(xiàng),選擇所需對(duì)象。3.若在一個(gè)VI中需要使用多個(gè)全局變量,可使用拷貝和粘貼全局變量的方法,或使用選擇工具選中一個(gè)全局變量,同時(shí)按《ctr〉鍵,采用拖曳拷貝的方法。3.5
局部變量與全局變量3.5.3、局部變量和全局變量的特點(diǎn)1.不宜過多使用局部變量和全局變量,因?yàn)檫@2個(gè)節(jié)點(diǎn)沒有體現(xiàn)出LabVIEW的數(shù)據(jù)流特點(diǎn)。2.過多使用局部變量和全局變量會(huì)降低VI的可讀性和維護(hù)性,還會(huì)占用一定的內(nèi)存空間。3.5
局部變量與全局變量練習(xí):
利用全局變量在
VI之間傳遞數(shù)據(jù)。(P88,例3-23)第三章數(shù)據(jù)類型與程序結(jié)構(gòu)3.6
程序結(jié)構(gòu)程序結(jié)構(gòu)是控制G語言程序數(shù)據(jù)流向的控制節(jié)點(diǎn),G語言通常包含以下結(jié)構(gòu):
ForLoop結(jié)構(gòu)
Whileloop
結(jié)構(gòu),
Case結(jié)構(gòu),
Sequence(順序)結(jié)構(gòu)
公式節(jié)點(diǎn)事件結(jié)構(gòu)有哪些程序結(jié)構(gòu)?3.6
程序結(jié)構(gòu)
For循環(huán)的創(chuàng)建與組成
For循環(huán)將某程序段重復(fù)執(zhí)行預(yù)先設(shè)定的次數(shù).For循環(huán)的創(chuàng)建For循環(huán)的組成3.6.1For循環(huán)結(jié)構(gòu)3.6.1For循環(huán)結(jié)構(gòu)在指定次數(shù)的重復(fù)操作完成之前,F(xiàn)or循環(huán)控制VI執(zhí)行重復(fù)操作。For循環(huán)和While循環(huán)之間的差別是:For循環(huán)的次數(shù)是預(yù)先指定的;While循環(huán)則一直執(zhí)行,直到輸入條件變?yōu)镕alse為止。For循環(huán)具有以下兩個(gè)端子:
N:計(jì)數(shù)端子(輸入端子)——用于指定循環(huán)執(zhí)行的次數(shù)。
I:周期端子(輸出端子)——含有循環(huán)已經(jīng)執(zhí)行的次數(shù)。3.6.1For循環(huán)結(jié)構(gòu)例:使用For循環(huán)顯示隨機(jī)數(shù)序列。使用
HighlightExecution方式運(yùn)行程序注意:循環(huán)計(jì)數(shù)器顯示從0~9,而不是1~10。3.6.1For循環(huán)結(jié)構(gòu)
移位寄存器概念:移位寄存器用于While循環(huán)和For循環(huán)。使用移位寄存器可在循環(huán)體的循環(huán)之間傳遞數(shù)據(jù),其功能是將上一次循環(huán)的值傳給下一次循環(huán)。創(chuàng)建移位寄存器的方法:移位寄存器
數(shù)據(jù)在移位寄存器中的傳遞同一個(gè)移位寄存器端子上的數(shù)據(jù)必須是同一類型的。移位寄存器存儲(chǔ)數(shù)據(jù)類型:
數(shù)字、布爾值、字符串、數(shù)組等。3.6.1For循環(huán)結(jié)構(gòu)3.6.1For循環(huán)結(jié)構(gòu)
初始化移位寄存器兩次運(yùn)行VI結(jié)果未初始化移位寄存器兩次運(yùn)行VI情況
初始化移位寄存器多個(gè)移位寄存器的建立
添加多個(gè)移位寄存器,可以訪問前幾次循環(huán)的數(shù)據(jù)3.6.1For循環(huán)結(jié)構(gòu)例:
使用For循環(huán)與移位寄存器實(shí)現(xiàn)N!的運(yùn)算
voidmain(){inta=1,i,n;
scanf(“%d”,&n);
for(i=0;i<n;i++){a=a*i;
}
printf(“n!=%d”,a);}3.6.1For循環(huán)結(jié)構(gòu)例:使用ForLoop結(jié)構(gòu)和移位寄存器
練習(xí)目的:使用ForLoop和移位寄存器計(jì)算隨機(jī)數(shù)列中的最大值。3.6.1For循環(huán)結(jié)構(gòu)3.6.1For循環(huán)結(jié)構(gòu)自動(dòng)索引:
ForLoop和WhileLoop結(jié)構(gòu)都可以在它們的邊界自動(dòng)索引數(shù)組或積聚數(shù)組,這一匯集數(shù)據(jù)的能力稱為自動(dòng)索引
當(dāng)把數(shù)組傳送到一個(gè)自動(dòng)索引有效的For循環(huán)中,LabVIEW將自動(dòng)把循環(huán)次數(shù)設(shè)置為數(shù)組長度,這樣就可以不再需要把循環(huán)次數(shù)連接到For循環(huán)的計(jì)數(shù)端子N上。
對(duì)于ForLoop結(jié)構(gòu)的每一個(gè)數(shù)組,其缺省為自動(dòng)索引使能,相反接入WhileLoop結(jié)構(gòu)的每一個(gè)數(shù)組,其缺省值為關(guān)閉自動(dòng)索引。3.6.1For循環(huán)結(jié)構(gòu)例:利用自動(dòng)索引計(jì)算數(shù)組元素的平方和
開啟自動(dòng)索引后,有數(shù)組輸入時(shí),循環(huán)框外的(一維)數(shù)組的元素就會(huì)被依次導(dǎo)入循環(huán)。
關(guān)閉自動(dòng)索引后,有數(shù)組輸入時(shí),循環(huán)框外的(一維)數(shù)組的全部元素就會(huì)被一次性導(dǎo)入循環(huán)。3.6.1For循環(huán)結(jié)構(gòu)
開啟自動(dòng)索引后,有數(shù)組輸出時(shí),循環(huán)框內(nèi)積累的(一維)數(shù)組的元素就會(huì)一次性導(dǎo)出循環(huán)。
關(guān)閉自動(dòng)索引后,有數(shù)組輸出時(shí),F(xiàn)OR循環(huán)將輸出標(biāo)量數(shù)據(jù)的最后一個(gè)數(shù)據(jù),或二維數(shù)組的最后一組數(shù)據(jù)。
課堂練習(xí):①使用ForLoop和移位寄存器計(jì)算N個(gè)隨機(jī)數(shù)的平均值。②使用ForLoop、自動(dòng)索引功能和數(shù)組函數(shù)計(jì)算N個(gè)隨機(jī)數(shù)的平均值。3.6.1For循環(huán)結(jié)構(gòu)3.6.1For循環(huán)結(jié)構(gòu)3.6
程序結(jié)構(gòu)3.6.2While循環(huán)結(jié)構(gòu)
WhileLoop:可以反復(fù)執(zhí)行循環(huán)內(nèi)的框圖程序,直到特定條件滿足,停止循環(huán)。
do{
循環(huán)體;
}while(條件判斷)3.6.2While
循環(huán)結(jié)構(gòu)
While循環(huán)有兩個(gè)端子:條件端子(輸入端子)和重復(fù)端子(輸出端子)。重復(fù)端子的作用是輸出循環(huán)已執(zhí)行次數(shù)的數(shù)字。條件端子輸入的是布爾值TRUE或FALSE。在每一次重復(fù)執(zhí)行后,Ⅵ檢查條件端子,如果條件端子值為TRUE那么執(zhí)行下一個(gè)重復(fù),直到條件端子變成FALSE。條件端子的默認(rèn)值是FALSE。由于檢查條件端子輸入值是循環(huán)結(jié)束后,因此While循環(huán)至少也要執(zhí)行—次。3.6.2While
循環(huán)結(jié)構(gòu)While循環(huán)框圖的創(chuàng)建和組成循環(huán)計(jì)數(shù)端i的初始值為0,每執(zhí)行一次循環(huán)自動(dòng)加1,條件端口用于判斷循環(huán)是否執(zhí)行。3.6.2While
循環(huán)結(jié)構(gòu)條件端子的不同作用方式靈活選擇
條件為真時(shí)繼續(xù)執(zhí)行條件為真時(shí)停止循環(huán)
3.6.2While
循環(huán)結(jié)構(gòu)例:設(shè)計(jì)一個(gè)VI,采樣隨機(jī)數(shù),采樣間隔為1秒,當(dāng)采樣到的數(shù)據(jù)大于0.9時(shí)停止采樣,并顯示采樣次數(shù),若采樣10次后仍無數(shù)據(jù)大于0.9,也停止采樣。3.6.2While
循環(huán)結(jié)構(gòu)課堂練習(xí):設(shè)計(jì)一個(gè)VI,采樣隨機(jī)數(shù),采樣間隔為0.1秒,當(dāng)采樣到的數(shù)據(jù)小于0.001時(shí)停止采樣,并顯示采樣次數(shù),若10秒后仍無數(shù)據(jù)小于0.001,也停止采樣。3.6.2While
循環(huán)結(jié)構(gòu)3.6
程序結(jié)構(gòu)3.6.3Case(條件)結(jié)構(gòu)
Case(條件)結(jié)構(gòu)是一種多分支程序控制結(jié)構(gòu),類似C語言的switch多分支選擇結(jié)構(gòu)。3.6.3
Case結(jié)構(gòu)Case結(jié)構(gòu)含有兩個(gè)或者更多的子程序(Case),執(zhí)行那一個(gè)取決于與選擇端子或者選擇對(duì)象的外部接口相連接的某個(gè)整數(shù)、布爾數(shù)、字符串或者標(biāo)識(shí)的值。數(shù)值型和字符型Case結(jié)構(gòu)必須選擇一個(gè)默認(rèn)的Case以處理超出范圍的數(shù)值,或者直接列出所有可能的輸入數(shù)值。
子程序標(biāo)識(shí)按鈕條件端子3.6.3
Case結(jié)構(gòu)3.6.3
Case結(jié)構(gòu)布爾型Case結(jié)構(gòu)
數(shù)值型Case結(jié)構(gòu)
枚舉型Case結(jié)構(gòu)
字符串型Case結(jié)構(gòu)
3.6.3
Case結(jié)構(gòu)
選擇器的標(biāo)識(shí)值的設(shè)定1.單值:2.數(shù)值列表:-1,0,5,10(逗號(hào)分割)3.數(shù)值范圍的形式:10..20(10~20)..0(指所有≤0的數(shù))10..(指所有≥10的數(shù))
注意:不要在選擇標(biāo)簽中使用浮點(diǎn)數(shù)3.6.3
Case結(jié)構(gòu)Case結(jié)構(gòu)分支的添加、刪除與排序3.6.3
Case結(jié)構(gòu)
注意:在使用選擇結(jié)構(gòu)時(shí),控制條件的數(shù)據(jù)類型必須與圖框標(biāo)識(shí)符中的數(shù)據(jù)類型一致。二者若不匹配,LabVEW會(huì)報(bào)錯(cuò),圖框標(biāo)識(shí)符中字體的顏色將變?yōu)榧t色。在
LabVIEW中,對(duì)于數(shù)值型Case必須包含處理超出范圍值的默認(rèn)分支(Defualt),對(duì)于其它類型的Case可設(shè)或不設(shè),但必須明確地列出每一個(gè)可能的輸入值。
3.6.3
Case結(jié)構(gòu)Case結(jié)構(gòu)應(yīng)用舉例
目的:求一個(gè)數(shù)的平方根,若該數(shù)≥0,計(jì)算該值平方根并將計(jì)算結(jié)果輸出;若該數(shù)<0時(shí),則用彈出式對(duì)話框報(bào)告錯(cuò)誤。3.6.3
Case結(jié)構(gòu)
目的:若一個(gè)整數(shù)小于等于10,則+1,若大于10而小于100,則求其平方根,若不在此范圍內(nèi),則直接顯示該數(shù)值。3.6.3
Case結(jié)構(gòu)數(shù)據(jù)的輸入和輸出隧道
當(dāng)由外部節(jié)點(diǎn)向結(jié)構(gòu)框架連線時(shí),在結(jié)構(gòu)邊框就創(chuàng)建了輸入隧道,而當(dāng)由框內(nèi)內(nèi)節(jié)點(diǎn)與邊框連線時(shí),在結(jié)構(gòu)邊框就建立了輸出隧道
輸出通道不正確連接
對(duì)所有Case分支來說對(duì)于輸入通道的數(shù)據(jù)可以使用,也可以不使用。但只要有一個(gè)分支提供輸出數(shù)據(jù),所有分支Case都必須與輸出隧道連接。3.6.3
Case結(jié)構(gòu)若包含了輸出隧道,而某個(gè)分支結(jié)構(gòu)沒有數(shù)據(jù)連接到輸出隧道,則VI會(huì)報(bào)錯(cuò)。注意該輸出隧道接口的形狀3.6.3
Case結(jié)構(gòu)
此時(shí),可用鼠標(biāo)右鍵單擊輸出通道接口,選擇“未連線時(shí)使用默認(rèn)”選項(xiàng),則該分支默認(rèn)為不連接輸出通道,VI不再報(bào)錯(cuò)。3.6.3
Case結(jié)構(gòu)課堂練習(xí):利用While和Case結(jié)構(gòu)創(chuàng)建VI,采樣隨機(jī)數(shù),采樣間隔0.5秒,當(dāng)隨機(jī)數(shù)大于0.2且小于0.8時(shí),在前面板顯示“正?!?,否則顯示“超范圍”并停止循環(huán)。3.6
程序結(jié)構(gòu)3.6.4順序結(jié)構(gòu)順序結(jié)構(gòu)的創(chuàng)建與組成
平鋪式順序結(jié)構(gòu)
堆疊式順序結(jié)構(gòu)
創(chuàng)建多框架順序結(jié)構(gòu)
順序結(jié)構(gòu)會(huì)按框圖標(biāo)識(shí)符0,1,2…的順序,從第0幀開始,一幀一幀按順序執(zhí)行每一幀框圖程序。
3.6.4
順序結(jié)構(gòu)順序結(jié)構(gòu)可在幀與幀之間傳遞信息。為了從一個(gè)幀向其它幀傳遞數(shù)據(jù),使用稱為“SequenceLocal”(順序結(jié)構(gòu)局部變量的端口)。
順序結(jié)構(gòu)局部變量的創(chuàng)建3.6.4
順序結(jié)構(gòu)有三個(gè)幀的順序結(jié)構(gòu)局部變量
順序結(jié)構(gòu)的一個(gè)輸出通道僅能有一個(gè)數(shù)據(jù)源數(shù)據(jù)源能被后續(xù)所有幀使用在源幀前面的幀中不能使用
源幀3.6.4
順序結(jié)構(gòu)順序結(jié)構(gòu)應(yīng)用舉例
例:將一隨機(jī)數(shù)發(fā)生器產(chǎn)生的數(shù)字與面板輸入的給定數(shù)字進(jìn)行比較,計(jì)算當(dāng)兩個(gè)數(shù)匹配時(shí)所需要的時(shí)間和循環(huán)次數(shù),采樣間隔10毫秒。3.6.4
順序結(jié)構(gòu)以上例子的說明:
TickCount(ms)“時(shí)間計(jì)數(shù)器”函數(shù)(Functions?Time&Dialog)——返回啟動(dòng)到現(xiàn)在的時(shí)間(以毫秒為單位)。在這里例子里需要使用兩個(gè)這個(gè)函數(shù)。另一個(gè)在第2幀中。
在第0幀中,TickCount(ms)功能函數(shù)將以毫秒為單位表示當(dāng)前時(shí)間。這個(gè)數(shù)值被連到順序局部變量,這樣它就可以被后續(xù)的幀使用。在第1幀中,只要函數(shù)返回的值與指定值不等,VI就會(huì)持續(xù)執(zhí)行While循環(huán)。在第2幀中,TickCount(ms)功能函數(shù)以毫秒為單位返回新的時(shí)間。VI從中減去原來的時(shí)間(由第0幀通過順序局部變量提供)就可以計(jì)算出花費(fèi)的時(shí)間。3.6
程序結(jié)構(gòu)3.6.5公式節(jié)點(diǎn)
公式節(jié)點(diǎn)是一個(gè)大小可變的方框,可以利用它直接在流程圖中輸入公式。
利用公式節(jié)點(diǎn)可以直接輸入一個(gè)或者多個(gè)復(fù)雜的公式,而不用創(chuàng)建流程圖的很多子程序。使用文本編輯工具來輸入公式。創(chuàng)建公式節(jié)點(diǎn)的輸入和輸出端子的方法是,用鼠標(biāo)右鍵單擊公式節(jié)點(diǎn)的邊框,選擇“添加輸入”或“添加輸出”。再在節(jié)點(diǎn)框中輸入變量名稱。然后就可以在框中輸入公式。每個(gè)公式語句都必須以分號(hào)(;)結(jié)尾。3.6.5
公式節(jié)點(diǎn)公式節(jié)點(diǎn)(FormulaNode)的創(chuàng)建3.6.5
公式節(jié)點(diǎn)
公式節(jié)點(diǎn)一般說來,與C語言非常相似,大體上一個(gè)用C寫的獨(dú)立的程序塊都可能用到公式節(jié)點(diǎn)中。但是仍然建議不要在一個(gè)公式節(jié)點(diǎn)中寫過于復(fù)雜的代碼程序。
例
:使用公式節(jié)點(diǎn)創(chuàng)建VI,完成下面公式計(jì)算,并將結(jié)果顯示在同一個(gè)屏幕上。
y1=x^3–x^2+5y2=m*x+b
此處,x取值為0~10。3.6.5
公式節(jié)點(diǎn)公式節(jié)點(diǎn)的運(yùn)算符
運(yùn)算符說明運(yùn)算符說明?:條件賦值>=大于等于&&邏輯與<=小于等于││邏輯或>>算術(shù)移位(右移)!邏輯非<<算術(shù)移位(左移)&位與+加│位或―減^位異或*乘!=不等于/除==等于++加1>大于――減1<小于**乘方3.6.5
公式節(jié)點(diǎn)3.6.5
公式節(jié)點(diǎn)函數(shù)名說明函數(shù)名說明abs(x)絕對(duì)值lnp1(x)返回ln(x)+1acos(x)反余弦,x弧度log(x)以10為底對(duì)數(shù)acosh(x)反雙曲余弦,x弧度log2(x)以2為底對(duì)數(shù)asin(x)反正弦max(x,y)xy中最大值者asinh(x)反雙曲正弦min(x,y)xy中最小值者atan(x)反正切函數(shù)mod(x,y)求模,x/y的整數(shù)值atanh(x)反雙曲正切pi(x)X*πceil(x)返回大于1的最小整數(shù)pow(x,y)x^yci(x)余弦積分,x為非負(fù)實(shí)數(shù)rand()(0,1)區(qū)間的隨機(jī)數(shù)cos(x)余弦函數(shù)rem(x,y)返回x/y的余數(shù)cosh(x)雙曲余弦sec(x)正割cot(x)余切函數(shù)sign(x)符號(hào)csc(x)余割函數(shù)sin(x)正弦,x弧度exp(x)指數(shù)函數(shù)sinc(x)sin(x)/xexpm1(x)exp(x)-1sinh(x)雙曲正弦floor(x)返回小于x的最大整數(shù)sqrt(x)平方根int(x)返回距x最近的整數(shù)tan(x)正切intrz(x)返回0-x間最近的整數(shù)tanh(x)雙曲正切l(wèi)n(x)自然對(duì)數(shù)函數(shù)3.6.6屬性節(jié)點(diǎn)
3.6.程序結(jié)構(gòu)
屬性節(jié)點(diǎn)是提供給用戶獲取或設(shè)置與屬性節(jié)點(diǎn)關(guān)聯(lián)的前面板控件的一種結(jié)構(gòu)。
1、屬性節(jié)點(diǎn)的創(chuàng)建鼠標(biāo)右鍵點(diǎn)擊前面板控件對(duì)象,在快捷菜單上選“創(chuàng)建”/“屬性節(jié)點(diǎn)”(PropertyNode),則在程序框圖上出現(xiàn)屬性節(jié)點(diǎn)。將鼠標(biāo)停留在屬性節(jié)點(diǎn)的右下角,按住左鍵向下拖拉,展現(xiàn)出一系列屬性節(jié)點(diǎn)。
2、屬性節(jié)點(diǎn)的使用屬性節(jié)點(diǎn)按照其提供數(shù)據(jù)和接受數(shù)據(jù)的不同作用有“讀”(從節(jié)點(diǎn)讀)和“寫”
(向節(jié)點(diǎn)寫)兩種類型,連線時(shí)象“控制”和“指示”端口一樣使用。3.6.6屬性節(jié)點(diǎn)3.6.6屬性節(jié)點(diǎn)波形圖表的屬性節(jié)點(diǎn)使用舉例3.6.7事件結(jié)構(gòu)(EventStructure
)
事件結(jié)構(gòu)根據(jù)某個(gè)特定事件發(fā)生的時(shí)候來觸發(fā)某種提示,這些特殊事件包括:鼠標(biāo)操作、鍵盤操作、定時(shí)操作等等。3.6.程序結(jié)構(gòu)3.6.7
事件結(jié)構(gòu)事件結(jié)構(gòu)應(yīng)用舉例
例:當(dāng)鼠標(biāo)移動(dòng)到前面板上的某個(gè)控件時(shí),顯示出該控件的名稱,若指向前面板的空白處,則顯示“面板空白處”3.6.7
事件結(jié)構(gòu)以上例子的說明:
該事件結(jié)構(gòu)包括2個(gè)觸發(fā)源,分別用0,1表示,可選擇”添加事件分支“進(jìn)行添加觸發(fā)源。
用鼠標(biāo)右鍵彈出菜單中選擇“編輯本分支所處理的事件”可以設(shè)置每個(gè)觸發(fā)源對(duì)應(yīng)的事件和當(dāng)事件發(fā)生時(shí)產(chǎn)生的動(dòng)作3.6.7
事件結(jié)構(gòu)
在觸發(fā)源0中,設(shè)定了當(dāng)鼠標(biāo)指向前面板的“波形圖表”控件(鼠標(biāo)進(jìn)入)時(shí)顯示該控件的名稱:
在觸發(fā)源1中,設(shè)定了當(dāng)鼠標(biāo)離開前面板的“波形圖表”控件(鼠標(biāo)離開)時(shí)顯示“前面板空白處”3.6.7
事件結(jié)構(gòu)3.6程序結(jié)構(gòu)程序結(jié)構(gòu)綜合應(yīng)用舉例:虛擬銀行排隊(duì)系統(tǒng)3.6程序結(jié)構(gòu)3.7曲線圖顯示控件波形圖表(Chart)和波形圖
(Graph)使數(shù)據(jù)可視化,表達(dá)了大量的信息,在LabVIEW程序中十分重要。Chart顯示一個(gè)實(shí)時(shí)變化的波形或曲線,Graph是采集數(shù)據(jù)入數(shù)組進(jìn)行的事后處理。第三章數(shù)據(jù)類型與程序結(jié)構(gòu)3.7曲線圖顯示控件3.7.1波形圖(WaveformGraph)控件3.7.1波形圖顯示控件1.
波形圖(WaveformGraph)的菜單選項(xiàng)
游標(biāo)圖例圖形工具選板標(biāo)尺圖例2.
圖形光標(biāo)
自動(dòng)功能開關(guān)放大/縮小按鈕格式:進(jìn)制、精度dB刻度選擇等游標(biāo)定義坐標(biāo)軸名稱游標(biāo)移動(dòng)按鈕3.7.1波形圖顯示控件3.7.1波形圖顯示控件可將顯示的圖形以bmp等格式導(dǎo)出,以供論文寫作或報(bào)告之用3.7.2WaveformGraph的數(shù)據(jù)類型1.單曲線圖形顯示(WaveformGraph可接收兩種數(shù)據(jù)類型:數(shù)組和簇。)3.7曲線圖顯示控件2.多曲線圖形顯示3.7.1波形圖顯示控件使用二維數(shù)組顯示多條曲線數(shù)組的每一行為一條曲線的數(shù)據(jù)二維數(shù)組一維數(shù)組3.7.4WaveformChart控件Chart的數(shù)據(jù)并沒有事先存在一個(gè)數(shù)組中,它是實(shí)時(shí)顯示的,為了能夠看到先前的數(shù)據(jù),Chart控件內(nèi)部含有一個(gè)顯示緩沖器,其中保留了一些歷史數(shù)據(jù)。這個(gè)緩沖器按照先進(jìn)先出的原則管理,其容量是10~2147483647(默認(rèn)值為1024)個(gè)數(shù)據(jù)點(diǎn)。Chart的獨(dú)有控件:
數(shù)據(jù)顯示(DigitalDisplay):選中它,可以在圖形右上角出現(xiàn)一個(gè)數(shù)字顯示器,這樣可以在畫出曲線的同時(shí)顯示當(dāng)前最新的一個(gè)數(shù)據(jù)值。3.7曲線圖顯示控件StripChartMode(條形圖):它與紙帶式圖表記錄儀類似。曲線從左到右連續(xù)繪制,當(dāng)新的數(shù)據(jù)點(diǎn)到達(dá)右部邊界時(shí),先前的數(shù)據(jù)點(diǎn)逐次左移。ScopeChartMode(示波器模式):它與示波器類似。曲線從左到右連續(xù)繪制,當(dāng)新的數(shù)據(jù)點(diǎn)到達(dá)右部邊界時(shí),清屏刷新,從左邊開始新的繪制。它的速度較快。SweepChartMode(掃描模式):與示波器模式的不同在于當(dāng)新的數(shù)據(jù)點(diǎn)到達(dá)右部邊界時(shí),不清屏,而是在最左邊出現(xiàn)一條垂直掃描線,以它為分界線,將原有曲線逐點(diǎn)向右推,同時(shí)在左邊畫出新的數(shù)據(jù)點(diǎn),如此循環(huán)下去。注意:在使用刷新模式時(shí),最好把X標(biāo)尺的自動(dòng)功能關(guān)閉刷新模式(UpdateMode):3.7曲線圖顯示控件例:Chart和Graph的比較:目的:創(chuàng)建一個(gè)VI,用Chart和Graph分別顯示40個(gè)隨機(jī)數(shù)產(chǎn)生的曲線,比較程序的差別。3.7曲線圖顯示控件3.7.5強(qiáng)度圖IntensityChart/Graph
強(qiáng)度圖形控件提供了一種在二維平面上表現(xiàn)三維數(shù)據(jù)的方法。例如可以用屏幕色彩的亮度來反映來反映一個(gè)二維數(shù)組元素值的大小。下圖就是這樣的一個(gè)例子。注意圖中的x、y軸刻度對(duì)應(yīng)的是數(shù)組行、列的序號(hào)。3.7曲線圖顯示控件3.7.6數(shù)字波形圖DigitalWaveformGraph面板上有一個(gè)輸入控制,共輸入了9個(gè)通道的二進(jìn)制數(shù)。注意這個(gè)圖中數(shù)據(jù)應(yīng)當(dāng)從縱方向讀出,在橫坐標(biāo)上的刻度是通道的序號(hào)(0到9),其中最后一通道的數(shù)字顯示范圍為序號(hào)8~9之間,縱坐標(biāo)從下向上讀是11111111,第一個(gè)通道的數(shù)字顯示范圍為序號(hào)0~1之間,以此類推3.7曲線圖顯示控件該程序的框圖中值得注意的問題有以下幾點(diǎn):十進(jìn)制數(shù)可以直接送給數(shù)字波形圖,不必事先轉(zhuǎn)化為二進(jìn)制數(shù)。在送給數(shù)字波形圖之前,需要經(jīng)過一個(gè)捆綁(bundle函數(shù))。捆綁的順序是初始位置x0、步進(jìn)deltx
、輸入數(shù)據(jù),最后是NumberofPorts。這里的NumberofPorts將反映二進(jìn)制的位數(shù)或字長,為“1”時(shí)是8位,為“2”時(shí)變?yōu)?6位,余類推。3.7曲線圖顯示控件練習(xí)目的:創(chuàng)建一個(gè)VI,用于實(shí)時(shí)測(cè)量和顯示溫度,同時(shí)顯示溫度的最大值、最小值和平均值。3.7曲線圖顯示控件3.8文件I/O操作第三章數(shù)據(jù)類型與程序結(jié)構(gòu)大多數(shù)文件I/O操作的三個(gè)基本步驟
:·打開現(xiàn)存文件或創(chuàng)建一個(gè)新文件·寫入或讀取文件·關(guān)閉文件LabVIEW支持的文件類型(4種)
ASCII碼流文件(文本文件)二進(jìn)制流文件數(shù)據(jù)記錄文件波形數(shù)據(jù)文件3.8文件I/O操作ASCII字節(jié)流——如果希望讓其他的軟件(譬如字處理程序或者電子表格程序)也可以訪問數(shù)據(jù),就需要將數(shù)據(jù)存儲(chǔ)為ASCII格式。為此,您需要把所有數(shù)據(jù)都轉(zhuǎn)換為ASCII字符串。二進(jìn)制字節(jié)流——這種文件的格式是最緊湊、最快速地存儲(chǔ)文件的格式。必須把數(shù)據(jù)轉(zhuǎn)換成二進(jìn)制字符串的格式,還必須清楚地知道在對(duì)文件讀寫數(shù)據(jù)時(shí)采用的是哪種數(shù)據(jù)格式。數(shù)據(jù)記錄文件——這種文件采用的是只有G語言可以訪問的二進(jìn)制格式。數(shù)據(jù)記錄文件類似于數(shù)據(jù)庫文件,因?yàn)樗梢园巡煌臄?shù)據(jù)類型存儲(chǔ)到同一個(gè)文件記錄中。3.8文件I/O操作文件I/O子模板3.8.1高層文件I/O操作3.8.1高層文件(文本文件、電子表格文件)操作文件格式:電子表格讀寫/直接讀寫字符串/二進(jìn)制文件讀寫
什么是電子表格文件?是一種特殊的文本文件,一般用Tab(制表)鍵分割列,用EOL(end-of-line)行結(jié)束符分割行,可在電子表格文件中(如Excel)打開的文件。
1.
WriteToSpreadsheetFileVI
(寫電子表格文件)節(jié)點(diǎn)功能:
是將單精度(SGL)浮點(diǎn)型一維或二維數(shù)組轉(zhuǎn)換為電子表格字符串,并將其寫入一個(gè)新的文件或添加到現(xiàn)存文件中,寫入之后自動(dòng)關(guān)閉文件。3.8.1高層文件I/O操作例:使用WriteToSpreadsheetFile節(jié)點(diǎn)構(gòu)建一VI
將一個(gè)浮點(diǎn)型二維數(shù)組寫入電子表格文件。
注意:必須保證電子表格文件的所有字符串全部由有效的數(shù)值字符組成;在端子“轉(zhuǎn)置?”上接一個(gè)布爾控制,可以選擇按行向量存儲(chǔ)或按列向量存儲(chǔ);在端子“格式”上接一個(gè)字符控制,可以選擇存儲(chǔ)的數(shù)據(jù)精度(例如,%.4f表示顯示4位小數(shù)位)。3.8.1高層文件I/O操作2.ReadFromSpreadsheetFileVI(讀電子表格文件)
該VI節(jié)點(diǎn)打開一個(gè)電子表格文件,從數(shù)字文本文件中指定的字符偏移量開始,讀取指定行數(shù)的數(shù)據(jù),并將這些數(shù)據(jù)轉(zhuǎn)換成一個(gè)二維的單精度數(shù)字型數(shù)組,讀完后自動(dòng)關(guān)閉文件。3.8.1高層文件I/O操作例:構(gòu)建一VI,使用ReadFromSpreadsheetFile
節(jié)點(diǎn)讀取電子表格文件,并將讀出數(shù)據(jù)轉(zhuǎn)換成字符串在
前面板顯示。(演示:讀電子表格文件.vi)3.8.1高層文件I/O操作3.WriteCharacterstoFile
(寫入文本文件)該
VI可以把一個(gè)字符串寫入一個(gè)新文件或添加到一個(gè)已存在的文本文件(.txt文件)中。在寫入文件之前,打開或創(chuàng)建文件;寫入之后,自動(dòng)關(guān)閉該文件。4.ReadCharactersFromFile(讀取文本文件)該節(jié)點(diǎn)可以打開一個(gè)文本文件,從指定的字符偏移量開始,讀取指定數(shù)目的字符,讀完后輸出字符串。3.8.1高層文件I/O操作例:將隨機(jī)采樣值和采樣時(shí)間轉(zhuǎn)換為格式化字符串,寫入文本文件中。(演示:寫字符串文件VI)
3.8.1高層文件I/O操作3.8.1高層文件I/O操作練習(xí)目的:創(chuàng)建一個(gè)VI,使用For循環(huán)定時(shí)采集溫度值,并將每次采樣時(shí)間及溫度值以ASCII格式添加到文本文件中。例:讀取文本文件數(shù)據(jù)。本例使用ReadCharactersFromFile節(jié)點(diǎn)從上例創(chuàng)建的溫度數(shù)據(jù).txt文件中讀取(字符)數(shù)據(jù)3.8.1高層文件I/O操作3.8文件I/O操作3.8.2數(shù)據(jù)記錄文件I/O
數(shù)據(jù)記錄文件類似于數(shù)據(jù)庫文件,按數(shù)據(jù)記錄順序存儲(chǔ)數(shù)據(jù)。一個(gè)文件的所有記錄有相同的結(jié)構(gòu)和長度。訪問該文件是可以以記錄為單位,并且可直接訪問文件中的任意一個(gè)記錄。記錄本身的數(shù)據(jù)結(jié)構(gòu)可由用戶自己定義,一個(gè)記錄內(nèi)可容納不同的數(shù)據(jù)類型,它就像一個(gè)簇一樣。
每個(gè)記錄可以是任意類型數(shù)據(jù)的組合,但所有記錄都必須是同一類型數(shù)據(jù)。如果要用VI獲得數(shù)據(jù),用戶可能不想把數(shù)據(jù)寫入到ASCII文件中,因?yàn)榘褦?shù)據(jù)和字符串之間相互轉(zhuǎn)換非?;ㄙM(fèi)時(shí)間。例如,把一個(gè)二維的字符轉(zhuǎn)換成一個(gè)具有電子表格格式的字符串(具有標(biāo)題和時(shí)間標(biāo)記)也是一個(gè)非常復(fù)雜的操作。如果不需要把文件存儲(chǔ)成可供別的軟件訪問的格式,可以把數(shù)據(jù)輸出到一個(gè)數(shù)據(jù)記錄文件。使用這種格式時(shí),把數(shù)據(jù)寫入到文件的操作變得非常簡(jiǎn)單,這也使得讀寫操作的速度更快。它還可以簡(jiǎn)化數(shù)據(jù)采集的工作,因?yàn)槟梢园殉跏嫉臄?shù)據(jù)塊作為一個(gè)日志或者記錄讀取,而無需了解其中含有多少數(shù)據(jù)。G語言會(huì)記錄數(shù)據(jù)的數(shù)量,用于對(duì)每個(gè)數(shù)據(jù)記錄文件的記錄。3.8文件I/O操作
1.Open/Create/ReplaceFileVI(打開/創(chuàng)建/替換數(shù)據(jù)記錄文件),在讀、寫數(shù)據(jù)記錄文件前先要打開該文件。
其主要作用是給需要打開/創(chuàng)建/替換的數(shù)據(jù)記錄文件賦予一個(gè)文件句柄(標(biāo)識(shí)符refnum)
3.8.2數(shù)據(jù)記錄文件I/O3.8.2數(shù)據(jù)記錄文件I/O
例:寫數(shù)據(jù)記錄文件應(yīng)用實(shí)例(函數(shù)?文件I/O>>高級(jí)文件函數(shù)>>
數(shù)據(jù)記錄)3.8.2數(shù)據(jù)記錄I/O操作在寫入數(shù)據(jù)文件之前,需要先打開/創(chuàng)建該文件,且在打開/創(chuàng)建的同時(shí),必須設(shè)定數(shù)據(jù)記錄文件的數(shù)據(jù)類型,上例中的數(shù)據(jù)類型為數(shù)組、日期和時(shí)間數(shù)據(jù)組成的簇。打開/創(chuàng)建數(shù)據(jù)記錄文件的同時(shí),VI會(huì)賦予該文件一個(gè)句柄(標(biāo)識(shí)符),把該句柄傳給“寫入數(shù)據(jù)記錄文件”節(jié)點(diǎn),則節(jié)點(diǎn)即可對(duì)文件進(jìn)行操作。需要注意的是,寫入的數(shù)據(jù)必須嚴(yán)格遵循設(shè)定的數(shù)據(jù)類型的格式。寫完文件之后,需要進(jìn)行關(guān)閉文件的操作。關(guān)于上例的說明:3.8.2數(shù)據(jù)記錄I/O操作例:讀數(shù)據(jù)記錄文件應(yīng)用實(shí)例
注意:讀取一個(gè)數(shù)據(jù)記錄文件,必須清楚該文件寫入時(shí)的數(shù)據(jù)記錄格式。讀取的格式必須與寫入數(shù)據(jù)時(shí)所用格式一致第四章數(shù)據(jù)采集基礎(chǔ)本章學(xué)習(xí)要求:1.
掌握數(shù)據(jù)采集(DAQ)系統(tǒng)的結(jié)構(gòu)組成2.
理解數(shù)據(jù)采集的基本原理—采樣原理3.
了解信號(hào)的類型和模擬信號(hào)的連接方式4.了解放大、濾波、隔離、線性化等信號(hào)調(diào)理功能5.了解常用數(shù)據(jù)采集卡的主要性能指標(biāo)數(shù)據(jù)采集(DataAcquisition)的完成需要數(shù)據(jù)采集(DAQ)卡(硬件)和程序(軟件)的支持。DAQ系統(tǒng)的基本任務(wù)是物理信號(hào)的產(chǎn)生或測(cè)量。但是要使計(jì)算機(jī)系統(tǒng)能夠測(cè)量物理信號(hào),必須要使用傳感器把物理信號(hào)轉(zhuǎn)換成電信號(hào)(電壓或者電流信號(hào))。有時(shí)不能把被測(cè)信號(hào)直接連接到DAQ卡,而必須使用信號(hào)調(diào)理輔助電路,先將信號(hào)進(jìn)行濾波、放大、衰減等處理??傊?,數(shù)據(jù)采集是借助軟件來控制整個(gè)DAQ系統(tǒng)–包括采集原始數(shù)據(jù)、分析數(shù)據(jù)、給出結(jié)果等。數(shù)據(jù)采集(DataAcquisition)就是將電壓、電流等電信號(hào)或?qū)囟?、壓力等非電量?jīng)過傳感器變成電信號(hào),再經(jīng)過A/D變換,讀到計(jì)算機(jī)中的過程。4.1數(shù)據(jù)采集的基本概念和結(jié)構(gòu)第四章數(shù)據(jù)采集基礎(chǔ)4.1數(shù)據(jù)采集的基本概念和結(jié)構(gòu)4.1.1數(shù)據(jù)采集系統(tǒng)的基本結(jié)構(gòu)
典型的DAQ虛擬儀器由四部分構(gòu)成:PCIPXIUSBPCMAIC/(筆記本電腦)4.1.1數(shù)據(jù)采集的基本結(jié)構(gòu)4.1.2采樣定理4.1數(shù)據(jù)采集的基本概念和結(jié)構(gòu)被測(cè)物理量大多是在時(shí)間、幅值上均連續(xù)的模擬信號(hào),要利用計(jì)算機(jī)對(duì)它們進(jìn)行分析和處理,首先要利用模數(shù)轉(zhuǎn)換器(ADC,包含在DAQ板卡中)將它們轉(zhuǎn)換為數(shù)字信號(hào),這個(gè)過程稱為“采樣”。
對(duì)連續(xù)時(shí)間信號(hào)f(t)采樣的工作原理如圖所示。抽樣器相當(dāng)于一個(gè)定時(shí)開關(guān),它每隔一個(gè)周期Ts閉合一次,每次閉合時(shí)間為?,從而得到樣值信號(hào)fs(t)。信號(hào)的抽樣
4.1數(shù)據(jù)采集的基本概念和結(jié)構(gòu)4.1.2采樣定理
采樣原理可理解為將模擬信號(hào)f(t)與采樣脈沖序列pTS(t)相乘,然后對(duì)得到的離散脈沖序列fs(t)進(jìn)行編碼。理想抽樣的過程及其有關(guān)波形
4.1.2采樣定理抽樣信號(hào)及其頻譜4.1.2采樣定理f(t)的恢復(fù)原理4.1.2采樣定理
由上圖可以看出,若,則采樣信號(hào)fs(t)的頻譜F(ω)就是周期性的重復(fù)著f(t)的頻譜FS(ω),而不會(huì)發(fā)生如下圖所示的重疊現(xiàn)象,我們將TS稱為奈奎斯特間隔。,則通過低通濾波器后可從脈沖序列信號(hào)fs(t)中完全恢復(fù)出模擬信號(hào)f(t)
抽樣信號(hào)頻譜的混疊現(xiàn)象
4.1.2采樣定理
由上述分析我們可以總結(jié)出時(shí)域采樣定理:(1)若連續(xù)時(shí)間信號(hào)f(t)是一個(gè)帶限信號(hào),即在|ω|>ωm時(shí),其頻譜F
(ω)=0,則f(t)可以用均勻等間隔的抽樣信號(hào)fs(t)=f
(nTs)即抽樣值來唯一表示。
奈奎斯特頻率:
奈奎斯特抽樣率:采樣定理的總結(jié):4.1.2采樣定理(2)實(shí)際中遇到的連續(xù)時(shí)間信號(hào)f(t)通常都不是有限帶寬的信號(hào),這要求采樣頻率無窮大(采樣周期接近0)時(shí)才能避免混頻現(xiàn)象,是不可能實(shí)現(xiàn)的。因此,對(duì)此類信號(hào)要使其先通過模擬低通濾波器濾除高頻成分成為帶限信號(hào),稱為抗混頻濾波處理。(3)實(shí)際的模擬低通濾波器濾也不可能有理想的截止特性,因此采樣頻率通常選為f(t)包含的最高頻率分量fh的(3~4)倍甚至更高。常用的物理量的采樣周期選取如教材的表4-1所示。4.2有關(guān)數(shù)據(jù)采集的幾個(gè)基本術(shù)語第四章數(shù)據(jù)采集基礎(chǔ)4.2.1信號(hào)類型:接地信號(hào)和浮地信號(hào)接地信號(hào)(GS)是以系統(tǒng)地(大地或建筑物的地)為參考點(diǎn)的信號(hào),如信號(hào)發(fā)生器和電源都是接地信號(hào)。
浮地信號(hào)(FS)是不與任何參考點(diǎn)連接的信號(hào),如電池、熱電偶、變壓器等都是浮地信號(hào)。接地信號(hào)浮地信號(hào)4.2有關(guān)數(shù)據(jù)采集的幾個(gè)基本術(shù)語4.2.2輸入模式:差分測(cè)量與單端測(cè)量
1、差分輸入
在差分測(cè)量系統(tǒng)中,利用2個(gè)輸入通道來傳遞1個(gè)差分信號(hào),信號(hào)的正極和負(fù)極分別與一個(gè)輸入通道相連。對(duì)于模擬信號(hào),信號(hào)值是兩個(gè)通道間的電壓差;對(duì)于數(shù)字信號(hào),當(dāng)V+>V-時(shí),信號(hào)定義成正信號(hào),當(dāng)V+<V-時(shí),信號(hào)定義成負(fù)信號(hào)。
差分信號(hào)的主要好處是:它對(duì)外部電磁干擾(EMI)是高度免疫的,因?yàn)橐粋€(gè)干擾源幾乎相同程度地影響差分信號(hào)對(duì)的每一端。既然電壓差異決定信號(hào)值,這樣將忽略在兩個(gè)導(dǎo)體上出現(xiàn)的任何同樣干擾。
2、單端輸入
單端測(cè)量系統(tǒng)的所有輸入通道共享一個(gè)公共參考點(diǎn)。在某些系統(tǒng)里,系統(tǒng)“地”被用作電壓基準(zhǔn)點(diǎn),即參考點(diǎn)電壓總是“零”電位的,這種信號(hào)規(guī)劃被稱之為參考地單端測(cè)量系統(tǒng)(RSE)。而在另外一些系統(tǒng)里,所有輸入通道共享一個(gè)電壓相當(dāng)于系統(tǒng)“地”不斷變化的公共參考點(diǎn)(AISENSE),稱為非參考地單端測(cè)量系統(tǒng)(NRSE)。
4.2.2差分測(cè)量與單端測(cè)量4.3信號(hào)調(diào)理
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025農(nóng)村征地合同協(xié)議書
- 2025農(nóng)村土地永久轉(zhuǎn)讓及生態(tài)保護(hù)合同全新制定
- 2025年度公司特色花卉組合采購服務(wù)協(xié)議3篇
- 二零二五年度地鐵車站清潔與安全服務(wù)合同3篇
- 二零二五年度物流運(yùn)輸勞動(dòng)合同勞務(wù)合同3篇
- 二零二五年度私人住宅泳池建造合同3篇
- 2025年度全款購車汽車用品贈(zèng)送合同范本3篇
- 二零二五年度高校畢業(yè)生就業(yè)見習(xí)計(jì)劃合作協(xié)議3篇
- 2025年度環(huán)保設(shè)備銷售加盟合同協(xié)議
- 二零二五年度電力設(shè)施檢修與維修合同3篇
- UBA之夢(mèng)想、目標(biāo)、計(jì)劃、行動(dòng)、信念
- 儲(chǔ)罐水噴砂施工方案
- 每個(gè)人有每個(gè)人的愛好
- 每立方米鋼筋砼鋼筋含量參考值
- 小學(xué)語文教師怎樣說課-ppt課件
- Q∕GDW 12147-2021 電網(wǎng)智能業(yè)務(wù)終端接入規(guī)范
- 猩紅熱ppt幻燈片課件
- 輸配電線路基礎(chǔ)知識(shí)
- 2015年日歷表(超清晰A4打印版)
- 剪式汽車舉升機(jī)設(shè)計(jì)
- 健康證體檢表
評(píng)論
0/150
提交評(píng)論