專利名稱:編程處理系統(tǒng)的方法
技術(shù)領(lǐng)域:
0002本發(fā)明涉及一種處理系統(tǒng)和對該處理系統(tǒng)進行編程的方法。
背景技術(shù):
0003數(shù)據(jù)處理在許多不同的制造業(yè)和商業(yè)相關(guān)的應(yīng)用中被用于完成幾乎無限多種的任務(wù)。數(shù)據(jù)處理系統(tǒng)的一個應(yīng)用領(lǐng)域是在自動化、控制、數(shù)據(jù)采集和儀器使用的領(lǐng)域中。實際的儀器或執(zhí)行機構(gòu)(例如測壓元件、液壓閥或伺服電機)實時地產(chǎn)生數(shù)據(jù)流或者要求實時的命令流。包含數(shù)據(jù)處理系統(tǒng)的計算機與這些儀器連接,以采集和分析數(shù)據(jù)并產(chǎn)生適當?shù)拿睢崿F(xiàn)完成數(shù)據(jù)采集以及各種其它任務(wù)的現(xiàn)有技術(shù)數(shù)據(jù)處理系統(tǒng)采用了不同的設(shè)計配置,并且通常被組織成網(wǎng)絡(luò)的形式。網(wǎng)絡(luò)可以布置成例如總線或線形拓撲、星形拓撲、環(huán)形拓撲等各種配置。網(wǎng)絡(luò)內(nèi)部通常有多個節(jié)點以及與每個節(jié)點相互連接的通信鏈路。節(jié)點是處理系統(tǒng)的一部分,其被連接到每一個儀器以分別采集由這些儀器輸出的數(shù)據(jù)。節(jié)點還可能是計算機、終端、工作站、其它的執(zhí)行機構(gòu)、額外的數(shù)據(jù)采集器、傳感器、或類似裝置。節(jié)點通常具有處理器、存儲器和各種其它的硬件和軟件組件。節(jié)點在網(wǎng)絡(luò)中的通信鏈路上相互通信以獲得和發(fā)送信息。在一個典型的應(yīng)用系統(tǒng)中,可能存在許多在多種不同路徑上通信的節(jié)點。
0004處理系統(tǒng)的用戶經(jīng)常開發(fā)和要求物理系統(tǒng)的概念模型,以幫助用戶編程和使用該處理系統(tǒng)。對這類采用節(jié)點的數(shù)據(jù)處理系統(tǒng)進行編程可能是令人畏縮的任務(wù),甚至對專業(yè)的程序員來說也是如此。在程序員能夠?qū)σ粋€現(xiàn)有技術(shù)的處理系統(tǒng)進行編程之前,必須精通許多微妙的復(fù)雜情況。使用數(shù)學(xué)公式、數(shù)學(xué)步驟或其它類似過程對處理系統(tǒng)進行編程的任務(wù)使編程過程更加復(fù)雜。用于控制處理系統(tǒng)的計算機程序通常是用傳統(tǒng)的文本編程語言例如機器代碼、C、C++或Pascal來編寫的。響應(yīng)式的實時性能通常要求程序員學(xué)習(xí)并使用多線程、實時操作系統(tǒng)。這些編程語言和操作系統(tǒng)并不直觀,也不能很好地用來采集和分析數(shù)據(jù)處理系統(tǒng)所要求的數(shù)據(jù)。
0005更經(jīng)常的情況是處理系統(tǒng)的用戶和程序員并不是專業(yè)程序員,因此經(jīng)常要求更易懂更直觀的高級編程技術(shù)。在計算機編程方面沒有受到良好訓(xùn)練的用戶對計算機和數(shù)據(jù)處理系統(tǒng)的使用日益增加,因而需要編程比當前系統(tǒng)更易于使用和實現(xiàn)的數(shù)據(jù)處理系統(tǒng)。
0006現(xiàn)有技術(shù)已經(jīng)試圖在上述編程語言之上來改進數(shù)據(jù)處理系統(tǒng)的編程,參見美國專利第4,901,221號、第4,914,568號和第5,301,301號。這些現(xiàn)有技術(shù)文檔中公開的編程技術(shù)試圖以圖形化的方式來幫助用戶對數(shù)據(jù)處理系統(tǒng)進行編程。然而,這些編程技術(shù)有許多缺陷。具體而言,這些方法以個人電腦為中心,而原本不能用來處理分布式多進程節(jié)點的系統(tǒng)。完成編程配置所需的步驟的數(shù)目混亂,而且有許多特征仍然不直觀。此外,存在許多對處理系統(tǒng)的用戶或程序員的不必要的限制。最后,在編程過程中或處理系統(tǒng)的操作過程中,處理系統(tǒng)不能動態(tài)地變化。
0007因此,需要開發(fā)一種相對容易且直觀的對處理系統(tǒng)進行編程的方法。進一步地,該編程方法應(yīng)該是通用的,且約束有限,以允許用戶充分定制處理系統(tǒng)。該編程方法最好應(yīng)該適用于多進程分布式系統(tǒng)。最后,該編程方法應(yīng)該本質(zhì)上是圖形化的,以幫助用戶可視化地對編程步驟進行概念化,而且應(yīng)該能夠在編程過程和操作過程中動態(tài)改變。
發(fā)明內(nèi)容
0008本發(fā)明包括一種對處理系統(tǒng)進行編程的方法,其使用一具有配置畫布、儀器畫布和臨時窗格的計算機。該處理系統(tǒng)包括至少一個處理器,多個功能對象,和至少一個可視化儀器,其中每個功能對象包括執(zhí)行特定功能的命令。該方法包括將與第一批功能對象相關(guān)聯(lián)的第一批對象圖標放置到配置畫布的多個不同位置的步驟。當?shù)谝慌鷮ο髨D標被放置到配置畫布上以定義一個處理配置時,多個執(zhí)行路徑在第一批對象圖標中的每個對象圖標之間自動地路由或確定路徑(route)。在配置畫布上的對象圖標之間創(chuàng)建數(shù)據(jù)流路徑。至少一個可視化儀器被放置在儀器畫布上。關(guān)聯(lián)到該可視化儀器的儀器圖標被自動放置到臨時窗格上。該儀器圖標被從臨時窗格移動并放置到配置畫布。該方法包括如下步驟創(chuàng)建所述儀器圖標與所述配置畫布的處理配置內(nèi)的至少一個對象圖標之間數(shù)據(jù)流路徑,使得儀器畫布上的可視化儀器可操作地連接到配置畫布上的處理配置。替代性地,至少一個儀器圖標能夠被首先放置在配置畫布上,然后,與儀器圖標相關(guān)聯(lián)的可視化儀器被自動地放置在臨時窗格上。創(chuàng)建所述儀器圖標與所述配置畫布上處理配置中的至少一個對象圖標之間的數(shù)據(jù)流路徑。替代性方法包括如下步驟將可視化儀器從臨時窗格移動并放置到儀器畫布,儀器畫布上的可視化儀器可操作地連接到配置畫布的處理配置。
0009因此,本發(fā)明包括一種改進的對處理系統(tǒng)進行編程的方法,其創(chuàng)建一種非常通用且直觀的圖形化編程技術(shù)。如下文更詳細地說明的,該編程方法本質(zhì)上是動態(tài)的,且在編程過程和操作過程中都是可更改的。
0010通過參考下文的詳細描述并結(jié)合附圖一起考慮,隨著本發(fā)明的其它優(yōu)點被更好地理解,這些優(yōu)點將很容易地被認識到,附圖中0011圖1是對處理系統(tǒng)的一個預(yù)期應(yīng)用的示意性圖解說明;0012圖2示出了連接到本發(fā)明處理系統(tǒng)的計算機監(jiān)視器的空白啟動屏幕;0013圖3示出了啟動屏幕的File(文件)菜單;0014圖4示出了啟動屏幕的View(視圖)菜單;0015圖5示出了啟動屏幕的Tools(工具)菜單;
0016圖6示出了啟動屏幕上打開的System Setup(系統(tǒng)設(shè)置)窗格,Project Explorer(項目瀏覽)窗格,Toolbox(工具箱)窗格,Properties(屬性)窗格,和Unassigned(未指定)窗格;0017圖7是System Setup窗格的細節(jié);0018圖8是Toolbox窗格的細節(jié);0019圖9是Toolbox窗格的進一步細節(jié);0020圖10示出了在啟動屏幕上打開的并處于啟動屏幕邊緣的System Setup窗格、Project Explorer窗格、Toolbox窗格,和Properties窗格;0021圖11示出了File菜單并選中Project(項目)命令;0022圖12示出了啟動屏幕的Create New Project(創(chuàng)建新項目)窗口;0023圖13示出了空白配置畫布,以及沿其邊緣打開的System Setup窗格、Project Explorer窗格、Toolbox窗格,和Properties窗格;0024圖14示出了配置畫布的Edit(編輯)菜單;0025圖15示出了配置畫布的Insert(插入)菜單;0026圖16示出了配置畫布的Control(控制)菜單;0027圖17示出了創(chuàng)建一個處理配置的典型的第一步驟,其中處理器圖標被放置到配置畫布上;0028圖18示出了處理配置的下一步驟,其將形式為Sine WaveGenerator(正弦波發(fā)生器)的對象圖標放置到配置畫布上;0029圖19是與Float Add(浮點加法)功能對象相關(guān)的Properties窗格的細節(jié);0030圖20是該Properties窗格的另一細節(jié);0031圖21是該Properties窗格的再一細節(jié);0032圖22是該Properties窗格的另一細節(jié);
0033圖23示出了將另一個形式為Random Number Generator(隨機數(shù)發(fā)生器)的對象圖標放置到配置畫布上的步驟;0034圖24示出了將再一個形式為Float Multiply(浮點乘法)的對象圖標放置到配置畫布上;0035圖25示出了Float Multiply圖標在配置畫布上的替代性的放置;0036圖26示出了Random Number Generator圖標相對于Sine WaveGenerator圖標的移動;0037圖27示出了配置畫布上的部分完成的處理配置,其中所有的執(zhí)行路徑均被路由;0038圖27A是圖27配置畫布上某些對象圖標的細節(jié),其說明了Float Multiply圖標的文本描述符;0039圖27B是圖27配置畫布上某些對象圖標的另一細節(jié),說明了Float Multiply圖標的符號;0040圖28是圖24配置畫布上對象圖標的細節(jié),其說明了單個數(shù)據(jù)流路徑,其獨立于被路由的執(zhí)行路徑;0041圖29示出了已完成的配置畫布上的處理配置,其中所有的執(zhí)行路徑已被路由,且所有的數(shù)據(jù)流路徑已被連接;0042圖30示出了圖29的已完成的處理配置以及System Setup窗格、Project Explorer窗格、Toolbox窗格,和Properties窗格;0043圖31示出了在其操作過程中圖30的已完成的處理配置;0044圖32示出了同一配置畫布上三個已完成的處理配置;0045圖33示出了圖32的三個已完成的處理配置,其中某些對象圖標已被移動到不同的位置;0046圖34示出了圖32的三個已完成的處理配置,其中一個對象圖標已被移動到不同的位置;0047圖35示出了圖32的三個已完成的處理配置,其中一個對象圖標已被移動到不同的處理配置;0048圖36示出了圖32的三個已完成的處理配置,其中一個對象圖標已被移動到不同的處理配置;0049圖36A示出了圖32的三個已完成的處理配置,其中兩個對象圖標已被同步;0050圖37示出了配置畫布上打開的儀器畫布;0051圖38是Toolbox窗格的另一個細節(jié);0052圖39示出了組裝有許多可視化儀器的儀器畫布;0053圖40示出了部分創(chuàng)建的處理配置與Unassigned窗格的細節(jié);0054圖41示出了部分創(chuàng)建的處理配置與Unassigned窗格的細節(jié)另一視圖;0055圖42示出了另一已完成的處理配置;0056圖43示出了疊置在圖42的已完成的處理配置之上的圖39的儀器畫布;0057圖44示出了部分創(chuàng)建的處理配置與Unassigned窗格的細節(jié);0058圖45示出了疊置在組裝有若干可視化儀器的儀器畫布之上的Unassigned窗格;0059圖46示出了疊置在圖45的儀器畫布上的Unassigned窗格的另一視圖,其中可視化儀器從Unassigned窗格移動到儀器畫布;0060圖47示出了已完成的處理配置的另一個例子;0061圖48示出了圖47的已完成的處理配置和Properties窗格的細節(jié);0062圖49示出了圖47的已完成的處理配置和Properties窗格的細節(jié),同時通過相對于Float Add圖標移動Float Subtract圖標,證明了本發(fā)明的動態(tài)性質(zhì);0063圖50示出了已完成的處理配置的再一個例子;
0064圖51是圖50的已完成的處理配置的第一User Object(用戶對象)的細節(jié);0065圖52是圖51的第一User Object中的第二User Object的細節(jié);0066圖53示出了圖50的已完成的處理配置和Project Explorer窗格的細節(jié);以及0067圖54是已完成的處理配置的另一個例子。
具體實施例方式
0068參見附圖,其中在這若干個附圖中,相同的數(shù)字指示相同或相應(yīng)的部件,處理系統(tǒng)的一個預(yù)期應(yīng)用的示意性說明被總體地顯示在圖1中的10處。特別地,處理系統(tǒng)10被配置成具有多個節(jié)點的分布式多進程系統(tǒng)10。分布式多進程系統(tǒng)10的一個預(yù)期應(yīng)用是用于編譯和分析數(shù)據(jù),例如在測試交通工具的過程中。本領(lǐng)域技術(shù)人員應(yīng)意識到,本發(fā)明的處理系統(tǒng)10有許多應(yīng)用,而后續(xù)的關(guān)于數(shù)據(jù)采集和交通工具測試的討論僅僅出于說明性目的,決不是為了限定本發(fā)明的范圍。
0069如圖1所示,示意性地示出了液壓執(zhí)行機構(gòu)12和伺服閥門14。液壓執(zhí)行機構(gòu)12作用在試樣16(例如交通工具)上。測壓元件18和位移功能變換器20被連接到執(zhí)行機構(gòu)12,以向接口22提供諸如力和位移的信號。接口22也被連接到伺服閥門14以提供必要的控制信號。接口22優(yōu)選是伺服控制器(servo-controller)節(jié)點的一部分,所述伺服控制器節(jié)點在圖中以節(jié)點1標示出。節(jié)點1還包含一個或多個處理器和通信接口24。優(yōu)選地,節(jié)點1的處理器(一個或多個)是數(shù)字信號處理器(DSP)。節(jié)點1又經(jīng)由通信鏈路26被連接到路由集線器28。如圖所示,其他節(jié)點和主機節(jié)點也連接到集線器28??梢杂腥我鈹?shù)量的節(jié)點連接到集線器28,這些節(jié)點有任意適當數(shù)量和類型的處理器。主機節(jié)點優(yōu)選是帶有PC處理器30和監(jiān)視器32、鍵盤24、鼠標36和任何其它適當外設(shè)的計算機。主機節(jié)點包含DSP卡,其有總線接口38、一個或多個DSP處理器和通信接口40。類似節(jié)點1,主機節(jié)點的通信接口40通過通信鏈路26將主機節(jié)點連接到集線器28。與節(jié)點1一樣,對主機節(jié)點的處理器的類型和數(shù)量沒有限制。集線器28的具體獨特的結(jié)構(gòu)和節(jié)點配置以及節(jié)點自身的具體結(jié)構(gòu),在共同待決的美國專利申請第09/692,852號和第09/982,601號中公開,其公開內(nèi)容在此以引用方式并入本文。
0070正如在上文“背景技術(shù)”一節(jié)中所討論的,現(xiàn)有技術(shù)處理系統(tǒng)對于編程而言可能很難且不直觀。圖1所示的分布式多進程系統(tǒng)的邏輯擴展可能也是很難編程的。因此,本發(fā)明旨在處理這些需求。在以下的詳細討論中,本發(fā)明包括多種改進的對分布式多進程系統(tǒng)進行編程的方法,其本質(zhì)上是圖形化的,具有很好的通用性,而且使用起來很直觀。該編程方法本質(zhì)上還是動態(tài)的,能在編程過程和操作過程中更改。
0071轉(zhuǎn)向圖2-10,其中示出了本編程方法使用的許多基本組件。圖2示出了計算機監(jiān)視器的空白啟動屏幕。該屏幕或窗口被標記為Visual Configuration Editor(可視配置編輯器,VCE)。VCE或啟動屏幕所示的許多特征是有代表性的基于窗口的系統(tǒng)。VCE是用戶所應(yīng)用的用于創(chuàng)建、編輯、運行和監(jiān)視項目操作的環(huán)境。需要注意的是,術(shù)語REDGRID是向美國專利局注冊的注冊商標,本專利申請中任何對該術(shù)語的使用決不降低該標記可用的力度和/或保護。進一步的,本專利申請中使用得術(shù)語Visual Configuration Editor和VCE以及REDGRID標記旁邊的圖形說明,都絕不降低這些商標可用的力度和/或保護。
0072圖3示出了啟動屏幕的File菜單,其包含用于創(chuàng)建新項目、打開項目文件和保存項目的命令。圖4示出了啟動屏幕的View菜單,圖5示出了Tools菜單。View菜單允許用戶有選擇地打開各種窗格,如圖6所示。參見圖6,在啟動屏幕上打開了System Setup窗格、ProjectExplorer窗格、Toolbox窗格、Properties窗格,以及Unassigned窗格。這些窗格可以是浮動的或是可??康?,且可以按照需要調(diào)整大小。當用戶創(chuàng)建、修改或執(zhí)行項目時,這些窗格中的每一個都有具體的用途,下文將作詳細討論。圖5的Tools菜單,包含了設(shè)計用于執(zhí)行特殊復(fù)雜任務(wù)的高級軟件特征。這些軟件特征可能是專門設(shè)計用來幫助用戶的計算程序等等。因此,這些軟件特征都是有效的節(jié)省工作量的裝置。
0073圖7中更加詳細地示出了System Setup窗格或處理器窗格。System Setup窗格顯示了當前用戶可用的所有處理器的樹狀圖。處理器被安排在節(jié)點之下。在本例中,有兩個可用的節(jié)點。一個節(jié)點是LocalNode(本地節(jié)點),這是上文討論的主機節(jié)點的另一個名稱。也就是說,Local Node是計算機的一部分。Local Node包括一個PC處理器,標記為386,帶有五個(5個)不同的事件,這些事件在處理器窗格中被識別。如下文中更詳細討論的,通過PC處理器識別的事件可以在處理系統(tǒng)中分別使用,以初始化執(zhí)行路徑。另一個可用的節(jié)點是REDgrid DSPCard(REDgrid DSP卡),這是上文討論的節(jié)點1或Node 1的專用名稱。如上文所述,REDgrid是一個注冊商標,在本專利申請中僅用來幫助說明預(yù)期的實施例。節(jié)點1包含兩個標記為“1”和“2”的處理器。處理器優(yōu)選為DSP,且每個包含三個可由用戶選定的事件。然而,在處理系統(tǒng)的這個具體實施方式
中,DSP被設(shè)計成使節(jié)點1之下的這些處理器在處理系統(tǒng)中僅可以被使用一次,但這決不是限制本發(fā)明,將DSP實現(xiàn)成使每個事件可以被獨立地選取也是可能的。
0074上文所討論的事件區(qū)分出用于處理器的各種不同的執(zhí)行速率。在實時處理系統(tǒng)中,用戶通常要求以特定速率周期性地重復(fù)執(zhí)行路徑。換句話說,將在下文更詳細討論的執(zhí)行路徑可以是重復(fù)的和連續(xù)的。用戶可以根據(jù)受控裝置的需要選擇這些參數(shù),然后選擇相應(yīng)的處理器事件和速率。除了周期性的事件,還可能得到以非周期方式能夠?qū)?zhí)行進行初始化的事件。
0075圖8和圖9中更詳細地示出了Toolbox窗格。依據(jù)任何特定應(yīng)用的需要,Toolbox窗格可能有實際上任何數(shù)量的條目。文件夾的實例可以包括Drawing Objects(繪圖對象)、Non-Iterated Objects(非迭代對象)、Primitives(基元)和Visual Instruments(可視化儀器)。DrawingObjects是幫助用戶創(chuàng)建符合邏輯的可理解的項目配置的可視元素。Drawing Objects通常是不可執(zhí)行的對象。下文將詳細討論VisualInstruments。
0076如圖9所示,Primitives文件夾包括一大類子文件夾、子文件夾的子文件夾或?qū)O文件夾(sub-sub-folder)等等。在Primitives文件夾內(nèi)有多個功能對象或基元。功能對象的實例顯示在Instrument(儀器)孫文件夾下和Sources(源)孫文件夾下。功能對象包括已經(jīng)預(yù)編程的基本的可執(zhí)行代碼或命令,所述預(yù)編程使得每個功能對象都能執(zhí)行某種特定功能。如下文所討論的,功能對象是可以組合和連接以執(zhí)行更復(fù)雜任務(wù)的基本元素或單元或者構(gòu)建塊。功能對象可以被寫成具體地運行于某種處理器或處理器系列上。在圖8的例子中,有兩類功能對象,Host和SHARC。Host功能對象被設(shè)計成只能在PC或Host(主機)處理器上執(zhí)行。SHARC功能對象被設(shè)計成只能在SHARC DSP上執(zhí)行。下文將更詳細地討論User Objects(用戶對象),User Objects是功能對象的集合。
0077圖10示出了在啟動屏幕上打開并可??吭趩悠聊贿吘壍腟ystem Setup窗格、Project Explorer窗格、Toolbox窗格,以及Properties窗格。如清楚地顯示的,Properties窗格和Project Explorer窗格目前是空的。而且,Unassigned窗格或臨時窗格(它們目前也是空的)是不可見的。
0078轉(zhuǎn)到圖11-16,其示出了本編程方法中使用的額外的基礎(chǔ)組件和項目的初始化。如圖11所示,用戶通過打開File菜單并選中New/Project命令來開始。圖12示出了在啟動屏幕內(nèi)的Create NewProject的窗口,以及用戶為項目指定一個名稱,例如“Simple Project(簡單項目)”。如圖13所示,當前出現(xiàn)了空白配置畫布,且System Setup窗格、Project Explorer窗格、Toolbox窗格,以及Properties窗格沿著畫布的邊緣保持打開。目前,Project Explorer示出了樹的起點,其將追蹤畫布上的項目。
0079一旦項目被初始化,三個新的菜單選項將出現(xiàn)。如圖14所示,配置畫布的Edit菜單包含了常見的窗口編輯控件。如圖15所示,配置畫布的Insert菜單為用戶提供了一個繪圖對象的列表,其可以被插入到配置畫布中。上文討論的Toolbox窗格中的Drawing Objects文件夾包含了同樣的繪圖對象列表。圖16示出了配置畫布的Control菜單,其包括了用于控制已完成的項目的執(zhí)行的選擇。為了輔助用戶,執(zhí)行控件還放置在屏幕上的工具條上。
0080轉(zhuǎn)到圖17-31,現(xiàn)在詳細討論為處理系統(tǒng)編寫一個基礎(chǔ)項目的方法,如上文初始化的“Simple Project”,還將詳細討論許多其它特征。如圖17所示,一個關(guān)聯(lián)到處理器之一的處理器圖標被放置到畫布上。具體說來,來自處理器窗格的一個事件通過拖放選擇的方式被移到畫布上,以產(chǎn)生畫布上的處理器圖標。在本例中,REDgrid DSP Card節(jié)點下的編號為“1”的DSP被移到畫布上。用戶具體選定了IRQ2事件,且該事件在處理器的標簽中被標識出來。IRQ2事件是個重復(fù)性事件,其每秒鐘執(zhí)行20,480次執(zhí)行路徑?,F(xiàn)在,這個處理器中的所有事件都被加上陰影,表明該處理器不可再用于本項目中。應(yīng)該再次注意到,一旦一個事件被選中所有事件都不可用是處理系統(tǒng)的特定實施例的屬性。進一步地,沒有必要以一個處理器來開始一個項目,用戶可以采用任何所需的順序來構(gòu)建處理配置。
0081如圖18所示,用戶瀏覽Toolbox窗格尋找所需的功能對象,然后將關(guān)聯(lián)到第一功能對象的第一對象圖標放置到畫布上的第一位置處。具體說來,來自Toolbox窗格的關(guān)聯(lián)的符號被復(fù)制到畫布上,其定義了第一對象圖標。在本例中,第一對象圖標關(guān)聯(lián)到Sine WaveGenerator功能對象,其被從Toolbox窗格上的Sources文件夾下的SineWave Generator符號拖放到畫布上。Project Explorer窗格自動地在樹中指示Sine Wave Generator,并將在每次項目被修改時自動更新。該SineWave Generator被加亮或高亮,且Properties窗格裝入關(guān)于該Sine WaveGenerator的各種信息。
0082轉(zhuǎn)到圖19-22,其更詳細地說明了Properties窗格。在本例中,F(xiàn)loatAdd功能對象被放置在畫布上并被加亮。Properties窗格顯示為浮動在該功能對象旁邊。Properties窗格被用于檢查和修改該項目中的所有功能對象的幾乎所有屬性。例如,數(shù)據(jù)信號的屬性,連接符(數(shù)據(jù)端口),以及功能對象的可視化外觀都可以被檢查和/或修改。在圖19的例子中,用戶可以鍵入Input 1和Input 2的值,該值允許用戶為輸入信號設(shè)置初始條件。Properties窗格在小工具條里還有標簽用于選擇不同的視圖,如Signals(信號)、Connections(連接)、Info(信息),及Visuals(可視化)。圖19示出了Signals視圖。圖20示出了Connections視圖,在其中用戶可以選擇顯示或隱藏任何數(shù)據(jù)連接符。這對非常復(fù)雜的功能對象是有用的,其具有多個用戶可用的輸入和輸出,但僅有一些是需要的,從而消除了視覺混亂。圖21示出了Info視圖,以及圖22示出了Visuals視圖。在Visuals視圖中,關(guān)于圖形符號如何顯示和表現(xiàn)的每個方面都可被檢查和修改。
0083回到被創(chuàng)建的基礎(chǔ)項目,圖23示出了被放置在畫布上的第二位置處的第二對象圖標,其關(guān)聯(lián)到第二功能對象。第二圖標的第二位置與第一圖標的第一位置不同。在本例中,第二個圖標關(guān)聯(lián)到RandomNumber Generator(隨機數(shù)發(fā)生器)功能對象。如圖24和25所示,第三對象圖標接著被放置在畫布的第三位置處,所述第三對象圖標關(guān)聯(lián)到第三功能對象。另一方面,第三位置與第一和第二位置不同。本例中,第三圖標關(guān)聯(lián)到Float Multiply(浮點乘法器)功能對象。
0084由于圖標和處理器是被放置在畫布上的,因此本發(fā)明的一個特征涉及執(zhí)行路徑的路由和再路由。如圖24和25所示,執(zhí)行路徑以如下方式自動路由基于畫布上第三對象圖標的第三位置相對于第一對象圖標的第一位置和第二對象圖標的第二位置的方位,從第一和第二對象圖標中的一個到第三對象圖標路由。換種方式來說,執(zhí)行路徑被自動路由其從第一對象圖標和第三對象圖標中的一個到第二個對象圖標路由,這基于畫布上第三對象圖標的第三位置相對于第一對象圖標的第一位置和第二對象圖標的第二位置的方位。
0085在圖24的例子中,路由一條執(zhí)行路徑,其從第二對象圖標到第三對象圖標,這是因為當在畫布上從左到右看時,第二對象圖標的第二位置在第一對象圖標的第一位置和第三對象圖標的第三位置之間。當?shù)诙ο髨D標被放置在畫布上時,自動地從位于第一位置的第一對象圖標路由一條執(zhí)行路徑到位于第二位置的第二對象圖標。也就是說,如圖23所示,根據(jù)第二圖標的相對方位,直接并自動地從第一對象圖標路由一個條執(zhí)行路徑到第二對象圖標。
0086替代性地,如圖25中所示的,可從第一對象圖標自動路由一條執(zhí)行路徑到第三對像圖標,因為當在畫布上從左到右看時,畫布上第三對象圖標的第三位置處于第一對象圖標的第一位置和第二對象圖標的第二位置之間。在這個替代性的例子中,從第一個對象圖標自動且無縫地再路由一條執(zhí)行路徑,從圖23中所示的可以看出,作為對第三個對象圖標的方位的響應(yīng),所以該執(zhí)行路徑被再路由到第三對象圖標。進一步地,作為對第三對象圖標方位的響應(yīng),執(zhí)行路徑會自動從第三位置處的第三對象圖標路由到第二位置處的第二對象圖標。因此,在這個替代的例子中,執(zhí)行路徑從第一圖標路由到第三圖標,然后到第二圖標。
0087根據(jù)圖標的方位,一個執(zhí)行路徑也可以自動地從處理器圖標路由到第一、第二和第三對象圖標中的一個。根據(jù)畫布上從左到右看,基于第一、第二和第三對象圖標中最左邊位置,該執(zhí)行路徑從處理器圖標自動路由到第一、第二和第三對象圖標中的一個。在如圖17和18所示的例子中,處理器首先被放置在畫布上,然后第一圖標放置在畫布上。如圖18所示的執(zhí)行路徑自動路由到第一圖標,這是因為第一圖標在最左邊位置處。應(yīng)該意識到,不必要求處理器被首先放置在畫布上,進一步地,不必要求處理器沿著畫布的最左邊放置。
0088執(zhí)行路徑可以由著色的箭頭或唯一配置的箭頭所標識。如下文很詳細地闡明的,從不同的處理器到不同配置的對象圖標群之間可能有許多不同的執(zhí)行路徑。在這些類型的多進程配置中,需要有不同著色或不同配置的箭頭來標識不同的處理配置,其路由自不同的處理器。當前被檢查或修改的執(zhí)行路徑在工具條上被標識。
0089對比圖24和25,其示出了本發(fā)明的動態(tài)特性。對象圖標可以一開始按圖24所示的方位被放置在畫布上。接著對象圖標中的一個(本例中的第三對象圖標)可被移動到不同的位置。在圖25的例子中,F(xiàn)loatmultiply(第三對象圖標)被移到第一個和第三圖標之間的位置。如上述討論的,根據(jù)第三對象圖標相對于畫布上的其它圖標的移動的方位,執(zhí)行路徑自動且無縫地再路由。當圖標從一個方位拖向另一個方位的同時,執(zhí)行路徑的產(chǎn)生以及重畫過程被實時執(zhí)行且將繼續(xù)進行下去。
0090對比圖24和26,示出了本發(fā)明的動態(tài)特性的另一例子。處理器和對象圖標可以一開始按圖24所示的方位被放置到畫布上。如圖26所示,接下來Random Number Generator(第二對象圖標)可被移動到處理器和第一對象圖標之間。第二對象圖標現(xiàn)在是最左邊的圖標,這使得執(zhí)行路徑從處理器自動和無縫地再路由到該第二對象圖標(參見圖26)。如圖27所示,作為響應(yīng),剩余的執(zhí)行路徑也被再路由,使得現(xiàn)在執(zhí)行路徑從處理器路由到第二對象圖標,再到第一對象圖標,以及再到第三對象圖標。
0091還是如圖27所示,關(guān)聯(lián)到第四功能對象的第四對象圖標被放置到畫布上的第四位置,該第四位置與第一、第二和第三位置不同。在本例中,第四圖標被關(guān)聯(lián)到Scope(示波器)功能對象。當?shù)谒膶ο髨D標被放置在畫布上時,執(zhí)行路徑被自動地從位于第三位置的第三對象圖標路由到該位于第四位置的第四對象圖標。應(yīng)該認識到可能有任意數(shù)量的、被放置在畫布上的、關(guān)聯(lián)到相同或不同功能對象的額外的圖標。在本例中,還有一個額外的圖標被放置到畫布上,其也關(guān)聯(lián)到Scope。
0092每個功能對象和相關(guān)聯(lián)的對象圖標包括至少一個輸入和/或至少一個輸出。輸入和輸出被設(shè)計成用于接收和傳輸數(shù)據(jù)的數(shù)據(jù)端口。圖27A示出了Float Multiply圖標,其具有兩個輸入和單個輸出。應(yīng)該認識到功能對象和對象圖標可能根據(jù)需要具有任意適當?shù)臄?shù)量的輸入和/或輸出。
0093參見圖27A和27B,示出了關(guān)聯(lián)到每一個對象圖標的另一種特性。具體地說,第一、第二和第三對象圖標中的每一個都包含多個符號,例如數(shù)學(xué)或工程符號,以及包含諸如文本的描述符。因為畫布空間所限,對用戶有優(yōu)勢的做法是具有多個符號和描述符,其在有需要時可以動態(tài)變化的。有時候僅是符號就足夠讓用戶明白功能或功能對象的操作。其它時候,用戶想要看到輸入和輸出的更多細節(jié)和描述,例如,圖27A示出了Float Multiply圖標,其具有用戶可見的文本描述符。具體來說,輸入和輸出數(shù)據(jù)端口是可見的。輸入和輸出的標簽是可以被用戶配置的。在所示的例子中,只有輸入和輸出的名字的第一個字符被顯示,以節(jié)約空間。因為優(yōu)選的執(zhí)行路徑是以從左到右的方式進行處理的,因此輸入顯示在左邊緣,而輸出顯示在右邊緣。圖27B示出了同樣的Float Multiply圖標,該圖標目前具有用戶可見的符號。如果用戶指向一個具體的輸入或輸出,該輸入或輸出的名字將會是可見的。在優(yōu)選實施例中,每個對象圖標包括圖形符號和文本描述符,且任何時刻只有符號和描述符中的一個是可見的。更優(yōu)選的是,用戶將在對象上放置光標以動態(tài)地改變視圖。
0094在我們的示例項目的這一點上,如圖27所示,執(zhí)行路徑已經(jīng)全部被建立了。然而,在優(yōu)選實施例中,執(zhí)行路徑獨立于數(shù)據(jù)流路徑。參見圖28和29,現(xiàn)在畫布上第一、第二、第三和第四對象圖標之間的數(shù)據(jù)流路徑已獨立于畫布上的執(zhí)行路徑的路由而被創(chuàng)建了。具體地,對象圖標之間的數(shù)據(jù)流路徑的創(chuàng)建是這樣執(zhí)行的在畫布上手動地將來自對象圖標之一的輸出連接到另一個對象圖標的輸入。更具體地,用戶點擊輸入或輸出,并將畫布上的指針拖向相反的輸入或輸出。如果獲得一個可允許的數(shù)據(jù)連接,則畫一條實線指示已連接的數(shù)據(jù)流路徑。在圖28所示的例子中,通過連接數(shù)據(jù)端口之間的數(shù)據(jù)流路徑,Random Number Generator的輸出被連接到Float Multiply的輸入。執(zhí)行路徑不受數(shù)據(jù)流路徑連接的影響。
0095圖29示出了各種對象圖標之間的已完成的數(shù)據(jù)流路徑。當一個或多個對象圖標要求多個輸入時,數(shù)據(jù)流路徑可以自動地分布到多于一個的輸入,由此在數(shù)據(jù)流路徑上創(chuàng)建了分布點。數(shù)據(jù)流路徑的分布決不會影響數(shù)據(jù)的實際值。經(jīng)過數(shù)據(jù)流路徑的數(shù)據(jù)值僅僅是傳遞給多于一個的對象圖標。在所示例子中,F(xiàn)loat Multiply和Scope 2都要求多個輸入,因此,Sine Wave Generator和Random Number Generator的輸出被分布開,且分布點被放置在數(shù)據(jù)流路徑的這個區(qū)域。優(yōu)選地,關(guān)聯(lián)到另一個功能對象的分布圖標在數(shù)據(jù)流路徑上的分布點處自動被創(chuàng)建。進一步的,執(zhí)行路徑自動地被再路由以根據(jù)圖標的相對方位而將分布點處的分布圖標包含進來。替代性地,當一個或多個圖標要求多于一個輸入時,關(guān)聯(lián)到另一個功能對象的分布圖標可以被手動地放置在數(shù)據(jù)流路徑上以分布數(shù)據(jù)流路徑。
0096參見圖30和31,項目現(xiàn)在已經(jīng)完成。處理系統(tǒng)可以按如下方式被操作功能對象按照對象圖標之間的執(zhí)行路徑的順序執(zhí)行關(guān)聯(lián)的功能,并且數(shù)據(jù)沿著圖標之間的數(shù)據(jù)流路徑被傳送。處理系統(tǒng)的操作進一步定義為按照畫布上從左至右的順序操作圖標之間的執(zhí)行路徑。因此,最左邊的對象圖標最先執(zhí)行,緊挨著它右邊的對象第二個執(zhí)行,依此類推,直到某一特定執(zhí)行路徑上所有的對象圖標都已被執(zhí)行為止。如上文所提及的,典型的處理系統(tǒng)將是重復(fù)性的,因此,一旦關(guān)聯(lián)到最右邊的對象圖標的功能對象已被執(zhí)行,整個操作將持續(xù)地重復(fù)。在優(yōu)選例中,沿著數(shù)據(jù)流路徑傳送的數(shù)值將在執(zhí)行路徑的每一次傳遞之間被保存。因此,上一次執(zhí)行產(chǎn)生的數(shù)值可以用作下一次執(zhí)行的輸入。應(yīng)該意識到,操作順序可以改變,而這并不偏離本發(fā)明的整體范圍。
0097項目的操作通過工具條上的命令來控制,例如停止、暫停和運行。在如圖31所示的目標例子,Scope 2顯示來自Sine Wave Generator和Random Number Generator的初始信號。Scope 1顯示這些信號的實時乘積。
0098本發(fā)明的另一個特征是對象圖標之一可以被移動到不同的位置,并基于畫布上該對象圖標相對于彼此移動后的方位自動地再路由執(zhí)行路徑,與此同時正在操作處理系統(tǒng),因此執(zhí)行路徑是實時地被再路由的。換句話說,在處理系統(tǒng)執(zhí)行的同時,也可以執(zhí)行上文所詳細討論的在編程處理系統(tǒng)時圖標的移動和執(zhí)行路徑的再路由,因此這極大地增強了本發(fā)明的通用性。
0099轉(zhuǎn)到圖32-36,其示出了另一個已完成的項目。這個項目的配置畫布較大,這是因為System Setup窗格、Project Explorer窗格、Toolbox窗格、Properties窗格,以及Unassigned窗格都停靠在屏幕的右手邊。如上文所提及的,窗格可以以任何適當?shù)男问讲贾迷谄聊簧稀D32所示的特定配置在允許對所有窗格進行訪問的同時,最大化配置畫布的空間。
0100圖32-36所示的項目是多進程的,即畫布上放置有多于一個的處理器。為了生成圖32所示的配置,關(guān)聯(lián)到第一處理器的第一處理器圖標被放置在畫布上,每個都關(guān)聯(lián)到第一批功能對象的第一批對象圖標被放置在畫布上的多個不同位置。當?shù)谝慌鷮ο髨D標被放置在畫布上以定義第一處理配置時,第一批執(zhí)行路徑從第一處理器圖標自動路由到第一批對象圖標中的每一個。類似地,第二處理器圖標被放置在畫布上,每個都關(guān)聯(lián)到第二批功能對象的第二批對象圖標被放置在畫布上的多個不同位置。當?shù)诙鷮ο髨D標被放置在畫布上以定義第二處理配置時,第二批執(zhí)行路徑從第二處理器圖標自動路由到第二批對象圖標中的每一個。如所示出的,第二處理配置大多是第一個處理配置的復(fù)制,以在系統(tǒng)中制造冗余。最后,第三處理器圖標被放置在畫布上,每個都關(guān)聯(lián)到第三批功能對象的第三批對象圖標被放置在畫布上的多個不同位置。當?shù)谌鷮ο髨D標被放置在畫布上以定義第三處理配置時,第三批執(zhí)行路徑從第三處理器圖標自動路由到第三批對象圖標中的每一個。為了區(qū)分第一、第二和第三批執(zhí)行路徑,這些執(zhí)行路徑都被唯一地加標簽了。優(yōu)選地,第一、第二和第三批執(zhí)行路徑可以通過對每個執(zhí)行路徑使用唯一的顏色來區(qū)分。
0101第一數(shù)據(jù)流路徑在畫布上的第一批對象圖標之間創(chuàng)建,其獨立于畫布上來自第一處理器圖標的執(zhí)行路徑的路由。在本例中,第一數(shù)據(jù)流路徑在Signal Generator 1(信號發(fā)生器1)、Signal Generator 2(信號發(fā)生器2)、Float Subtract 1(浮點減法器1)、Power 1(冪運算器1),以及Mean 1(平均值器1)之間生成。類似地,第二數(shù)據(jù)流路徑在畫布上的第二批對象圖標之間生成,其獨立于畫布上來自第二處理器圖標的執(zhí)行路徑的路由。在本例中,第二數(shù)據(jù)流路徑在一對分布圖標、Float Subtract 2、Power 2,以及Mean 2之間生成。因為數(shù)據(jù)流路徑的分布,Signal Generator 1和Signal Generator 2將數(shù)據(jù)發(fā)送到第一和第二數(shù)據(jù)流路徑。最后,第三數(shù)據(jù)流路徑在畫布上的第三批對象圖標之間生成,其獨立于畫布上來自第三處理器圖標的執(zhí)行路徑的路由。在本例中,第三數(shù)據(jù)流路徑在第一數(shù)據(jù)流路徑的Mean 1、第二數(shù)據(jù)流路徑的Mean 2、Float Subtract 3、FloatAbsolute value 1(浮點絕對值器1),以及Meter 1(儀表1)之間生成。正如已清楚說明的,數(shù)據(jù)流路徑可以在畫布上任意對象圖標之間生成以使數(shù)據(jù)流動。具體而言,第一、第二和第三數(shù)據(jù)流路徑中至少一個被路由,以在至少一個的第一批、第二批和第三批對象圖標之間流動,以使得數(shù)據(jù)傳送經(jīng)過第一個、第二個和第三處理配置以及在它們之間傳送。如果必要,數(shù)據(jù)流路徑也可以根據(jù)上面所描述的程序來分布。這些處理配置的創(chuàng)建(現(xiàn)在已經(jīng)完成)是按照上文所描述的方法來執(zhí)行的。
0102如圖33所示,對象圖標可以被移到畫布上的不同方位。當圖標被移動時,數(shù)據(jù)流路徑不被修改。該數(shù)據(jù)流路徑僅僅是根據(jù)新的方位而被重畫。每個處理配置的執(zhí)行路徑?jīng)]有與其它處理配置的執(zhí)行路徑自動地交互。因此,如圖33所示,第三處理配置的對象圖標已被移動到畫布的上端。來自第三處理配置的處理器的執(zhí)行路徑自動地跟隨第三處理配置的最左邊的對象圖標,且沒有與第一和第二處理配置的其它執(zhí)行路徑自動地交互。
0103圖34是在畫布之內(nèi)的對象圖標改變方位的另一個例子。具體而言,第二處理配置的對象圖標(Float Subtract 2)被移到了畫布上的一個不同的方位處。另一方面,數(shù)據(jù)流路徑?jīng)]有改變,而僅僅是基于對象圖標的新方位而被重畫了。本圖清楚地說明了數(shù)據(jù)流路徑可以從左到右、從右到左、從上到下等等傳送數(shù)據(jù)。然而,從右到左傳送數(shù)據(jù)的數(shù)據(jù)流路徑有一個影響如上文所提及的,執(zhí)行路徑是從左到右進行處理的。因此,當數(shù)據(jù)連接是從位于執(zhí)行路徑后面的對象圖標發(fā)起時,將會產(chǎn)生延遲。因此,將對象圖標移動以迫使數(shù)據(jù)流路徑從右到左傳送數(shù)據(jù)可以是初始化數(shù)據(jù)通道中的延遲的一種方法。在圖34所示的目標例子中,由于Float Subtract 2圖標的方位位于第二處理配置的執(zhí)行路徑中的后面位置處,因此發(fā)給Power 2圖標的數(shù)據(jù)就沒有被接收到,從而在處理系統(tǒng)的重復(fù)執(zhí)行中將產(chǎn)生一個單獨的延遲。
0104如上文詳細討論的,第二處理配置的執(zhí)行路徑將被再路由,這是由于對象圖標被移動之前是最左邊的圖標。因此,第二處理配置的處理器的執(zhí)行路徑被再路由到新的最左邊的對象圖標(Power2)。到被移動的對象圖標的執(zhí)行路徑也被再路由,現(xiàn)在是從被移動的對象圖標(Float Subtract 2)的左邊的對象圖標(Mean 2)開始路由的。另一方面,第一和第三處理配置的執(zhí)行路徑不受影響。
0105圖35示出了本發(fā)明的再一個特征,其中,多進程環(huán)境中的執(zhí)行路徑可以被手動地再路由。具體來說,通過自動移走關(guān)聯(lián)到被再路由的對象圖標的第一批執(zhí)行路徑和自動將第二批執(zhí)行路徑路由到被再路由的對象圖標,來自第一處理配置的第一批對象圖標之一被再路由到第二處理配置。在圖35所示的例子中,之前是第一處理配置的執(zhí)行路徑的一部分的Signal Generator 1已被移動,成為了第二處理配置的執(zhí)行路徑的一部分。這項操作是通過加亮要被移動的對象圖標(本例中的Signal Generator 1)來執(zhí)行的。接著,通過使用工具條改變執(zhí)行路徑。舊配置(第一處理配置)和新配置(第二處理配置)的執(zhí)行路徑都被自動地再路由。數(shù)據(jù)流路徑不受影響。這種類型的改變可能對用戶有實際的好處。具體地說,計算負擔(dān)可以更平均地分配在兩個DSP上。
0106圖36示出了與圖35所示的類似的本發(fā)明的一個特征。然而對象圖標是從第一處理配置移動到第三處理配置的。因此,關(guān)聯(lián)到被再路由的對象圖標的第一批執(zhí)行路徑被自動移走,而第三批執(zhí)行路徑被自動路由到被再路由的對象圖標。在圖36所示的例子中,之前是第一處理配置的執(zhí)行路徑的一部分的Signal Generator 1,現(xiàn)在被移動為第三處理配置的執(zhí)行路徑的一部分。另一方面,數(shù)據(jù)流路徑?jīng)]有受影響。
0107對象圖標移入和移出各種處理配置的動作是極其通用的工具,且不被處理器的機器語言所約束。具體地說,第一處理器可能包含第一機器語言,而第二處理器可能包含與該第一機器語言不同的第二機器語言。在不同機器語言下操作的處理配置的對象圖標的再路由是無縫的,且不受不同機器語言的影響。
0108參見圖36A,一個同步對象可以被插入到第一處理配置圖標之間的執(zhí)行路徑和第二處理配置圖標之間的執(zhí)行路徑中,以便在插入點處同步這些執(zhí)行路徑。因此,這些執(zhí)行配置中每一個上對數(shù)據(jù)的處理都將在插入點處實時地同步。同步對象提供簡單、圖形化的方法來排列多進程環(huán)境中功能對象的執(zhí)行。如所意識到的,不同處理器和/或不同事件可以不同的速率執(zhí)行。同步對象允許用戶具體地在多處理器的多個執(zhí)行路徑中強制添加同步點。當具體的執(zhí)行路徑的執(zhí)行到達同步對象時,執(zhí)行將等待直到所有的同步化執(zhí)行路徑都到達它們各自的同步對象。此時,所有的執(zhí)行路徑都被允許繼續(xù)進行。
0109轉(zhuǎn)到圖37-46,將詳細討論本發(fā)明的可視化儀器特征??梢暬瘍x器允許用戶創(chuàng)建控件和指示符,其將出現(xiàn)在計算機的監(jiān)視器上,并將允許用戶在操作過程中與處理系統(tǒng)交互影響。如圖37所示,計算機還包括儀器畫布。儀器畫布被放置在配置畫布之上。應(yīng)該意識到,可能同一時刻有多個打開的儀器畫布。如圖38所示,處理系統(tǒng)包括至少一個可視化儀器。優(yōu)選地,可視化儀器是在Toolbox窗格中的VisualInstrument(可視化儀器)文件夾下找到。
0110如圖39所示,至少一個可視化儀器被放置到儀器畫布上。具體說來,可視化儀器的符號被放在Toolbox窗格內(nèi),其拷貝被拖放到儀器畫布之內(nèi)以定義可視化儀器??梢暬瘍x器可以被放置在儀器畫布內(nèi)并還可按照需要隨意調(diào)整大小。在所示例子中,儀器畫布包括Knob(旋鈕)和Meter(儀表)。
0111圖40示出了另一種配置畫布,其中至少一個關(guān)聯(lián)到功能對象的對象圖標被放置在配置畫布上。關(guān)聯(lián)到處理器的一個或多個處理器圖標也被放置在畫布上。當對象圖標被放置在配置畫布上以定義一個處理配置時,處理器圖標和對象圖標(一個或多個)之間的一個或多個執(zhí)行路徑被自動路由。配置畫布上的處理器圖標和對象圖標之間的數(shù)據(jù)流路徑也被創(chuàng)建。
0112參見圖39-41,當可視化儀器被放置到儀器畫布上時,關(guān)聯(lián)到可視化儀器的儀器圖標被自動放置在Unassigned窗格或臨時窗格。接著,儀器圖標被從臨時窗格移動,以放置該儀器圖標到配置畫布上面。在本例中,當Knob和Meter被放置在儀器畫布之上時,關(guān)聯(lián)到Knob和Meter的儀器圖標將被自動放置在Unassigned窗格或臨時窗格。如圖40所示,Knob已經(jīng)被移動到配置畫布而Meter仍留在Unassigned窗格或臨時窗格內(nèi)。具體地,Knob已經(jīng)被從Unassigned窗格拖放到配置畫布。圖41示出了Knob和Meter都已被移動到配置畫布,使得Unassigned窗格或臨時窗格再次變空。
0113如圖42所示,在儀器圖標和配置畫布上的處理配置之內(nèi)的至少一個對象圖標之間生成數(shù)據(jù)流路徑,使得儀器畫布上的可視化儀器被可操作地連接到配置畫布上的處理配置。處理配置現(xiàn)在已完成。
0114如圖43所示,處理配置以如下方式被操作功能對象按照圖標之間的執(zhí)行路徑的順序執(zhí)行關(guān)聯(lián)的功能,并且數(shù)據(jù)沿著圖標之間的數(shù)據(jù)流路徑傳送??梢暬瘍x器可以被操縱以自動地實時改變沿著數(shù)據(jù)流路徑傳送的數(shù)據(jù)值。
0115可視化儀器優(yōu)選地被鏈接到儀器圖標,用于在儀器畫板上的可視化儀器和配置畫板上的儀器圖標之間切換的命令可被初始化。該命令特征是導(dǎo)航幫助,用于輔助用戶在各個視圖和處理配置的各個部分之間快速地移動。當配置變得龐大而復(fù)雜時,難于追蹤儀器和它們的連接特性。同樣的,該命令特征對用戶而言是生產(chǎn)力和質(zhì)量的極大幫助,其使得用戶可以從儀器圖標快速地定位可視化儀器,反之亦然。
0116轉(zhuǎn)到圖44-46,其示出了在配置畫布上放置儀器圖標和在儀器畫布上放置可視化儀器的可替換的方式。處理配置的生成與上文討論以及與圖42所示出的一樣。不同之處在于儀器圖標和可視化儀器的放置,以及Unassigned窗格的相反性質(zhì)。在本實施例中,最少一個儀器圖標被首先放置在配置畫布上。具體地說,關(guān)聯(lián)到該儀器圖標的符號從Toolbox窗格被直接拖到配置畫布上。見圖45,當儀器圖標被放置到配置畫布時,關(guān)聯(lián)到該儀器圖標的可視化儀器接下來被自動放置到Unassigned窗格或臨時窗格。在儀器圖標和配置畫布上的處理配置內(nèi)的至少一個對象圖標之間生成數(shù)據(jù)流路徑。如圖46所示,接下來可視化儀器被從Unassigned窗格或臨時窗格移動開,以將可視化儀器放置在儀器畫布上,其中儀器畫布上的可視化儀器操作地被連接到配置畫布上的處理配置。本實施例的可視化儀器還被鏈接到儀器圖標,從而提供命令,該命令用于在儀器畫布的可視化儀器與配置畫布的儀器圖標之間切換。用戶可以自由使用任何一種在各自的畫布上放置儀器圖標和可視化儀器的方法。
0117圖47-49示出了另一種已完成的處理配置。該處理配置用上面討論的同樣方式產(chǎn)生。對比圖48和49,其示出了將一個對象圖標相對于另一個對象圖標定位的另一種例子,其中在再定位過程中,執(zhí)行路徑動態(tài)變化。本例中,F(xiàn)loat Add圖標相對于Float Subtract圖標和FloatMultiply圖標移動。在處理配置旁邊還示出了Properties窗格。當FloatAdd被移動時,Outputs被自動更新。具體說來,Next Code從FloatSubtract(圖48)變?yōu)镕loat Multiply(圖49)。類似地,Next Data從Float Subtract(圖48)變?yōu)镕loat Multiply(圖49)。這些輸出是已知的代碼和數(shù)據(jù)指針,其更具體的描述參見共同待決的美國專利申請第09/692,852號和第09/982,601號,其公開的內(nèi)容在此以引用方式并入本文。
0118圖50-53示出了本發(fā)明的進一步的額外的特征。圖50中使用用戶對象創(chuàng)建了處理配置。用戶對象是一種特殊類型的功能對象,且被設(shè)計以允許用戶創(chuàng)建導(dǎo)航層次(navigation hierarchy)。具體說來,用戶對象是其它對象圖標的集合??梢愿鶕?jù)需要保存和重用用戶對象。雙擊圖50中的User Object 1將展現(xiàn)如圖51所示的子配置。輸入和輸出符號被用于指示數(shù)據(jù)流的方向。在圖51的子配置內(nèi)是User Object 2。雙擊User Object 2將展現(xiàn)如圖52所示的子配置。這是層次的最低級別。User Object的數(shù)目被列在工具條中。如圖35所示,挨著處理配置打開Project Explorer窗格。該Project Explorer窗格示出了當前配置的輔助用戶的各種層次。如上所提及的,每次圖標被添加、移動、替換、刪除等等時,Project Explorer窗格自動重新產(chǎn)生。Project Explorer窗格是項目配置的重要導(dǎo)航工具或索引。用戶可以點擊在整個配置范圍內(nèi)的圖標,而Project Explorer將反映在層次中圖標的位置。同樣,用戶可點擊Project Explorer樹上的某個符號或其它對象,則畫布會自動切換以顯示該被選中的對象圖標。
0119圖54示出了處理系統(tǒng)的液壓伺服控制器實施方式。特別地,已經(jīng)為閉環(huán)伺服控制器創(chuàng)建了一個項目配置。應(yīng)該意識到,處理配置的創(chuàng)建可能極其復(fù)雜,而使用本發(fā)明將極大地輔助這些配置的編程和操作。
0120本發(fā)明已經(jīng)通過示例的方式進行了描述,且應(yīng)該理解,所用術(shù)語具有字面上描述的本意,而不是限制性的。對于本領(lǐng)域技術(shù)人員顯而易見的是,按照上述教導(dǎo),對本發(fā)明的修改和變形都是可能的。因此可以理解,在所附權(quán)利要求的范圍內(nèi),本發(fā)明可以不同于具體描述的方式來實施。
權(quán)利要求
1.一種使用具有配置畫布、儀器畫布和臨時窗格的計算機對處理系統(tǒng)進行編程的方法,所述處理系統(tǒng)包括至少一個處理器、多個功能對象,及至少一個可視化儀器,所述多個功能對象的每一個包括執(zhí)行特定功能的命令,所述方法包括以下步驟將均關(guān)聯(lián)到多個功能對象的多個對象圖標放置到所述配置畫布的多個不同位置上;當所述多個對象圖標被放置在所述配置畫布上以定義處理配置時,在所述多個對象圖標的每一個之間自動路由多個執(zhí)行路徑;在所述配置畫布上的所述對象圖標之間創(chuàng)建數(shù)據(jù)流路徑;將至少一個可視化儀器放置到所述儀器畫布上;當所述可視化儀器被放置在所述儀器畫布上時,自動將與所述可視化儀器相關(guān)聯(lián)的儀器圖標放置到所述臨時窗格上;從所述臨時窗格將所述儀器圖標移動并放置到所述配置畫布上;以及在所述儀器圖標與所述配置畫布上所述處理配置內(nèi)至少一個對象圖標之間創(chuàng)建數(shù)據(jù)流路徑,以使位于所述儀器畫布上的所述可視化儀器與所述配置畫布上的所述處理配置可操作地相連。
2.根據(jù)權(quán)利要求1所述的方法,進一步包括如下步驟操作所述處理配置以使所述功能對象按照所述圖標之間的執(zhí)行路徑的順序來執(zhí)行關(guān)聯(lián)的功能,并且數(shù)據(jù)沿著所述圖標之間的所述數(shù)據(jù)流路徑來傳送。
3.根據(jù)權(quán)利要求2所述的方法,進一步包括如下步驟在所述處理系統(tǒng)操作的同時,將至少一個所述對象圖標移動到不同的位置,并且基于所述畫布上的所述對象圖標移動的方位自動再路由所述執(zhí)行路徑,以使所述執(zhí)行路徑被實時地再路由。
4.根據(jù)權(quán)利要求3所述的方法,其中所述操作所述處理系統(tǒng)的步驟被進一步定義為以從所述畫布上從左至右看的順序,在所述圖標之間操作所述執(zhí)行路徑。
5.根據(jù)權(quán)利要求1所述的方法,其中所述在多個所述對象圖標之間自動路由所述多個執(zhí)行路徑的步驟被進一步定義為基于所述對象圖標的相對方位,在所述多個對象圖標之間自動路由所述多個執(zhí)行路徑。
6.根據(jù)權(quán)利要求5所述的方法,其中在所述多個對象圖標之間自動路由所述多個執(zhí)行路徑的步驟被進一步定義為基于所述對象圖標的相對從左至右的方位,以從所述畫布上從左至右看的順序,在所述多個對象圖標之間自動路由所述多個執(zhí)行路徑。
7.根據(jù)權(quán)利要求5所述的方法,進一步包括如下步驟將至少一個所述對象圖標移動到不同位置,并且基于所述畫布上所述對象圖標的被移動的方位,來自動地再路由所述執(zhí)行路徑。
8.根據(jù)權(quán)利要求1所述的方法,進一步包括如下步驟操縱所述可視化儀器,以實時自動地改變沿所述數(shù)據(jù)流路徑傳送的數(shù)據(jù)值。
9.根據(jù)權(quán)利要求1所述的方法,進一步包括如下步驟將所述可視化儀器鏈接到所述儀器圖標,并且進一步包括如下步驟提供命令,該命令用于在所述儀器畫布上的所述可視化儀器與所述配置畫布上的所述儀器圖標之間切換。
10.根據(jù)權(quán)利要求1所述的方法,其中,在所述對象圖標之間創(chuàng)建數(shù)據(jù)流路徑的步驟被進一步定義為在所述畫布上所述對象圖標之間創(chuàng)建數(shù)據(jù)流路徑,該創(chuàng)建獨立于在所述畫布上所述執(zhí)行路徑的路由,以使所述執(zhí)行路徑和所述數(shù)據(jù)流路徑彼此獨立
11.根據(jù)權(quán)利要求1所述的方法,進一步包括如下步驟將與所述處理器相關(guān)聯(lián)的處理器圖標放置在所述畫布上。
12.根據(jù)權(quán)利要求11所述的方法,進一步包括如下步驟基于所述圖標的方位,將一執(zhí)行路徑從所述處理器圖標自動路由到所述對象圖標中的一個。
13.根據(jù)權(quán)利要求12所述的方法,其中,將所述執(zhí)行路徑從所述處理器圖標路由到所述對象圖標中一個的步驟被進一步定義為基于在所述畫布上從左至右看的所述對象圖標的最左邊的位置,將所述執(zhí)行路徑從所述處理器圖標自動地路由到所述對象圖標中的一個。
14.一種使用具有配置畫布、儀器畫布和臨時窗格的計算機對處理系統(tǒng)進行編程的方法,所述處理系統(tǒng)包括至少一個處理器、多個功能對象,及至少一個可視化儀器,所述多個功能對象的每一個包括執(zhí)行特定功能的命令,所述方法包括以下步驟將均關(guān)聯(lián)到多個功能對象的多個對象圖標放置到所述配置畫布的多個不同位置上;當所述多個對象圖標被放置在所述配置畫布上以定義處理配置時,在所述多個對象圖標的每一個之間自動路由多個執(zhí)行路徑;在所述配置畫布上的所述對象圖標之間創(chuàng)建數(shù)據(jù)流路徑;將至少一個儀器圖標放置到所述配置畫布上;當所述儀器圖標被放置在所述配置畫布上時,將與所述儀器圖標相關(guān)聯(lián)的可視化儀器自動放置到所述臨時窗格上;在所述儀器圖標與所述配置畫布上所述處理配置內(nèi)的至少一個所述對象圖標之間創(chuàng)建數(shù)據(jù)流路徑;以及從所述臨時窗格將所述可視化儀器移動并放置到所述儀器畫布上,所述儀器畫布上的可視化儀器被可操作地連接到所述配置畫布上的所述處理配置。
15.根據(jù)權(quán)利要求14所述的方法,進一步包括如下步驟操作所述處理配置以使所述功能對象按照所述圖標之間的執(zhí)行路徑的順序來執(zhí)行關(guān)聯(lián)的功能,并且數(shù)據(jù)沿著所述圖標之間的所述數(shù)據(jù)流路徑傳送。
16.根據(jù)權(quán)利要求15所述的方法,進一步包括如下步驟在所述處理系統(tǒng)操作的同時,將至少一個所述對象圖標移動到不同的位置,并且基于所述畫布上所述對象圖標移動的方位自動地對所述執(zhí)行路徑進行再路由,以使所述執(zhí)行路徑被實時地再路由。
17.根據(jù)權(quán)利要求16所述的方法,其中所述操作所述處理系統(tǒng)的步驟被進一步定義為以從所述畫布上從左至右看的順序,在所述圖標之間操作所述執(zhí)行路徑。
18.根據(jù)權(quán)利要求14所述的方法,其中所述在多個所述對象圖標之間自動路由所述多個執(zhí)行路徑的步驟被進一步定義為基于所述對象圖標的相對方位,在所述多個對象圖標之間自動路由所述多個執(zhí)行路徑。
19.根據(jù)權(quán)利要求18所述的方法,其中在所述多個對象圖標之間自動路由所述多個執(zhí)行路徑的步驟被進一步定義為基于所述對象圖標的相對從左至右的方位,以從所述畫布上從左至右看的順序,在所述多個對象圖標之間自動路由所述多個執(zhí)行路徑。
20.根據(jù)權(quán)利要求18所述的方法,進一步包括如下步驟將至少一個所述對象圖標移動到不同位置,并且基于所述畫布上所述對象圖標移動的方位,來自動地再路由所述執(zhí)行路徑。
21.根據(jù)權(quán)利要求14所述的方法,進一步包括如下步驟操縱所述可視化儀器,以實時自動地改變沿所述數(shù)據(jù)流路徑傳送的數(shù)據(jù)值。
22.根據(jù)權(quán)利要求14所述的方法,進一步包括如下步驟將所述可視化儀器鏈接到所述儀器圖標,并且進一步包括如下步驟提供命令,該命令用于在所述儀器畫布上的所述可視化儀器和所述配置畫布上的所述儀器圖標之間切換。
23.根據(jù)權(quán)利要求14所述的方法,其中,在所述對象圖標之間創(chuàng)建數(shù)據(jù)流路徑的步驟被進一步定義為在所述畫布上的所述對象圖標之間創(chuàng)建數(shù)據(jù)流路徑,該創(chuàng)建獨立于在所述畫布上的所述執(zhí)行路徑的路由,以使所述執(zhí)行路徑和所述數(shù)據(jù)流路徑彼此獨立。
24.根據(jù)權(quán)利要求14所述的方法,進一步包括如下步驟將與所述處理器相關(guān)聯(lián)的處理器圖標放置在所述畫布上。
25.根據(jù)權(quán)利要求24所述的方法,進一步包括如下步驟基于所述圖標的方位,將一執(zhí)行路徑從所述處理器圖標自動路由到所述對象圖標中的一個。
26.根據(jù)權(quán)利要求25所述的方法,其中,將所述執(zhí)行路徑從所述處理器圖標路由到所述對象圖標之一的步驟被進一步定義為基于在所述畫布上從左至右看的所述對象圖標的最左邊的位置,將所述執(zhí)行路徑從所述處理器圖標自動地路由到所述對象圖標中的一個。
全文摘要
一種使用具有配置畫布和儀器畫布的計算機對處理系統(tǒng)進行編程的方法。所述方法包括以下步驟將每個都關(guān)聯(lián)到功能對象的對象圖標放置到所述配置畫布上;在所述對象圖標之間自動路由執(zhí)行路徑;在所述對象圖標之間還創(chuàng)建數(shù)據(jù)流路徑;將至少一個可視化儀器放置到所述儀器畫布上;自動將與所述可視化儀器相關(guān)聯(lián)的儀器圖標放置到臨時窗格上;從所述臨時窗格將所述儀器圖標移動并放置到所述配置畫布上;在所述儀器圖標和所述對象圖標中的一個之間創(chuàng)建數(shù)據(jù)流路徑,以使得位于所述儀器畫布之上的所述可視化儀器操作地與所述配置畫布上的所述處理配置相連。替代性地,至少一個儀器圖標可首先放置在所述配置畫布上。然后,與所述儀器圖標相關(guān)聯(lián)的所述可視化儀器可自動地放置在所述臨時窗格上。然后,將所述可視化儀器從所述臨時窗格上移動到所述儀器畫布上。
文檔編號G06F19/00GK1934511SQ200580009239
公開日2007年3月21日 申請日期2005年2月25日 優(yōu)先權(quán)日2004年2月25日
發(fā)明者A·R·奧斯本, C·考哈姆, S·布朗, S·H·布賴爾斯, S·伯吉斯, A·紐森, K·M·羅得斯 申請人:Bep技術(shù)公司