<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > LabVIEW8.5為設(shè)計添加高級計算模型

          LabVIEW8.5為設(shè)計添加高級計算模型

          作者: 時間:2008-04-17 來源: 收藏

              計算模型  狀態(tài)圖

          本文引用地址:http://www.ex-cimer.com/article/81707.htm

            JohnPasquarette,NI公司的軟件營銷總監(jiān),他將和我們一起討論高級設(shè)計工具中的抽像的應(yīng)用以及如何應(yīng)用這些工具結(jié)合NI公司圖形化系統(tǒng)設(shè)計軟件加速開發(fā)過程。

            問:什么是“計算模型”?
            Pasquarette先生回答:

            “計算模型”這個術(shù)語在學(xué)術(shù)界一直是用來抽象定義一個計算機(jī)系統(tǒng)的。簡單的說,一個計算模型就是采用一種特殊的方式對一個軟件模塊的功能進(jìn)行描述。我們用這個術(shù)語描述各種高級的桌面程序和嵌入式系統(tǒng)。計算模型包括基于文字信息,面向?qū)ο螅瑺顟B(tài)圖和圖形化數(shù)據(jù)流。每種模型在不同領(lǐng)域和場合的應(yīng)用上往往都是存在相對的優(yōu)勢和劣勢。

            使具有使用不同計算模型的進(jìn)行編程的能力是我們圖形系統(tǒng)設(shè)計遠(yuǎn)景目標(biāo)的一個重要組成部分。NI在LabVIEW中為用戶進(jìn)行應(yīng)用編程提供了多種計算模型供其選擇。LabVIEW包括基于圖形化數(shù)據(jù)流編程,動態(tài)系統(tǒng)仿真,基于文字信息編程,文本數(shù)學(xué)編程以及面向?qū)ο缶幊獭?/p>

            LabVIEW8.5中,我們新加入了另一種計算模型—LabVIEW狀態(tài)圖編程,它是基于UML(UnifiedModelingLanguage,統(tǒng)一建模語言)規(guī)范的狀態(tài)圖,這樣可以更方便用戶利用狀態(tài),狀態(tài)轉(zhuǎn)換和事件進(jìn)行復(fù)雜系統(tǒng)的設(shè)計。LabVIEW用戶也可以將各種計算模型進(jìn)行搭配以便更好的對其所開發(fā)的系統(tǒng)進(jìn)行描述。比如說,程序員在設(shè)計一個激光控制系統(tǒng)的時候,應(yīng)用狀態(tài)圖模型定義狀態(tài),應(yīng)用圖形化據(jù)流模型來執(zhí)行FPGA的邏輯控制,應(yīng)用仿真模型來對激光進(jìn)行動態(tài)仿真。

            問:為什么NI選擇狀態(tài)機(jī)視圖作為下一個計算模型?
            Pasquarette先生回答:

            這些年來,設(shè)計者們利用傳統(tǒng)的狀態(tài)圖來快速描述系統(tǒng)的功能。狀態(tài)圖在傳統(tǒng)的狀態(tài)圖上增加了并發(fā)以及層次的概念,這樣就可以使設(shè)計者對那些包含并行任務(wù)的系統(tǒng)進(jìn)行描述了。另外,狀態(tài)機(jī)視圖加入了一種正式的方式來響應(yīng)事件,使這些事件能夠立項的描述系統(tǒng)響應(yīng)。這對嵌入式設(shè)備,控制系統(tǒng)以及復(fù)雜的用戶界面更加有用。此外,狀態(tài)機(jī)視圖提供了證明系統(tǒng)功能性的一種簡單自然的方式。當(dāng)應(yīng)用LabVIEW的圖形數(shù)據(jù)流來定義每種狀態(tài)的行為時,狀態(tài)機(jī)視圖可以作為可執(zhí)行的說明書。

            問:誰將從這些高級設(shè)計工具中受益呢?
            Pasquarette先生回答:

            這些高級設(shè)計工具的主要受益人是那些我們稱之為“領(lǐng)域?qū)<?rdquo;的人。他們并不是專業(yè)的嵌入式系統(tǒng)開發(fā)的工程師和科學(xué)家;但是,他們是生物醫(yī)學(xué)儀器,機(jī)電一體化以及高能物理方面的革新人。他們是想將這些革命性的產(chǎn)品推向市場的人。當(dāng)他們應(yīng)用高級設(shè)計工具比如LabVIEW的現(xiàn)成模型硬件時,就能很快地利用他們的設(shè)計通過實際的輸入來驗證算法的正確性。高級開發(fā)工具可以使這些領(lǐng)域?qū)<也槐爻蔀榍度胧綄<乙部梢詫⑺麄兊脑O(shè)計嵌入硬件之中。

            問:當(dāng)用戶應(yīng)用高級設(shè)計工具的時候是不是會犧牲掉低級的控制呢?
            Pasquarette先生回答:

            有一種世俗觀點叫沒有免費(fèi)的午餐,這個道理同樣適用于軟件設(shè)計。高級設(shè)計工具同低級工具相比,提供了較少的優(yōu)化功能。但是,權(quán)衡利弊,由于愈來愈復(fù)雜的設(shè)計和較短的向市場進(jìn)行推廣的時間,這種犧牲還是值得的。設(shè)計者不必再去等待嵌入式專家來開發(fā)匯編代碼了。

            在應(yīng)用高級軟件工具進(jìn)行設(shè)計的過程中,有一些關(guān)鍵的因素是必需的。為了完成設(shè)計,必須向低級的特征和功能提供HOOKs(一種采用I/O復(fù)用的仿真技術(shù))。另外,高級工具必須提供對繼承代碼進(jìn)行再利用以及整合。這就是為什么我們總是在LabVIEW中提供一些低級程序結(jié)構(gòu)和功能以及在  LabVIEW的FPGA模塊和文本數(shù)字模塊中調(diào)用已經(jīng)存在的代碼比如說C代碼,VHDL的方法。最后,利用高級工具開發(fā)的代碼必須能夠再利用在可以大量應(yīng)用的硬件平臺上。比如,一個機(jī)器設(shè)計者可以利用LabVIEW和任何LabVIEW的計算模型,包括狀態(tài)圖和仿真模型在桌面系統(tǒng)上來構(gòu)建他或她的控制原形并監(jiān)控應(yīng)用狀況,然后,應(yīng)用相同的代碼到嵌入式控制系統(tǒng)中,比如說NI的CompactRIO。

            問:許多設(shè)計者認(rèn)為LabVIEW是一種測試工具。那么LabVIEW在設(shè)計的舞臺上到底扮演的是什么樣的角色呢?
            Pasquarette先生回答:

            自從20世紀(jì)80年代,LabVIEW產(chǎn)生至此,它一直是作為一種設(shè)計工具來應(yīng)用的。最初的圖形數(shù)據(jù)流已經(jīng)轉(zhuǎn)化為了一種偉大的設(shè)計方法,應(yīng)用在從望遠(yuǎn)鏡調(diào)節(jié)裝置到分析儀器這樣廣泛的系統(tǒng)范圍。大量的LabVIEW國際協(xié)議應(yīng)用在高級數(shù)學(xué),分析和信號處理方面,包括像LabVIEW數(shù)字濾波器設(shè)計工具包等特殊工具,徹底縮短了這些系統(tǒng)的開發(fā)時間。

            在最近的10年內(nèi),LabVIEW的設(shè)計能力已經(jīng)成長為可以對嵌入式的實時硬件的編程。我們提出的一些技術(shù),比如說LabVIEWFPGA,這樣工程師就可以利用圖形編程來設(shè)計硬件邏輯。由于圖形數(shù)據(jù)流可以直觀的描述并行軟件行為,因此,它可以作為一種理想的計算模型用于并行處理環(huán)境,比如FPGA。LabVIEW的最新版本將這種類似的經(jīng)驗應(yīng)用到了實時多核系統(tǒng)的編程中。我們的許多用戶都有利用LabVIEW進(jìn)行嵌入式設(shè)計的經(jīng)驗。另外,利用LabVIEW微處理器SDK,我們將LabVIEW的應(yīng)用擴(kuò)展到了任何32位微處理器中。LabVIEW提供的嵌入式硬件以及多樣的計算模型,使之成為了一種具有重大生產(chǎn)率優(yōu)勢的有效設(shè)計工具。



          關(guān)鍵詞: LabVIEW LabVIEW

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();