LabVIEW8.5為設(shè)計(jì)添的一個(gè)高級(jí)“計(jì)算模型”
John Pasquarette,NI公司的軟件營(yíng)銷總監(jiān),他將和我們一起討論高級(jí)設(shè)計(jì)工具的中抽像的應(yīng)用以及如何應(yīng)用這些工具結(jié)合NI公司LabVIEW圖形化系統(tǒng)設(shè)計(jì)軟件加速開(kāi)發(fā)過(guò)程。
問(wèn):什么是“計(jì)算模型”?
Pasquarette先生回答:
“計(jì)算模型”這個(gè)術(shù)語(yǔ)在學(xué)術(shù)界一直是用來(lái)抽象定義一個(gè)計(jì)算機(jī)系統(tǒng)的。簡(jiǎn)單的說(shuō),一個(gè)計(jì)算模型就是采用一種特殊的方式對(duì)一個(gè)軟件模塊的功能進(jìn)行描述。我們用這個(gè)術(shù)語(yǔ)描述各種高級(jí)的桌面程序和嵌入式系統(tǒng)。計(jì)算模型包括基于文字信息,面向?qū)ο?,狀態(tài)圖和圖形化數(shù)據(jù)流。每種模型在不同領(lǐng)域和場(chǎng)合的應(yīng)用上往往都是存在相對(duì)的優(yōu)勢(shì)和劣勢(shì)。
使LabVIEW具有使用不同計(jì)算模型的進(jìn)行編程的能力是我們圖形系統(tǒng)設(shè)計(jì)遠(yuǎn)景目標(biāo)的一個(gè)重要組成部分。NI在LabVIEW中為用戶進(jìn)行應(yīng)用編程提供了多種計(jì)算模型供其選擇。LabVIEW包括基于圖形化數(shù)據(jù)流編程,動(dòng)態(tài)系統(tǒng)仿真,基于文字信息編程,文本數(shù)學(xué)編程以及面向?qū)ο缶幊獭?BR>
LabVIEW8.5中,我們新加入了另一種計(jì)算模型—LabVIEW狀態(tài)圖編程,它是基于UML(Unified Modeling Language,統(tǒng)一建模語(yǔ)言)規(guī)范的狀態(tài)圖,這樣可以更方便用戶利用狀態(tài),狀態(tài)轉(zhuǎn)換和事件進(jìn)行復(fù)雜系統(tǒng)的設(shè)計(jì)。LabVIEW用戶也可以將各種計(jì)算模型進(jìn)行搭配以便更好的對(duì)其所開(kāi)發(fā)的系統(tǒng)進(jìn)行描述。比如說(shuō),程序員在設(shè)計(jì)一個(gè)激光控制系統(tǒng)的時(shí)候,應(yīng)用狀態(tài)圖模型定義狀態(tài),應(yīng)用圖形化據(jù)流模型來(lái)執(zhí)行FPGA的邏輯控制,應(yīng)用仿真模型來(lái)對(duì)激光進(jìn)行動(dòng)態(tài)仿真。
問(wèn):為什么NI選擇狀態(tài)機(jī)視圖作為下一個(gè)計(jì)算模型?
Pasquarette先生回答:
這些年來(lái),設(shè)計(jì)者們利用傳統(tǒng)的狀態(tài)圖來(lái)快速描述系統(tǒng)的功能。狀態(tài)圖在傳統(tǒng)的狀態(tài)圖上增加了并發(fā)以及層次的概念,這樣就可以使設(shè)計(jì)者對(duì)那些包含并行任務(wù)的系統(tǒng)進(jìn)行描述了。另外,狀態(tài)機(jī)視圖加入了一種正式的方式來(lái)響應(yīng)事件,使這些事件能夠立項(xiàng)的描述系統(tǒng)響應(yīng)。這對(duì)嵌入式設(shè)備,控制系統(tǒng)以及復(fù)雜的用戶界面更加有用。此外,狀態(tài)機(jī)視圖提供了證明系統(tǒng)功能性的一種簡(jiǎn)單自然的方式。當(dāng)應(yīng)用LabVIEW的圖形數(shù)據(jù)流來(lái)定義每種狀態(tài)的行為時(shí),狀態(tài)機(jī)視圖可以作為可執(zhí)行的說(shuō)明書(shū)。
問(wèn):誰(shuí)將從這些高級(jí)設(shè)計(jì)工具中受益呢?
Pasquarette先生回答:
這些高級(jí)設(shè)計(jì)工具的主要受益人是那些我們稱之為“領(lǐng)域?qū)<摇钡娜恕K麄儾⒉皇菍I(yè)的嵌入式系統(tǒng)開(kāi)發(fā)的工程師和科學(xué)家;但是,他們是生物醫(yī)學(xué)儀器,機(jī)電一體化以及高能物理方面的革新人。他們是想將這些革命性的產(chǎn)品推向市場(chǎng)的人。當(dāng)他們應(yīng)用高級(jí)設(shè)計(jì)工具比如LabVIEW的現(xiàn)成模型硬件時(shí),就能很快地利用他們的設(shè)計(jì)通過(guò)實(shí)際的輸入來(lái)驗(yàn)證算法的正確性。高級(jí)開(kāi)發(fā)工具可以使這些領(lǐng)域?qū)<也槐爻蔀榍度胧綄<乙部梢詫⑺麄兊脑O(shè)計(jì)嵌入硬件之中。
問(wèn):當(dāng)用戶應(yīng)用高級(jí)設(shè)計(jì)工具的時(shí)候是不是會(huì)犧牲掉低級(jí)的控制呢?
Pasquarette先生回答:
有一種世俗觀點(diǎn)叫沒(méi)有免費(fèi)的午餐,這個(gè)道理同樣適用于軟件設(shè)計(jì)。高級(jí)設(shè)計(jì)工具同低級(jí)工具相比,提供了較少的優(yōu)化功能。但是,權(quán)衡利弊,由于愈來(lái)愈復(fù)雜的設(shè)計(jì)和較短的向市場(chǎng)進(jìn)行推廣的時(shí)間,這種犧牲還是值得的。設(shè)計(jì)者不必再去等待嵌入式專家來(lái)開(kāi)發(fā)匯編代碼了。
在應(yīng)用高級(jí)軟件工具進(jìn)行設(shè)計(jì)的過(guò)程中,有一些關(guān)鍵的因素是必需的。為了完成設(shè)計(jì),必須向低級(jí)的特征和功能提供HOOKs(一種采用I/O復(fù)用的仿真技術(shù))。另外,高級(jí)工具必須提供對(duì)繼承代碼進(jìn)行再利用以及整合。這就是為什么我們總是在LabVIEW中提供一些低級(jí)程序結(jié)構(gòu)和功能以及在LabVIEW的FPGA模塊和文本數(shù)字模塊中調(diào)用已經(jīng)存在的代碼比如說(shuō)C代碼,VHDL的方法。最后,利用高級(jí)工具開(kāi)發(fā)的代碼必須能夠再利用在可以大量應(yīng)用的硬件平臺(tái)上。比如,一個(gè)機(jī)器設(shè)計(jì)者可以利用LabVIEW和任何LabVIEW的計(jì)算模型,包括狀態(tài)圖和仿真模型在桌面系統(tǒng)上來(lái)構(gòu)建他或她的控制原形并監(jiān)控應(yīng)用狀況,然后,應(yīng)用相同的代碼到嵌入式控制系統(tǒng)中,比如說(shuō)NI的CompactRIO。
問(wèn):許多設(shè)計(jì)者認(rèn)為L(zhǎng)abVIEW是一種測(cè)試工具。那么LabVIEW在設(shè)計(jì)的舞臺(tái)上到底扮演的是什么樣的角色呢?
Pasquarette先生回答:
自從20世紀(jì)80年代,LabVIEW產(chǎn)生至此,它一直是作為一種設(shè)計(jì)工具來(lái)應(yīng)用的。最初的圖形數(shù)據(jù)流已經(jīng)轉(zhuǎn)化為了一種偉大的設(shè)計(jì)方法,應(yīng)用在從望遠(yuǎn)鏡調(diào)節(jié)裝置到分析儀器這樣廣泛的系統(tǒng)范圍。大量的LabVIEW國(guó)際協(xié)議應(yīng)用在高級(jí)數(shù)學(xué),分析和信號(hào)處理方面,包括像LabVIEW數(shù)字濾波器設(shè)計(jì)工具包等特殊工具,徹底縮短了這些系統(tǒng)的開(kāi)發(fā)時(shí)間。
在最近的10年內(nèi),LabVIEW的設(shè)計(jì)能力已經(jīng)成長(zhǎng)為可以對(duì)嵌入式的實(shí)時(shí)硬件的編程。我們提出的一些技術(shù),比如說(shuō)LabVIEW FPGA,這樣工程師就可以利用圖形編程來(lái)設(shè)計(jì)硬件邏輯。由于圖形數(shù)據(jù)流可以直觀的描述并行軟件行為,因此,它可以作為一種理想的計(jì)算模型用于并行處理環(huán)境,比如FPGA。LabVIEW的最新版本將這種類似的經(jīng)驗(yàn)應(yīng)用到了實(shí)時(shí)多核系統(tǒng)的編程中。我們的許多用戶都有利用LabVIEW進(jìn)行嵌入式設(shè)計(jì)的經(jīng)驗(yàn)。另外,利用LabVIEW微處理器SDK,我們將LabVIEW的應(yīng)用擴(kuò)展到了任何32位微處理器中。LabVIEW提供的嵌入式硬件以及多樣的計(jì)算模型,使之成為了一種具有重大生產(chǎn)率優(yōu)勢(shì)的有效設(shè)計(jì)工具。
評(píng)論