一種梯形圖數(shù)據(jù)結構描述及掃描解析方法
【專利摘要】一種梯形圖數(shù)據(jù)結構描述及掃描解析方法。其方法包括:1)將引腳作為梯形圖圖形元素的圖形屬性成員,并且連接線元素包含并入、并出類型引腳;2)將父節(jié)點、子節(jié)點元素作為梯形圖圖形元素的模型屬性成員,并且連接線元素包含水平、垂直子類型;3)采用梯形圖圖形元素組成的“十字鏈表”和“二叉樹”數(shù)據(jù)結構描述和記錄梯形圖中所有元素的圖形屬性與模型屬性;4)遍歷“十字鏈表”與“二叉樹”計算梯形圖圖形元素之間(含連接線元素)的拓撲關系;5)遍歷“二叉樹”計算梯形圖圖形元素之間(連接線元素除外)的邏輯關系。本發(fā)明在描述梯形圖圖形元素之間拓撲關系同時記錄了邏輯關系,簡化了解析算法,提高了轉化成中間語言的效率。
【專利說明】一種梯形圖數(shù)據(jù)結構描述及掃描解析方法
【技術領域】
[0001]本發(fā)明屬于PLC軟件開發(fā)【技術領域】,具體涉及一種梯形圖的數(shù)據(jù)結構描述及掃描解析方法。
【背景技術】
[0002]PLC (可編程邏輯控制器)是一種取代繼電器執(zhí)行邏輯運算及其他順序控制功能,控制各種類型的機械或生產(chǎn)過程的電子裝置。具有可靠性高、編程簡單、使用方便、功能完善、通用性好等特點。
[0003]梯形圖是PLC使用得最多的圖形編程語言,被稱為PLC的第一編程語言。梯形圖與電器控制系統(tǒng)的電路圖相似,直觀易懂,很容易被工廠電氣人員掌握,特別適用于開關量邏輯控制。但是,梯形圖不能直接被PLC所識別,無法在PLC中直接運行。因此需要將梯形圖轉化為PLC能夠識別的形式。
[0004]目前,已公開的各種文獻中提到的梯形圖轉換成中間語言的方法中,梯形圖數(shù)據(jù)結構描述較為復雜,并且,采用的梯形圖轉換成樹形數(shù)據(jù)結構的轉換算法通常比較復雜(例如:先將梯形圖映射為AOV圖再進行轉化),生成的樹結構中包含輔助信息;以至于解析梯形圖邏輯關系的算法通常時間復雜度較高,影響了轉換效率。因此,對于圖形元素之間串、并聯(lián)關系復雜的梯形圖轉換受到限制,不能很好的應用到邏輯關系相對復雜的梯形圖程序。
【發(fā)明內(nèi)容】
[0005]本發(fā)明主要針對現(xiàn)有PLC軟件開發(fā)中梯形圖數(shù)據(jù)結構復雜、輔助信息較多、并且梯形圖掃描算法復雜、解析效率較低等缺點。提出了一種面向對象的易于實現(xiàn)、簡單、高效的基于圖形元素“十字鏈表”和“二叉樹”數(shù)據(jù)結構的描述和掃描解析梯形圖拓撲關系和邏輯關系的方法。梯形圖圖形元素實例化過程中,采用基于圖形元素“十字鏈表”來描述圖形屬性的同時,使用圖形元素“二叉樹”記錄梯形圖的模型屬性,并且通過掃描圖形元素“十字鏈表”和“二叉樹”來解析梯形圖圖形元素之間的拓撲關系和邏輯關系。
[0006]在介紹本申請的技術方案之前,首先對本申請中出現(xiàn)的技術特征名稱解釋或定義如下:
[0007]圖形元素:就是組成梯形圖的各種“圖形符號”,包括連接線、網(wǎng)絡、觸點、線圈、運算塊、跳轉、標號、返回、注釋等;
[0008]連接元素:梯形圖中觸點、線圈等其它圖形元素通過“連接線”進行連接,包含水平和垂直兩個方向,分別對應著連接線兩端的圖形元素之間是“串聯(lián)”和“并聯(lián)”關系;
[0009]水平類型:水平方向連接左、右兩個圖形元素的連接線類型;
[0010]垂直類型:垂直方向連接上、下兩個圖形元素的連接線類型;
[0011]前、后向元素:梯形圖中某一圖形元素的左、右側對應的圖形元素,其中左邊的圖形元素稱為本元素的前向元素,右邊的圖形元素稱為本元素的后向元素;引腳的四個類型(輸入、輸出、并入、并出):
[0012]①輸入引腳:連接前向元素的引腳稱為圖形元素的輸入引腳;
[0013]②輸出引腳:連接后向元素的引腳稱為圖形元素的輸出引腳;
[0014]③并入引腳:對于連接線元素(水平或垂直)連接左側垂直連接線的引腳稱為連接線元素的并入引腳;
[0015]④并出引腳:對于連接線元素(水平或垂直)連接右側垂直連接線的引腳稱為連接線元素的并出引腳;
[0016]本發(fā)明解決其技術問題是采取以下技術方案實現(xiàn):
[0017]本發(fā)明采用梯形圖圖形元素組成的“十字鏈表”和“二叉樹”對梯形圖的數(shù)據(jù)結構進行描述,通過遍歷圖形元素“十字鏈表”和“二叉樹”對梯形圖的拓撲關系和邏輯關系進行解析。
[0018]一種梯形圖數(shù)據(jù)結構描述及掃描解析方法,其特征在于,所述方法包括以下步驟:
[0019](I)定義圖形元素在梯形圖中的圖形屬性,將引腳作為梯形圖中觸點元素、運算塊元素、跳轉元素、返回元素、線圈元素的圖形屬性成員;在梯形圖編輯時,圖形元素之間通過引腳相互連接,連接線元素除含有輸入、輸出引腳屬性外,還包含并入、并出類型引腳,并且通過并入、并出類型引腳的所屬圖形元素的圖形屬性能夠得到相應的連接線元素;引腳的圖形屬性中除所屬圖形元素圖元屬性外,還包含所連接的對端引腳和連接的對端的圖形元素;觸點元素、運算塊元素包含輸入、輸出引腳;線圈元素、返回元素、跳轉元素只包含一個輸入引腳;
[0020](2)定義圖形元素在梯形圖中的模型屬性,連接線元素的模型屬性包括元素子類型(水平類型、垂直類型),父節(jié)點元素,左子節(jié)點元素,右子節(jié)點元素;觸點元素、運算塊元素、線圈元素、返回元素、跳轉元素的模型屬性中只包括父節(jié)點元素,其自身只作為葉子節(jié)點兀素;
[0021](3)梯形圖圖形元素實例化過程中,設置圖形元素的前向、后向圖形元素,對于連接線元素還要設置并入、并出本連接線元素的其它連接線元素,這樣整個梯形圖就可以采用“十字鏈表”數(shù)據(jù)結構來描述梯形圖所有圖形元素的圖形屬性;設置圖形元素父節(jié)點元素,左子節(jié)點元素,右子節(jié)點元素,對于連接線元素要設置左子節(jié)點元素、右子節(jié)點元素、父節(jié)點元素;對于其他圖形元素設置父節(jié)點元素,這樣整個梯形圖就可以采用“二叉樹”數(shù)據(jù)結構來記錄梯形圖所有圖形元素的模型屬性;
[0022](4)通過遍歷梯形圖圖形元素組成的“二叉樹”和“十字鏈表”,掃描解析出梯形圖圖形元素的相對位置的靜態(tài)關系和包括嵌套在內(nèi)的并聯(lián)邏輯關系,并且結合梯形圖編輯過程的操作,進一步計算出梯形圖編緝過程中圖形元素相對位置變化的動態(tài)拓撲關系;
[0023](5)采用中序遍歷算法掃描記錄梯形圖圖形元素之間邏輯關系的“二叉樹”,并且結合圖形元素的類型及連接元素子類型計算出“二叉樹”上由觸點組成的串、關聯(lián)關系,計算出運算塊元素、跳轉元素、返回元素執(zhí)行的判斷條件,以及線圈元素的賦值關系。
[0024]本發(fā)明的優(yōu)點及積極效果是:
[0025]本發(fā)明提出了一種梯形圖的數(shù)據(jù)結構描述及掃描解析方法,具有如下優(yōu)點和積極效果:[0026](I)定義的梯形圖圖形元素數(shù)據(jù)結構簡單、易于實現(xiàn);
[0027](2)梯形圖圖形元素的圖形、模型屬性描述層次清晰,易于封裝;
[0028](3)梯形圖圖形元素圖形屬性解析簡單,通過掃描梯形圖圖形元素組成的“十字鏈表”和“二叉樹”即可計算出表示梯形圖圖形元素間的拓撲關系;
[0029](4)梯形圖圖形元素模型屬性解析簡單,通過掃描梯形圖圖形元素組成的“二叉樹”即可很容易的計算出梯形圖圖形元素間的復雜的邏輯關系;
[0030](5)梯形圖圖形元素組成的“二叉樹”不包含輔助信息,轉化成中間語言的遍歷解析算法簡單、易于實現(xiàn),大大提高了梯形圖轉化成中間語言的效率。
【專利附圖】
【附圖說明】
[0031]圖1為梯形圖編譯數(shù)據(jù)流示意圖。
[0032]圖2為連接線元素特征示意圖,其中:
[0033]a為單條水平連接線;
[0034]b為水平連接線與左側垂直連接線;
[0035]c為水平連接線與右側垂直連接線;
[0036]d為水平連接線與左側、右側垂直連接線。
[0037]圖3為梯形圖示例。
[0038]圖4為梯形圖“十字鏈表”拓撲關系圖,其中:
[0039]a為跳轉、線圈、返回兀素在鏈表中的節(jié)點;
[0040]b為觸點元素在鏈表中的節(jié)點;
[0041]c為連接線元素在鏈表中的節(jié)點;
[0042]d為整個梯形圖所有元素組成的鏈表。
[0043]圖5為梯形圖“二叉樹”邏輯關系圖。
【具體實施方式】
[0044]以下結合說明書附圖及具體實施例對本發(fā)明方法做詳細說明:
[0045]如圖1所示,本發(fā)明實現(xiàn)的梯形圖數(shù)據(jù)結構描述和掃描解析方法的示意圖。梯形圖圖形元素實例化過程中,采用梯形圖圖形元素組成“十字鏈表”和“二叉樹”對梯形圖的數(shù)據(jù)結構進行描述,通過遍歷圖形元素“十字鏈表”和“ 二叉樹”對梯形圖的拓撲關系和邏輯關系進行解析。具體包括以下步驟:
[0046]1、定義圖形元素在梯形圖中的圖形屬性:
[0047](I)、連接線圖形元素:除了具有輸入、輸出類型引腳外,還含有并入、并出類型引腳;并且通過并入、并出引腳的所屬圖形元素能夠得到相應的連接線元素。(如圖2a水平方向連接線的并入、并出引腳連接為空;如圖2b水平方向連接線的并入引腳連接了左側的垂直方向連接線;如圖2c水平方向連接線的并出引腳連接了右側的垂直方向連接線;如圖2d水平方向連接線的并入引腳連接了左側的垂直方向連接線、并出引腳連接了右側的垂直方向連接線。)
[0048](2)、觸點元素具有圖形元素子類型(觸點的子類型包含:常開、常閉等)、輸入引腳,輸出引腳。[0049](3)、運算塊元素具有圖形元素子類型(運算塊子類型包含:程序、函數(shù)、功能塊),多個輸入引腳、多個輸出引腳。
[0050](4)、線圈元素具有圖形元素子類型(線圈的子類型包含:置位、復位、取反等)、輸入引腳、輸出引腳,
[0051](5)、返回元素、具有圖形元素子類型、輸入引腳;
[0052](6)、跳轉元素具有圖形元素子類型、輸入引腳;
[0053](7)、圖形元素的其它公共圖形屬性參數(shù)。
[0054]2、定義圖形元素在梯形圖中的模型屬性:
[0055](I )、連接線元素具有元素子類型(水平類型、垂直類型,如圖2a為水平類型連接線;如圖2b水平類型連接線連接了左側的垂直類型連接線;如圖2c水平類型連接線連接了右側的垂直類型連接線;如圖2d水平類型連接線同時連接了左側的垂直類型連接線和右側的垂直類型連接線。)),父節(jié)點元素,左子節(jié)點元素,右子節(jié)點元素。
[0056]( 2 )、觸點元素具有父節(jié)點(自身只作為葉子節(jié)點)。
[0057](3)、運算塊元素具有父節(jié)點(自身只作為葉子節(jié)點)。
[0058](4)、線圈元素具有父節(jié)點元素(自身只作為葉子節(jié)點)。
[0059](5)、返回元素具有父節(jié)點元素(自身只作為葉子節(jié)點)。
[0060](6)、跳轉元素具有父節(jié)點元素(自身只作為葉子節(jié)點)。
[0061]3、建立“十字鏈表”和“二叉樹”:
[0062]梯形圖編輯過程中,如圖3所示,將引腳作為梯形圖圖形元素(含觸點圖形元素、運算塊圖形元素、跳轉圖形元素、返回圖形元素、線圈圖形元素)的圖形屬性成員,梯形圖各圖形元素之間通過引腳圖形元素相互連接,即梯形圖圖形元素之間通過輸入、輸出引腳的屬性可以獲取前向、后向圖形元素;并且通過連接線元素的并入、并出引腳獲取該連接線元素的并入、并出連接線元素,因此,通過圖形元素之間的輸入、輸出、并入、并出關系的建立,形成由各個圖形元素組成的“十字鏈表”結構模型描述拓撲關系,如圖4a所示為跳轉、線圈、返回元素在鏈表中的節(jié)點;如圖4b為觸點元素在鏈表中的節(jié)點;如圖4c為連接線元素在鏈表中的節(jié)點如圖4d為整個梯形圖所有元素組成的鏈表。
[0063]梯形圖編輯過程中,將梯形圖各圖形元素的類型、子類型、父節(jié)點圖形元素、子節(jié)點圖形元素等屬性參數(shù)進行賦值,尤其對于連接線的并入、并出連接線賦值“縱向”子類型信息。因此,通過圖形元素之間父子關系的建立,形成由各個圖形元素組成的“二叉樹”結構的模型記錄邏輯關系,如圖5所示。
[0064]對于“十字鏈表”和“二叉樹”的建立采取以下實施方式:
[0065]在梯形圖圖形元素實例化過程中,設置圖形元素的前向、后向圖形元素,尤其對于連接線圖形元素還要設置并入、并出類型的連接線,這樣整個梯形圖就可以采用“十字鏈表”數(shù)據(jù)結構來描述梯形圖所有圖形元素的圖形屬性;設置圖形元素的父、子關系,對于連接線圖形元素要設置左子節(jié)點元素、右子節(jié)點元素、父節(jié)點元素;對于其他類型圖形元素設置父節(jié)點元素,此父節(jié)點元素類型必須是連接線元素,這樣整個梯形圖采用“二叉樹”數(shù)據(jù)結構來描述梯形圖所有圖形元素的的模型屬性。
[0066](I)、觸點元素相關操作:
[0067]A、追加[0068]a、串聯(lián):
[0069]描述梯形圖拓撲關系的“十字鏈表”上,在選擇的圖形元素的前(后)增加觸點元素和與其前向相連接的“水平”連接線。
[0070]描述梯形圖邏輯關系的“二叉樹”上,增加“水平”連接線元素(作為作為所選節(jié)點的父節(jié)點)、觸點元素(作為所選節(jié)點的兄弟節(jié)點)。
[0071]b、并聯(lián):
[0072]描述梯形圖拓撲關系的“十字鏈表”上,在所選擇的圖形元素的上(下)增加觸點元素和與其前向相連接的前向、后向“垂直”連接線元素。
[0073]描述梯形圖邏輯關系的“二叉樹”上,增加“垂直”連接線元素(作為作為所選節(jié)點的父節(jié)點)、觸點元素(作為所選節(jié)點的兄弟節(jié)點)。
[0074]B、刪除
[0075]a、串聯(lián):
[0076]描述梯形圖拓撲關系的“十字鏈表”上,刪除所選擇的串聯(lián)分支上的觸點元素和與其前向相連接的“水平”連接線元素。
[0077]描述梯形圖邏輯關系的“二叉樹”上,刪除相應觸點元素子節(jié)點和“水平”連接線元素節(jié)點,并且,如果所刪除的“水平”連接線元素為所刪除的觸點元素的父節(jié)點,則在“二叉樹”上將此節(jié)點的兄弟節(jié)點提升至父節(jié)點(被刪除的“水平”連接線元素)的位置;否則,在“二叉樹”上將此節(jié)點的父節(jié)點提升至所刪除的“水平”連接線元素節(jié)點的位置,此節(jié)點的兄弟節(jié)點提升至父節(jié)點的位置。
[0078]b、并聯(lián):
[0079]描述梯形圖拓撲關系的“十字鏈表”上,如果所選擇刪除的觸點元素的前向連接線是此連接線前向連接線的并出連接線,則在圖形上刪除所選擇的并聯(lián)分支上的觸點元素和前向連接線元素;如果所選擇刪除的觸點元素的后向連接線元素是此連接線后向連接線元素的并入類型連接線,則在圖形上刪除所選擇的并聯(lián)分支上的觸點元素和前向、后向連接線元素。
[0080]描述梯形圖邏輯關系的“二叉樹”上,刪除相應觸點元素子節(jié)點和“垂直”連接線元素節(jié)點,并且,如果所刪除的“垂直”連接線元素為所刪除的觸點元素子節(jié)點的父節(jié)點,則在“二叉樹”上將此節(jié)點的兄弟節(jié)點提升至父節(jié)點(被刪除的“垂直”連接線元素)的位置;否則,在“二叉樹”上將此節(jié)點的父節(jié)點提升至所刪除的“垂直”連接線元素節(jié)點的位置,此節(jié)點的兄弟節(jié)點提升至父節(jié)點的位置。
[0081](2)、運算塊圖形元素相關操作:
[0082]A、追加
[0083]描述梯形圖拓撲關系的“十字鏈表”上,在所選擇的圖形元素的前(后)增加運算塊圖形元素和與其前向相連接的“水平”連接線;
[0084]描述梯形圖邏輯關系的“二叉樹”上,首先,查找該運算塊所屬邏輯關系“二叉子樹”;然后在“二叉子樹”的左(右)增加“水平”連接線元素父節(jié)點和運算塊元素子節(jié)點。
[0085]B、刪除
[0086]描述梯形圖拓撲關系的“十字鏈表”上,刪除所選擇的串聯(lián)分支上的運算塊元素和與其前向相連接的“水平”連接線元素。[0087]描述梯形圖邏輯關系的“二叉樹”上,刪除相應運算塊元素子節(jié)點和“水平”連接線元素父節(jié)點;并且,將此節(jié)點的兄弟節(jié)點提升至父節(jié)點(被刪除的“垂直”連接線元素)的位置(此運算塊子元素節(jié)點和“水平”連接線元素必為父子關系)。
[0088](3)、跳轉元素、返回元素、線圈元素相關操作:
[0089]A、追加
[0090]a、橫向:
[0091]描述梯形圖拓撲關系的“十字鏈表”上,在所選擇的圖形元素的前(后)增加圖形元素和與其前向相連接的“水平”連接線元素。
[0092]描述梯形圖邏輯關系的“二叉樹”上,增加“水平”連接線元素父節(jié)點、圖形元素節(jié)點(作為所選節(jié)點的兄弟節(jié)點)。
[0093]b、縱向:
[0094]描述梯形圖拓撲關系的“十字鏈表”上,在所選擇的圖形元素的上(下)增加跳轉、返回或線圈圖形元素和與其相連接的“水平”、“垂直”連接線元素。
[0095]描述梯形圖邏輯關系的“二叉樹”上,增加“垂直”連接線元素父節(jié)點、圖形元素節(jié)點(作為所選節(jié)點的兄弟節(jié)點)。
[0096]B、刪除:
[0097]a、橫向:
[0098]描述梯形圖拓撲關系的“十字鏈表”上,刪除所選擇的圖形元素和其前向連接線元素。
[0099]描述梯形圖邏輯關系的“二叉樹”上,刪除相應跳轉、返回或線圈圖形元素子節(jié)點和“水平”連接線元素節(jié)點,并且,如果所刪除的“水平”連接線元素為所刪除的觸點元素節(jié)點的父節(jié)點,則在“二叉樹”上將此節(jié)點的兄弟節(jié)點提升至父節(jié)點(被刪除的“水平”連接線元素)的位置;否則,在“二叉樹”上將此節(jié)點的父節(jié)點提升至所刪除的“水平”連接線元素節(jié)點的位置,此節(jié)點的兄弟節(jié)點提升至父節(jié)點的位置。
[0100]b、縱向:
[0101]描述梯形圖拓撲關系的“十字鏈表”上,刪除所選擇的縱向分支上的跳轉、返回或線圈圖形元素和前向連接線節(jié)點;
[0102]描述梯形圖邏輯關系的“二叉樹”上,刪除相應圖形元素子節(jié)點和“垂直”連接線節(jié)點,并且,將此節(jié)點的兄弟節(jié)點提升至父節(jié)點(被刪除的“垂直”連接線元素)的位置(此跳轉、返回或線圈圖形元素子節(jié)點和“水平”連接線必為父子關系)。
[0103]4、解析梯形圖拓撲關系:
[0104]通過遍歷梯形圖圖形元素組成的“二叉樹”和“十字鏈表”,掃描解析出梯形圖圖形元素的相對位置的靜態(tài)關系和包括嵌套在內(nèi)的并聯(lián)關系,并且根據(jù)梯形圖編輯過程的操作方法,并且結合梯形圖編輯過程的操作,進一步計算出梯形圖編緝過程中圖形元素相對位置變化的動態(tài)拓撲關系。
[0105](I)、遍歷梯形圖圖形元素組成的“十字鏈表”,通過圖形元素之間的前向、后向、并入、并出關系,計算圖形元素之間的相對位置靜態(tài)關系;
[0106](2)、遍歷梯形圖圖形元素組成的“二叉樹”,通過節(jié)點之間的父子關系、左右兄弟關系,計算觸點圖形元素之間的包括嵌套在內(nèi)的并聯(lián)關系;[0107](3)、梯形圖編輯過程中(即圖形元素的增加、刪除、修改)通過遍歷“十字鏈表”和“二叉樹”獲得的圖形元素相對位置關系和嵌套的并聯(lián)關系,進一步計算出整個梯形圖圖形元素相對位置變化的動態(tài)拓撲關系。
[0108]5、解析梯形圖邏輯關系:
[0109]梯形圖圖形元素在模型上通過父子關系進行連接,因此,可以采用中序遍歷算法掃描記錄梯形圖圖形元素之間邏輯關系的“二叉樹”,并且結合圖形元素的類型及連接線元素節(jié)點圖形元素子類型計算出“二叉樹”上由圖形元素組成的串、關聯(lián)關系;運算塊元素、跳轉元素、返回元素的執(zhí)行條件;線圈元素的賦值關系。
[0110](I)、掃描到連接線節(jié)點子類型為“水平”時,則表示其左、右子節(jié)點之間是“串聯(lián)”關系;掃描到連接線節(jié)點子類型為“垂直”時,則表示左、右子節(jié)點之間是“并聯(lián)”關系;
[0111](2)、掃描到運算塊元素、跳轉元素、返回元素、線圈元素時,則結束前一段由觸點元素組成的“二叉子樹”的掃描,并且將前一段的邏輯關系作為此運算塊元素或跳轉元素、返回元素執(zhí)行的判斷條件;
[0112](3)、掃描到線圈元素時,將已經(jīng)掃描解析的前一段邏輯關系的結果與該線圈元素組成賦值關系。
【權利要求】
1.一種梯形圖數(shù)據(jù)結構描述及掃描解析方法,其特征在于: 采用梯形圖圖形元素組成的“十字鏈表”和“二叉樹”對梯形圖的數(shù)據(jù)結構進行描述,通過遍歷圖形元素“十字鏈表”和“二叉樹”對梯形圖的拓撲關系和邏輯關系進行解析。
2.根據(jù)權利要求1所述的梯形圖數(shù)據(jù)結構描述及掃描解析方法,其特征在于,所述方法包括以下步驟: (1)定義圖形元素在梯形圖中的圖形屬性,將引腳作為梯形圖中圖形元素的圖形屬性成員; 其中,所述圖形元素包括中觸點元素、運算塊元素、跳轉元素、返回元素、線圈元素、連接線元素; 圖形元素之間通過引腳相互連接,連接線元素除含有輸入、輸出類型引腳外,還包含并入、并出類型引腳,并且通過并入、并出類型引腳的所屬圖形元素的圖形屬性能夠得到相應的連接線元素; (2)定義圖形元素在梯形圖中的模型屬性,連接線元素的模型屬性包括子類型、父節(jié)點元素、左子節(jié)點元素、右子節(jié)點元素;觸點元素、運算塊元素、線圈元素、返回元素、跳轉元素的模型屬性中只包括父節(jié)點元素,其自身只作為葉子節(jié)點元素; 其中,所述元素子類型包括水平類型、垂直類型,水平類型是指水平方向連接左、右兩個圖形元素的連接線稱為水平類型,垂直類型是指垂直方向連接上、下兩個圖形元素的連接線成為垂直類型。 (3)梯形圖圖形元素實例化過程中,設置圖形元素的前向、后向圖形元素,對于連接線元素還要設置并入、并出本連接線元素的其它連接線元素,這樣整個梯形圖就可以采用“十字鏈表”數(shù)據(jù)結構來描述梯形圖所有圖形元素的圖形屬性; 設置圖形元素父節(jié)點元素,左子節(jié)點元素,右子節(jié)點元素,對于連接線元素要設置左子節(jié)點元素、右子節(jié)點元素、父節(jié)點元素;對于其他圖形元素設置父節(jié)點元素,這樣整個梯形圖就可以采用“二叉樹”數(shù)據(jù)結構來記錄梯形圖所有圖形元素的模型屬性; (4)通過遍歷梯形圖圖形元素組成的“二叉樹”和“十字鏈表”,掃描解析出梯形圖圖形元素的相對位置的靜態(tài)關系和包括嵌套在內(nèi)的并聯(lián)邏輯關系,計算出梯形圖編緝過程中圖形元素相對位置變化的動態(tài)拓撲關系; (5)采用中序遍歷算法掃描記錄梯形圖圖形元素之間邏輯關系的“二叉樹”,并且結合圖形元素的類型及連接元素子類型計算出“二叉樹”上由觸點組成的串、關聯(lián)關系,計算出運算塊元素、跳轉元素、返回元素執(zhí)行的判斷條件,以及線圈元素的賦值關系。
3.根據(jù)權利要求2所述的梯形圖數(shù)據(jù)結構描述及掃描解析方法,其特征在于: 在步驟(I)中,引腳的圖形屬性中除所屬圖形元素圖元屬性外,還包含所連接的對端引腳和連接的對端的圖形元素;觸點元素、運算塊元素包含輸入、輸出引腳;線圈元素、返回元素、跳轉元素只包含一個輸入引腳。
【文檔編號】G06T9/00GK103559727SQ201310585975
【公開日】2014年2月5日 申請日期:2013年11月20日 優(yōu)先權日:2013年11月20日
【發(fā)明者】李琨, 王長江, 王沿海, 王鼎, 李維 申請人:北京四方繼保自動化股份有限公司