專利名稱:軟件的圖形比較顯示器的制作方法
技術領域:
本發明涉及一種用于顯示出軟件中的區別的方法。該軟件在此特別涉及一種軟件程序,其用于控制和/或調節工業過程和/或工業機器。該過程例如是化學過程、邏輯過程等等。機器例如是機床、生產用機床、鑄造機床、壓床、印刷機、木加工機床等等。
背景技術:
用戶為其應用而在可編程控制器和Motion-Control-System(運動控制器)中對固有的程序進行編程。這些程序加載到目標裝置上并且在那里運行。在機器的使用壽命期間、也或者例如在開始使用機器期間,例如可以通過過程改變也引起在用于目標裝置(例如整流器、可編程控制器(SPS)、主機)的程序中的改變。由此可以為相應的目標裝置產生多個程序版本。因此必須一方面根據相互間的改變來對程序(即軟件)進行比較(離線-離線-比較),以及可以在存儲的規劃狀態和目標裝置之間(在線-離線-比較)確定區別。例如Motion-Control-System是已知的,其中為用戶提供了編程語言或編程方法的至少一個下列提到的實例。這詳細地例如是 結構性文本(文本的高級語言編程) 梯形圖(圖形的連接邏輯) 功能圖(圖形的連接邏輯) 過程圖、特別是Motion-Control-Chart MCC (圖形的流程圖編程)對于比較文本語目(特別是聞級語目)、例如C、C++、Pascal、Fortran等等而目, 比較功能性可以通過比較編程文本得出。在圖形的編程語言、特別是在圖形的流程圖編程中無法使用比較功能。
發明內容
本發明的目的在于,在圖形的編程語言中、特別是在圖形的流程圖編程中提供比較功能。該目的例如通過一種根據權利要求I所述的用于比較圖形程序的方法來實現。其它實施方式根據依據從屬權利要求2至10所述的特征得出。圖形程序在此理解為軟件程序,其借助于圖形元素顯示和/或編程。對此的實例是圖形的流程圖編程、梯形圖(KOP)或功能圖(FUP)。在這樣的用于比較程序(在此可以涉及全部程序也或者設計部分程序)的方法中,將第一對象模型和第二對象模型進行比較,其中例如生成第一差別對象模型。第一差別對象模型基于第一對象模型顯示出在第一對象模型和第二對象模型之間的區別(如果其存在的話)。有利地,也顯示出第二差別對象模型,其基于第二對象模型顯示出在第二對象模型和第一對象模型之間的區別(如果存在至少一個區別的話)。對象模型例如理解為梯形圖、功能圖或流程圖。對象模型因此相應地可以在以下表示圖形的程序。
3
借助于過程圖可以對程序過程進行編程和/或顯示。特別是自動化技術中的程序因此可以以簡單的方式借助于圖形的元素進行圖形的編程。可以運行這樣編程的自動化裝置的實施例是 可編程控制器(SPS),·(特別是用于調節和/或控制運動過程的)運動控制器,籲整流器,·(例如用于印刷機的)主機,例如用于流水線、鋼廠、機床、包裝機、玻璃成型機
坐坐寸寸ο程序可以在這樣的裝置上運行,并且例如借助于工程系統在圖形基礎上編程。機床的應用程序(特別是用于機床的子程序)然后可以例如用在機床的運行時間系統上。過程圖是程序過程圖(PAP),其也可以稱為流程圖(flowchart)或程序結構圖。借助于圖形的顯示可以實現計算機程序中的算法(Algorithmus)的轉換。計算機程序在其它意義上是這種程序,其如上面已說明地例如在處理器上在工業設備中的控制裝置(例如可編程控制器(SPS))或調節裝置(例如運動控制器)上運行。通過圖形顯示可以以直觀的方式描述用于實現一個目的的一系列操作。用于程序過程圖中的元素的可能的符號例如在DIN 66001中進行了描述。在此也將用于數據流程圖的符號限定為其它類型的過程圖。程序過程圖也可以和計算機程序無關地用于顯示過程和活動。過程圖的另一個實施例是Nassi-Shneiderman圖(結構圖)。在通過UML反映面向對象的程序構思時,應用擴展的過程圖。由ISO 5807信息處理系統已知了用于過程圖的符號和協議。作為過程圖示出的程序是對象模型,其特別借助于圖形的編程界面說明,即已經在過程圖的意義上存在。也可能的是,程序生成為文本形式,以便因此在過程圖中以圖形示出。在KOP(梯形圖)或FUP(功能圖)中說明的程序可以在過程圖中被說明。這樣的程序被翻譯成機器語言。過程圖的元素例如可以是說明了確定的功能的橢圓形、矩形、菱形等等。根據DIN 66001例如通過橢圓形說明了開始點、停止點或邊界點。箭頭和直線說明了到接下來的元素的連接。矩形說明了操作,其中具有兩條垂直直線的矩形顯示出對子程序的調用。借助于菱形說明了分支,由此用符號表示真實性判斷。輸入和輸出例如可以顯示為并行程序。除了開始-元素、停止-元素、邊界點-元素、運行-元素、用于調用或處理一個或多個子程序的元素、分支-元素、輸入-元素或輸出-元素以外,也還可以在過程圖中實現其它的元素。對于自動化系統的用戶、例如操作者或程序員重要的是,對程序的過程在圖形上可以容易地識別和/或編程。對于用戶也重要的是,可以識別或分析程序例如相對于程序的舊版本狀態的改變。自動化系統例如具有這種裝置,其用于參數化、規劃和/或啟動控制系統和/或用于利用圖形編輯器完成優選為循環形式的控制程序,該編輯器用于對控制程序進行編輯。 為此可以使用工程操作系統。該工程操作系統可以例如執行對對象模型的比較。對此可替換地或附加地,也可以使用運行時間系統用于比較對象模型。在對象模型之間的區別可通過不同的圖形方式來顯示。元素的和元素之間的連接的圖形的外觀例如可以通過一個或多個以下的方式進行改變 在元素中改變顏色; 在元素中改變線條粗細; 在元素中改變灰度; 在元素中改變標記; 在元素中改變顏色飽和度; 使元素閃爍; 等等。通過以圖形為基礎來比較程序,其中將第一對象模型(特別是第一過程圖)和第二對象模型(特別是第二過程圖)進行比較,實現了在圖形上簡單地詳細比較流程圖編程的元素。因此也有可能相互比較圖形的連接邏輯。在用于比較圖形的程序的方法的一個實施方式中,將第一對象模型和第二對象模型進行比較,其中生成了第一和第二差別對象模型。該差別對象模型顯示出第一對象模型或第二對象模型分別和相應的另一個對象模型有何不同。在本方法的一個實施方式中,將第一對象模型和第二對象模型組合成總模型以用于進行比較。該總模型(總對象模型)可以(然而不是必需的)為用戶顯示出。將至少一個對象模型和總模型進行比較,其中在總模型和至少一個對象模型之間的區別顯示在相應的差別對象模型中。在第一差別對象模型中顯示出在總模型和第一對象模型之間的區別。 在第二差別對象模型中顯示出在總模型和第二對象模型之間的區別。在本方法的一個實施方式中,將第一對象模型和總模型進行比較。在第一差別對象模型中顯示出第一對象模型和相對于總模型的區別。也將第二對象模型和總模型進行比較,并且在第二差別對象模型中顯示出第二對象模型和相對于總模型的區別。在此特別以顏色來強調區別,其中有利地同時并排在屏幕上顯示出第一差別對象模型和第二差別對象模型。在本方法的一個實施方式中,這樣對差別對象模型進行對比,即第一和第二對象模型的相同的或類似的元素在相同高度上垂直或水平地顯示在兩個差別對象模型中。這使得模型的比較特別簡單。有利地并不強調和相應的輸出-對象模型沒有區別的差別對象模型的元素。在本方法的一個實施方式中,在差別對象模型中顯示出在第一對象模型和第二對象模型之間的相似性。在本發明的一個實施方式中,在第一差別對象模型和/或在第二差別對象模型中顯示出或標記出缺少的元素和/或附加的元素。在本方法的一個實施方式中,差別對象模型顯示出下列在對象模型之間的至少一個區別:
附加的元素,
缺少的元素,
附加的聯系,
缺少的聯系,
籲元素的相同的參數化,
籲元素的不同的參數化,和/或
元素的不同的版本狀態。在本方法的一個實施方式中,將第一對象模型和第二對象模型這樣進行比較,即由第一對象模型生成第一 XML數據,由第二對象模型生成第二 XML數據,并且這樣處理XML 數據,即借助于被處理的數據生成第一差別對象模型和第二差別對象模型。也借助于XML數據可以產生用于總模型的表現形式,其中然后將總模型的該XML 數據和對象模型的XML數據進行比較并且由此再次產生差別對象模型的圖形的顯示。如果用戶希望對圖形的程序例如梯形圖(KOP)和/或功能圖(FUP)進行比較,那么可以為此確定至少一個用于程序的特征值,其用于進行比較。這允許用戶將圖形的、在連接邏輯中進行編程的程序相互迅速地并且以較小的計算投入進行比較。在此可以一方面向用戶示出編程中的結構區別以及也示出參數化中的區別。在比較中,特別是將起點(K0P或 FUP)進行對比并且例如彩色地顯示出區別。在用于圖形的程序KOP或FUP的比較方法中, 確定用于第一程序的第一特征值并且確定用于第二程序的第二特征值。可以然后將第一程序的第一特征值和第二程序的第二特征值進行比較。程序在此例如涉及一個完整的程序也或者是一部分。在KOP邏輯中和FUP邏輯中的程序有利地可以交錯執行。兩個程序類型 (Κ0Ρ和FUP)以圖形的編程界面為基礎、或者以程序的圖形的顯示方式為基礎,因此這樣的程序也可以稱為對象模型。在功能圖中顯示出功能塊,其可以相互連接,其中塊表示了連接成編程的模型的對象。在梯形圖中圖形地顯示出構成網絡并且在其連接中也形成了編程的模型的梯形塊。這同樣適用于功能圖。在一個實施方式中可以由不同的對象模型、第一對象模型和第二對象模型中再次這樣生成比較,即生成第一差別對象模型和第二差別對象模型,其中這在“合并”的總對象模型的基礎上實現。KOP和FUP說明了在連接邏輯中用于編程的實例。通過形成用于相應的程序的特征值可以簡單并且迅速地識別并且圖形地示出區別。通過應用特征值,不必再比較一個程序的全部細節來識別是否存在區別。借助于用于程序或用于程序的特定特征的特征值,可以更快地識別兩個或多個程序的預定的特征是否不同。在本方法的一個實施方式中,將散列值用作為特征值。散列、即散列值(雜散值) 以Hash函數(雜散值函數)為基礎,該函數的結果就是散列值。不同的散列函數、例如加密的散列函數作為散列函數的特殊形式,其具有單向函數的特別的特性。散列函數是這樣一種函數,其可以根據具有確定長度的字符串構成任意長度的字符串。目標量因此小于經過散列計算的源數據的輸出量。不同的源數據引起不同的散列值。由于可以幾乎明確地表明較大的數據量,因此散列值是一種指紋形式。散列函數例如在其輸入值的限定量方面、在可能的輸出值的目標量方面不同,并且在樣本和不同輸入值的相似性對輸出值的影響方面不同,因此也可以由散列函數的不同輸出值推導出區別的類型。由于散列值在實際中比原本的數據結構短,因此可能在一些情況下有所抵觸,因此可以有利地提供用于抵觸識別的方法。如果散列值足夠大,則可以避免抵觸。借助于生成的散列值可以識別在程序之間的區別。有利地以指定的形式實現區別的可視化。有利地識別了以下區別中的至少一個 在第一程序中的元素/結構比在第二程序中多; 在第二程序中的元素/結構比在第一程序中多;
·在兩個程序中存在相同的指令,但被不同地參數化。這樣發現的區別例如可以直接在顯示系統中進行比較,利用該顯示系統也顯示出這些區別。在用于比較程序的方法的一個實施方式中,特征值并非由總程序或部分程序的數據構成(這也是有可能的),而是由對應于至少一個預定功能的程序的數據構成。該特征值可以由一個程序(特別是兩個需要進行比較的程序)的以下功能數據中的至少一個確定 相應的程序的連接數據(關于功能塊的或聯系的連接的數據) 相應的程序的變量數據(關于功能塊的或聯系的變量的數據) 相應的程序的注釋數據(關于對功能塊或聯系的注釋的數據);和/或 相應的程序的聲明數據(特別是聲明表)。因此可以例如構成連接散列也或者是變量散列。在用于比較至少兩個程序的方法的一個實施方式中,對于連接邏輯的每個網絡分別設置用于結構信息(其涉及連接數據)的第一散列以及用于參數化的第二散列。在進行比較時,現在首先將網絡的程序部分的散列相互比較。在結構散列之間不同時進行另一個在程序結構方面的檢查。在參數散列之間不同時進行參數化的比較。在這種至少兩級的方案的兩種方法中實現了特別通過一個在啟發式的特征碼中的Fuzzy邏輯部分來考慮對于比較功能性進行詳細檢查。這種啟發式的檢查通過不同的路徑實現,其中為每個路徑提供了相應的結果數。最高的結果數相應于具有最大相等可能性的路徑。然后對于可視化的準備考慮具有最高結果數的路徑。在圖形的準備中然后通過彩色的特征標記為用戶顯示出網絡中的區別。借助于散列值得出對于程序、特別是工業自動化技術中的程序的多級比較方法。這個過程在比較利用編程語言K0P/FUP生成的程序時可以如下多級地進行,其中也可以在至少三層中進行用于詳細比較的運算 網絡層(最高層)散列碼(散列值)分別設計用于網絡的參數化和結構。在比較兩個程序時,首先將結構散列和參數散列相互比較。由此然后決定必須怎樣執行詳細比較的其它級別。如果程序的各個散列相同,則兩個網絡也相同并且該網絡標記為相同的。如果兩個散列中的任一個不同,則被較深地分支到細節比較中。該比較基于單個元素的啟發值來實現,這些值然后為單個元素提供詳細的比較結果。 模塊層(中間層)此外在不相同時在兩個散列中任一個中對在網絡中應用的模塊進行檢查。如果應用的模塊在網絡中具有相同性或不同性,則相應地考慮和存儲啟發式的參數用于結果評估。在模塊層上的相同性的真值通過特別加權的平均計算由引腳層的真值導出。該分量被啟發式地調整,并且可能隨后準確確定地相應于一致程度實現在引腳層上的其它檢測。 引腳層(最低層)在引腳層上對于引腳對使用簡單的算法并且用于確定引腳的相同性的真值。該算法取決于模塊的類型。如果兩個散列不相同,則兩個網絡如已經說明的那樣并非自動地不相同。因此例如在網絡層和模塊層上例如將改變的LCS算法(Longest Common Subsequence最長公共子序列)和fuzzy邏輯組合。對于是否“A等于B”的描述,該算法代替是/否的描述為元素分派所謂的真值。這種真值可以設定為O和I之間的任意值。因此描述可以具有不同大小的真實度。真實度越高,則比較結構就更可能相同。LCS算法的目的是在兩個層上確定不相交的“ (A,B) ”元素對的量,其中該真值的總數最大。相應地存儲了結果以用于顯示。在本方法的另一個實施方式中,附加的下極限值被提供給較高的兩個層上的對。 可能的、其中相同性的真值低于下極限值的元素對被排除。低極限值被啟發式地確定。比較哈希值的確定的區別或結果可以借助于不同的方法示出。借助于算法例如可以如下表示 在網絡層上在每個網絡對中生成網絡對(左/右)的列表和相同性的真值。將其中相同性的真值小于下極限值的網絡對排除。如果網絡位于該網絡對列表中,則將網絡結對。 在模塊層上為上述列表的每個網絡對生成模塊對的列表,并且在每個模塊對中生成相同性的真值。將其中相同性的真值小于下極限值的模塊對排除。如果模塊的網絡結對,并且如果該模塊位于屬于該網絡對的模塊列表中,則將該模塊結對。 在引腳層上為上述模塊列表的每個模塊對生成引腳對的列表。將具有連接的引腳的引腳對從該列表中排除。如果引腳的模塊結對,并且如果該引腳位于屬于該模塊對的引腳列表中,則將引腳結對。兩個需要比較的程序可以在編輯器中通過至少一個下列描述變體并排地顯示 兩個程序的網絡并排地顯示,第一程序在顯示區域的左側上,第二程序在顯示區域的右側上; 如果左側上的網絡并未結對,那么在右側上插入相應大小的間隙;在此情況下沒有彩色標記;在右邊的程序中沒有網絡; 如果右側上的網絡并未結對,那么在左側上插入相應大小的間隙;在此情況下沒有彩色標記;在左邊的程序中沒有網絡; 如果網絡結對,那么在左邊和右邊顯示出兩個網絡,并且如下地顯示出存在的區別-如果網絡名稱不同,則將網絡名稱彩色地存儲在兩側上;-如果網絡注釋不同,則將網絡注釋彩色地存儲在兩側上;-未結對的模塊被彩色地存儲在網絡中(包括其引腳、標題或步驟名稱);-在結對的模塊中,如下地顯示出存在的區別■如果標題或步驟名稱不同,則將這些信息彩色地存儲在兩側上;■未結對的、不連接的引腳被彩色地存儲(例如僅僅是值區域); 在其中一側上選擇結對的模塊或結對的引腳,因此選擇的模塊/引腳的對被自動選擇;這同樣也適用多次選擇。以這種顯示方式可以特別通過元素的彩色標記為用戶清楚地識別出網絡中的區別。相同的元素例如并不利用顏色存儲,其中因此也可以為用戶辨別出程序中的變化程度。在本方法的一個實施方式中,以真值的特征值為基礎進行確定,其中真值特別借助于Fuzzi邏輯來確定,其中該真值也被有利地顯示出。由此可以識別顯示出的區別是否可能是不真實的。然后用戶取決于真值例如可以將程序中的一個轉換到另一個程序中。
以下根據附圖示例性地說明并闡述了本發明。圖中示出圖I是用于比較對象模型的第一方法;圖2是用于比較對象模型的第二方法;圖3是第一對象模型;圖4是第二對象模型;圖5是對兩個差別對象模型的第一比較圖6是對兩個差別對象模型的第二比較圖7是對兩個差別對象模型的第三比較圖8是用于功能圖的比較;圖9是用于梯形圖的比較;圖10是根據圖9的網絡的詳細描述;和圖11是有關于功能元素的區別的詳細描述。
具體實施例方式根據圖I的附圖示出了用于比較對象模型的第一方法。示出的是第一對象模型 I和第二對象模型2。兩個對象模型代表了程序圖,即以圖形為基礎的軟件程序,特別是 Motion-Control-Chart (運動控制圖)MCC。對象模型I和2在繼續的處理步驟4中借助于 MCC差別形成進行相互比較,并且合并在總模型(對象模型I加2的總對象模型)3中。這樣生成的總對象模型3用于借助于MCC圖形引擎5以第一對象模型I為基礎生成第一差別對象模型11并且以第二對象模型2為基礎生成第二差別對象模型12。借助于引擎5也可以生成總對象模型的描述13。觀察者或用戶20可以在圖形單元(屏幕)上觀察差別對象模型11和12以及總對象模型13。對于用戶20也可能的是,通過校正功能8補償在對象模型之間的區別。因此例如可以借助于來自總對象模型3中的信息改變第一對象模型I。該改變可以引起對對象模型I和2進行部分的或完全的補償。根據圖2的描述示出了用于比較對象模型的另一種方法。示出的有第一對象模型I和第二對象模型2。兩個對象模型代表了程序圖,即以圖形為基礎的軟件程序,特別是 Motion-Control-Chart MCC0兩個對象模型I和2在處理步驟25中被裝入XML (可擴展標記語言)-Export (輸出)中。在XML-Export 25之后,存在基于XML的對象模型21和22。 第一和第二基于XML的對象模型I和2借助于差別形成的類型(識別區別)在另一個處理步驟24中相互進行比較,并且合并在基于XML的總模型(基于XML的對象模型I加2的基于XML的總對象模型)23中。基于XML的總模型23可以在另一個處理步驟26中和對象模型I和2 —起合并成總模型3。這樣生成的總對象模型3用于借助于MCC圖形引擎5以第一對象模型I為基礎生成第一差別對象模型11和以第二對象模型2為基礎生成第二差別對象模型12。借助于引擎5也可以生成總對象模型的描述13。這是可選的并且因此在圖I 和圖2中以虛線示出。觀察者或用戶20可以在圖形單元(屏幕)上觀察到差別對象模型11和12以及總對象模型13。對于用戶20也可能的是,通過校正功能8補償對象模型之間的區別。因此例如可以借助于來自總對象模型3中的信息改變第一對象模型I。該改變可以引起對對象模型I和2進行部分的或完全的補償。借助于上述方法中任一種,可以將以圖形的流程圖為基礎存在的程序僅僅作為圖形進行比較或者顯示相對于其它程序的區別。由用于圖形的數據經過生成過程形成固有的可進行的程序(機器程序),其中直至沒有可能時不提供該生成過程,經過逆向的過程將數據再次轉變為圖形。以所說明的方法為基礎,現在存在將需要比較的流程圖以圖形的信息為基礎進行比較的可能性。為了進行比較,例如由用于圖形的數據生成圖形的簡化的說明形式。該簡化的說明形式例如沒有關于過程圖的元素怎樣翻譯成機器語言的數據。該簡化的說明形式特別為兩個對象模型而生成,其中對象模型是用于比較的過程圖。此外,圖形的兩個簡化的說明形式被組合。該組合的說明形式現在再次以第一簡化的說明形式和第二簡化的說明形式進行比較,并且由此確定出區別。根據該結果現在可以再次由簡化的說明和區別產生具有區別的源程序的圖形,這就是差別對象模型11和12。因此可以彩色地標記出這些區別,即用戶可以直接識別出新添加的、改變的或刪除的元素。因此得出了用于比較圖形的流程圖并且用于直接在圖形的程序中顯示區別的方法。可以以適合的并且因此制定的形式實現對象模型的區別的可視化。例如可以顯示出下列區別 在第一程序中存在比第二程序中更多的元素/結構, 在第二程序中存在比第一程序中更多的元素/結構,和/或 在兩個程序中存在相同的指令,但被不同地參數化。可以可選地也或者直接低對發現的區別進行調整。該方法為用戶20提供的可能性是,將兩個程序相互比較,并且根據區別類型以相應的顏色標記給區別著色。此外提出, 相應地比較所發現的區別。根據圖3的描述示出了具有元素31至50的第一對象模型1,它們相應于根據圖3 的描述被彼此連接。根據圖4的描述示出了具有元素31至36,39,40,42,45至47和50至59的第二對象模型2,它們相應于根據圖4的描述被彼此連接。根據圖5的描述示出了具有元素31至50和60的第一差別對象模型11,它們相應于根據圖5的描述被彼此連接。此外根據圖5的描述示出了具有元素31至36,39,40,42, 45至47,50至59和61的第二差別對象模型12,它們相應于根據圖5的描述被彼此連接。 第一差別對象模型11以在圖3中示出的對象模型I為基礎。第二差別對象模型12以在圖 4中示出的第二對象模型2為基礎。在第一差別對象模型11中對元素進行標記,通過這些元素來將第一對象模型I和第二對象模型2區別開。因此第一對象模型I是第一差別對象模型11的基礎。由于第一對象模型I的元素36,37,41,43,44,48和49并不出現在第二對象模型2中,因此對這些元素進行標記。例如通過如在圖5中示出的那樣將相應的元素以灰色陰影進行標記。未示出的但有可能的是,被彩色標記的元素36,37,41,43,44,48和49 例如是藍色。可以以相同的方式在第二差別對象模型12中進行標記或者也以其它方式、例如以橙色進行標記。在差別對象模型11和12中的相同的元素并不被標記。這涉及了元素 31至35,38至40,42,45至47和50。差別對象模型11具有附加的元素60,其也通過灰色陰影進行標記并且例如說明了,元素32的參數在對象模型I和2之間的比較中是不同的。在第二差別對象模型12中對元素進行標記,通過這些元素來將第二對象模型2和第一對象模型I區別開。因此第二對象模型2是第二差別對象模型12的基礎。通過在第二差別對象模型12中畫上灰色陰影的元素51至53,50,54,56,57,58和59,將第二對象模型2和第一對象模型I區別開。差別對象模型12具有附加的元素61,其也通過灰色陰影進行標記并且例如說明了,元素32的參數在對象模型2和I之間的比較中是不同的。如在圖5中明顯示出地,第一和第二差別對象模型11和12可以這樣并排被示出, 即相同的元素(31至35,38至40,42,45至47和50)位于相同高度上。在圖5中選擇了垂直比較的描述。這通過箭頭62表示。在根據圖5的描述變體中,在對象模型中缺少的元素并未在以該缺少此元素的對象模型為基礎的差別對象模型中示出。在一個也可能的描述變體中,缺少的元素也可以例如借助于缺少的元素的半透明的圖示被示出。根據圖6的描述示出了兩個差別對象模型11和12的第二比較。相同的元素65 在不同的差別對象模型11和12中具有共同的圖示。不同的元素66在第一差別對象模型 11中具有區別于共同的元素65的標記。不同的元素67在第二差別對象模型12中具有區別于共同的元素65的標記。根據圖7的描述示出了兩個差別對象模型11和12的第三比較。相同的元素65 再次在不同的差別對象模型11和12中具有共同的圖示。不同的元素66在第一差別對象模型11中具有區別于共同的元素65的標記。不同的元素67在第二差別對象模型12中具有區別于共同的元素65的標記。不同的元素67具有不同的參數化過程。作為第二差別對象模型12的基礎的對象模型具有的元素不位于作為第一差別對象模型11的基礎的對象模型中。元素68在第一差別對象模型11中尤其通過空白框被特別標記。在Motion-Control-Charts中因此可以設計相同類型的比較,這也如由圖3至7 表明地那樣。這意味著,將程序(對象模型)進行對照并且將區別例如以彩色著色。此外在兩側相應地調整圖形,因此在相同高度上示出相同或類型相同的元素(有區別的元素)。 在對程序中的指令進行標記時,在一個程序中缺少的元素例如以藍框在另一個程序的相對側上被標出。因此用戶可以看出在程序中的什么地方沒有該指令。有利地可以接收單個元素,也或者一次性接收全部區別。由于在指令框(說明一個元素類型)內部同樣可能存在區別,因此有利地在MCC中也還附加地對各個指令框進行詳細地比較。在缺少元素時,該比較能夠確定圖中缺少的元素,并且然后使得圖形相應地擴展。因此元素始終位于同一平面內。由此可以為用戶清楚地示出,結構是相似的,但是在相應的位置上缺少元素。為了進行說明,用戶可以標記出額外的元素,并且在圖中缺少該元素的位置上例如再次獲得藍框。在元素類型相同、然而這些元素并不相同時,將元素進行對照。通過著色來告知用戶,盡管指令類似,但存在參數化中的區別。參數化中的區別例如可以通過調用(雙擊)細節掩碼來進行調用。這種比較的方法也可以用于流程圖的其它圖形的描述。在比較中通過該方法應用了圖形的描述的推導。此外為了確定額外的或缺少的元素而將兩個圖形的表現形式組合。由兩個圖得到的該結果然后用于描述擴展的圖形。通過相對于組合的表現形式確定在各個圖中存在的元素,然后在有區別時相應地給各個圖中的元素著色,并且排除并不存在的元素。然而在此保持圖形的擴展。在各個圖的圖形描述中的結果是對兩個具有相應的區別的圖的同步說明。通過在例如標記的指令框(元素)上雙擊,可以有利地打開對話窗口。在對話窗口中示出了關于元素的詳細信息,其中也在此對區別進行標記、特別是著色。此外用戶例如可以附加地獲知在指令中的賦值。如果這時有區別,則也彩色地表明該區別。這用于幫助用戶判定是否有必要接收指令。根據圖8的描述示出了用于第一程序11的功能圖和用于第二程序12的功能圖, 其中已經分別對區別進行標記。程序11和12因此描述為差別對象模型11和12。相同的元素65在不同的差別對象模型11和12中具有共同的圖示。不同的元素66在第一差別對象模型11中具有區別于共同的元素65的標記。不同的元素67在第二差別對象模型12中具有區別于共同的元素65的標記。利用標記60和61示出了變體中的區別。在結果中示出了對兩個程序的比較。參考程序例如在圖示中在左側示出。進行比較的程序在右側示出。 彼此適合的網絡被進行對照并且位于同一層內。此外對網絡中的區別例如彩色地著色,然而這在圖中未示出。確定為相同的元素保持其正常的圖示。在實例中此外示出,通過新的比較算法也可以對非全部輸入的程序相互比較。根據圖9的描述示出了對兩個作為梯形圖示出的程序的比較。示出的是第一梯形圖71和第二梯形圖72。為了比較這些程序來源而將梯形圖71和72進行對照。可以對區別彩色地著色,其中在圖9中僅僅示出了灰色陰影。在圖71中的區別例如可以表現為藍色或以左斜陰影線示出。在圖72中的區別例如可以表現為橙色或者說黃色或以右斜陰影線示出。對于每個程序71和72分別示出了 4個網絡。在圖的左半邊中示出了具有網絡號碼的列表。網絡73和83具有號碼001。網絡74和84具有號碼002。網絡75和85具有號碼003。網絡76和86具有號碼004。程序71的網絡在A列中標記。程序72的網絡在 B列中標記。如果兩個程序的網絡不同,那么例如這樣對此進行標記,即例如并不在圖9中對矩形進行填充。如果有區別,則彩色地標記用于相應網絡的矩形(例如藍色用于程序71 在A列中的網絡,以及橙色或者說黃色用于程序72在B列中的網絡)。在圖9中,網絡002, 003,004和005不相同。在左邊的縱覽中因此列出了 A,B列中的網絡號碼,其中提出,可以通過以鼠標在區別位置上進行點擊來跳轉。在大型程序中這是有利的,因此用戶不必滾讀到區別位置。同樣對變量聲明中的區別進行彩色著色。為此設置用于第一程序71的窗口 78和用于第二程序72的窗口 88。如果存在例如對于 參數/變量; I/O 符號; 結構;和 計數的不同描述,并且這例如可以通過標簽或方形標志93,94進行選擇,則也可以彩色地標記該標簽或方形標志93,94,如果在相應的標簽或方形標志的數據中存在區別的話。
網絡73和83相同,并且因此在對照中未被著色。在對網絡74至76和84至86中的區別的描述中對單個的元素著色(特別是有區別地著色)或存儲為灰色。如果在變量中有區別,則僅僅對此著色或存儲為灰色。當在連接中有區別時,在此僅僅進行上色或標灰。如果區別涉及這兩種情況,則也可以在這兩種情況下進行上色或標灰。這可以通過應用至少2個不同的散列來實現。因此可以單獨地確定在結構和變量中的區別。注釋中的區別也被發現并且被相應地存儲為彩色的或灰色的,這如在圖9中在注釋79和80中示出的那樣。借助于左上方的功能按鈕91和92可以將左邊的來源71中的區別單獨地或完全地傳輸到右邊的來源72中。在此也可以跳轉到下一個區別。根據圖10的描述示出了圖9的網絡的細節圖。網絡73和83是相同的并且在對照時無需著色和彩色的標記。對于網絡74和84以變量散列為基礎確定了網絡在輸出端有區別。此外兩個網絡的功能相同,但輸出端通過編程順序被交換。該區別被標記。對于網絡75和85確定的是,輸出變量和輸出端的功能不同。此外在注釋中存在區別。但該網絡足夠相似,以便進行對照。該區別被標記。對于網絡76和86確定的是,僅僅在結構散列中存在區別。這意味著全部變量相同。然而開啟件相對于關閉件進行了交換。該區別也被標記。根據圖11的描述示出了功能元素軸96的區別的細節圖。通過雙擊例如在差別對象模型中的相應的元素將元素開啟,其中利用色彩標記示出了在兩個同類型的元素之間的區別。用戶利用對話框97可以判定應將一個程序中的哪些改變傳輸到另一個程序中。因此這非常簡單,這是因為在此著色表明了區別。此外用戶可以附加地獲知指令中的賦值。如果在那里也存在區別,則也彩色地表明該區別。這用于幫助用戶判定,是否需要接收指令。如果在關于附圖的描述中涉及借助于灰色陰影或借助于存儲為灰色進行標記,那么這在相應的附圖中也可以通過相應的陰影線替代。
1權利要求
1.一種用于比較圖形程序的方法,其中將第一對象模型(I)和第二對象模型(2)進行比較,其中顯示出第一差別對象模型(11)和特別是第二差別對象模型(12)。
2.根據權利要求I所述的方法,其中將所述第一對象模型(I)和所述第二對象模型 ⑵組合成總模型⑶以用于進行比較,其中將至少一個所述對象模型(1,2)和所述總模型(3)進行比較,其中在所述總模型(3)和至少一個所述對象模型(1,2)之間的區別顯示在所述差別對象模型(11,12)之一中。
3.根據權利要求2所述的方法,其中將所述第一對象模型(I)和所述總模型(3)進行比較,并且在所述第一差別對象模型(11)中顯示出所述第一對象模型(I)和相對于所述總模型⑶的區別,其中特別也將所述第二對象模型⑵和所述總模型⑶進行比較,并且在所述第二差別對象模型(12)中顯示出所述第二對象模型和相對于所述總模型(3)的區別。
4.根據權利要求I至3中任一項所述的方法,其中同時并排顯示出所述第一差別對象模型(11)和所述第二差別對象模型(12)。
5.根據權利要求I至4中任一項所述的方法,其中在所述差別對象模型(11,12)中顯示出在所述第一對象模型(I)和所述第二對象模型(2)之間的相似性。
6.根據權利要求I至5中任一項所述的方法,其中在進行所述第一對象模型(I)和所述第二對象模型(2)的對比時以彩色標記出區別。
7.根據權利要求I至6中任一項所述的方法,其中在進行所述第一對象模型(I)和所述第二對象模型(2)的對比時在相同高度上垂直或水平地顯示出兩個所述對象模型(1,2) 中的類似的元素。
8.根據權利要求I至7中任一項所述的方法,其中在所述第一差別對象模型(11)中和 /或在所述第二差別對象模型(12)中顯示出缺少的元素和/或附加的元素。
9.根據權利要求I至8中任一項所述的方法,其中所述差別對象模型(11,12)顯示出下列至少一個區別附加的元素,缺少的元素,附加的聯系,缺少的聯系,元素的相同的參數化,元素的不同的參數化,和元素的不同的版本狀態。
10.根據權利要求I至9中任一項所述的方法,其中將所述第一對象模型(I)和所述第二對象模型(2)這樣進行比較,即由所述第一對象模型(I)生成第一 XML數據¢),由所述第二對象模型(2)生成第二 XML數據(7),并且這樣處理所述XML數據出,7),即借助于被處理的數據生成所述第一差別對象模型(11)和所述第二差別對象模型。
全文摘要
本發明涉及一種用于比較圖形程序的方法,在該方法中將第一對象模型(1)和第二對象模型(2)進行比較,其中顯示出第一差別對象模型(11)和特別是第二差別對象模型(12)。程序的區別被分別標記在差別對象模型中。
文檔編號G06F9/45GK102591635SQ20111037347
公開日2012年7月18日 申請日期2011年11月22日 優先權日2010年11月22日
發明者格韋多林·科納普, 邁克爾·布勞恩, 阿蒂拉·薩博 申請人:西門子公司