亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種梯形圖數(shù)據(jù)結(jié)構(gòu)描述及掃描解析方法

文檔序號:6519861閱讀:702來源:國知局
一種梯形圖數(shù)據(jù)結(jié)構(gòu)描述及掃描解析方法
【專利摘要】一種梯形圖數(shù)據(jù)結(jié)構(gòu)描述及掃描解析方法。其方法包括:1)將引腳作為梯形圖圖形元素的圖形屬性成員,并且連接線元素包含并入、并出類型引腳;2)將父節(jié)點(diǎn)、子節(jié)點(diǎn)元素作為梯形圖圖形元素的模型屬性成員,并且連接線元素包含水平、垂直子類型;3)采用梯形圖圖形元素組成的“十字鏈表”和“二叉樹”數(shù)據(jù)結(jié)構(gòu)描述和記錄梯形圖中所有元素的圖形屬性與模型屬性;4)遍歷“十字鏈表”與“二叉樹”計(jì)算梯形圖圖形元素之間(含連接線元素)的拓?fù)潢P(guān)系;5)遍歷“二叉樹”計(jì)算梯形圖圖形元素之間(連接線元素除外)的邏輯關(guān)系。本發(fā)明在描述梯形圖圖形元素之間拓?fù)潢P(guān)系同時(shí)記錄了邏輯關(guān)系,簡化了解析算法,提高了轉(zhuǎn)化成中間語言的效率。
【專利說明】一種梯形圖數(shù)據(jù)結(jié)構(gòu)描述及掃描解析方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于PLC軟件開發(fā)【技術(shù)領(lǐng)域】,具體涉及一種梯形圖的數(shù)據(jù)結(jié)構(gòu)描述及掃描解析方法。
【背景技術(shù)】
[0002]PLC (可編程邏輯控制器)是一種取代繼電器執(zhí)行邏輯運(yùn)算及其他順序控制功能,控制各種類型的機(jī)械或生產(chǎn)過程的電子裝置。具有可靠性高、編程簡單、使用方便、功能完善、通用性好等特點(diǎn)。
[0003]梯形圖是PLC使用得最多的圖形編程語言,被稱為PLC的第一編程語言。梯形圖與電器控制系統(tǒng)的電路圖相似,直觀易懂,很容易被工廠電氣人員掌握,特別適用于開關(guān)量邏輯控制。但是,梯形圖不能直接被PLC所識別,無法在PLC中直接運(yùn)行。因此需要將梯形圖轉(zhuǎn)化為PLC能夠識別的形式。
[0004]目前,已公開的各種文獻(xiàn)中提到的梯形圖轉(zhuǎn)換成中間語言的方法中,梯形圖數(shù)據(jù)結(jié)構(gòu)描述較為復(fù)雜,并且,采用的梯形圖轉(zhuǎn)換成樹形數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換算法通常比較復(fù)雜(例如:先將梯形圖映射為AOV圖再進(jìn)行轉(zhuǎn)化),生成的樹結(jié)構(gòu)中包含輔助信息;以至于解析梯形圖邏輯關(guān)系的算法通常時(shí)間復(fù)雜度較高,影響了轉(zhuǎn)換效率。因此,對于圖形元素之間串、并聯(lián)關(guān)系復(fù)雜的梯形圖轉(zhuǎn)換受到限制,不能很好的應(yīng)用到邏輯關(guān)系相對復(fù)雜的梯形圖程序。

【發(fā)明內(nèi)容】

[0005]本發(fā)明主要針對現(xiàn)有PLC軟件開發(fā)中梯形圖數(shù)據(jù)結(jié)構(gòu)復(fù)雜、輔助信息較多、并且梯形圖掃描算法復(fù)雜、解析效率較低等缺點(diǎn)。提出了一種面向?qū)ο蟮囊子趯?shí)現(xiàn)、簡單、高效的基于圖形元素“十字鏈表”和“二叉樹”數(shù)據(jù)結(jié)構(gòu)的描述和掃描解析梯形圖拓?fù)潢P(guān)系和邏輯關(guān)系的方法。梯形圖圖形元素實(shí)例化過程中,采用基于圖形元素“十字鏈表”來描述圖形屬性的同時(shí),使用圖形元素“二叉樹”記錄梯形圖的模型屬性,并且通過掃描圖形元素“十字鏈表”和“二叉樹”來解析梯形圖圖形元素之間的拓?fù)潢P(guān)系和邏輯關(guān)系。
[0006]在介紹本申請的技術(shù)方案之前,首先對本申請中出現(xiàn)的技術(shù)特征名稱解釋或定義如下:
[0007]圖形元素:就是組成梯形圖的各種“圖形符號”,包括連接線、網(wǎng)絡(luò)、觸點(diǎn)、線圈、運(yùn)算塊、跳轉(zhuǎn)、標(biāo)號、返回、注釋等;
[0008]連接元素:梯形圖中觸點(diǎn)、線圈等其它圖形元素通過“連接線”進(jìn)行連接,包含水平和垂直兩個(gè)方向,分別對應(yīng)著連接線兩端的圖形元素之間是“串聯(lián)”和“并聯(lián)”關(guān)系;
[0009]水平類型:水平方向連接左、右兩個(gè)圖形元素的連接線類型;
[0010]垂直類型:垂直方向連接上、下兩個(gè)圖形元素的連接線類型;
[0011]前、后向元素:梯形圖中某一圖形元素的左、右側(cè)對應(yīng)的圖形元素,其中左邊的圖形元素稱為本元素的前向元素,右邊的圖形元素稱為本元素的后向元素;引腳的四個(gè)類型(輸入、輸出、并入、并出):
[0012]①輸入引腳:連接前向元素的引腳稱為圖形元素的輸入引腳;
[0013]②輸出引腳:連接后向元素的引腳稱為圖形元素的輸出引腳;
[0014]③并入引腳:對于連接線元素(水平或垂直)連接左側(cè)垂直連接線的引腳稱為連接線元素的并入引腳;
[0015]④并出引腳:對于連接線元素(水平或垂直)連接右側(cè)垂直連接線的引腳稱為連接線元素的并出引腳;
[0016]本發(fā)明解決其技術(shù)問題是采取以下技術(shù)方案實(shí)現(xiàn):
[0017]本發(fā)明采用梯形圖圖形元素組成的“十字鏈表”和“二叉樹”對梯形圖的數(shù)據(jù)結(jié)構(gòu)進(jìn)行描述,通過遍歷圖形元素“十字鏈表”和“二叉樹”對梯形圖的拓?fù)潢P(guān)系和邏輯關(guān)系進(jìn)行解析。
[0018]一種梯形圖數(shù)據(jù)結(jié)構(gòu)描述及掃描解析方法,其特征在于,所述方法包括以下步驟:
[0019](I)定義圖形元素在梯形圖中的圖形屬性,將引腳作為梯形圖中觸點(diǎn)元素、運(yùn)算塊元素、跳轉(zhuǎn)元素、返回元素、線圈元素的圖形屬性成員;在梯形圖編輯時(shí),圖形元素之間通過引腳相互連接,連接線元素除含有輸入、輸出引腳屬性外,還包含并入、并出類型引腳,并且通過并入、并出類型引腳的所屬圖形元素的圖形屬性能夠得到相應(yīng)的連接線元素;引腳的圖形屬性中除所屬圖形元素圖元屬性外,還包含所連接的對端引腳和連接的對端的圖形元素;觸點(diǎn)元素、運(yùn)算塊元素包含輸入、輸出引腳;線圈元素、返回元素、跳轉(zhuǎn)元素只包含一個(gè)輸入引腳;
[0020](2)定義圖形元素在梯形圖中的模型屬性,連接線元素的模型屬性包括元素子類型(水平類型、垂直類型),父節(jié)點(diǎn)元素,左子節(jié)點(diǎn)元素,右子節(jié)點(diǎn)元素;觸點(diǎn)元素、運(yùn)算塊元素、線圈元素、返回元素、跳轉(zhuǎn)元素的模型屬性中只包括父節(jié)點(diǎn)元素,其自身只作為葉子節(jié)點(diǎn)兀素;
[0021](3)梯形圖圖形元素實(shí)例化過程中,設(shè)置圖形元素的前向、后向圖形元素,對于連接線元素還要設(shè)置并入、并出本連接線元素的其它連接線元素,這樣整個(gè)梯形圖就可以采用“十字鏈表”數(shù)據(jù)結(jié)構(gòu)來描述梯形圖所有圖形元素的圖形屬性;設(shè)置圖形元素父節(jié)點(diǎn)元素,左子節(jié)點(diǎn)元素,右子節(jié)點(diǎn)元素,對于連接線元素要設(shè)置左子節(jié)點(diǎn)元素、右子節(jié)點(diǎn)元素、父節(jié)點(diǎn)元素;對于其他圖形元素設(shè)置父節(jié)點(diǎn)元素,這樣整個(gè)梯形圖就可以采用“二叉樹”數(shù)據(jù)結(jié)構(gòu)來記錄梯形圖所有圖形元素的模型屬性;
[0022](4)通過遍歷梯形圖圖形元素組成的“二叉樹”和“十字鏈表”,掃描解析出梯形圖圖形元素的相對位置的靜態(tài)關(guān)系和包括嵌套在內(nèi)的并聯(lián)邏輯關(guān)系,并且結(jié)合梯形圖編輯過程的操作,進(jìn)一步計(jì)算出梯形圖編緝過程中圖形元素相對位置變化的動(dòng)態(tài)拓?fù)潢P(guān)系;
[0023](5)采用中序遍歷算法掃描記錄梯形圖圖形元素之間邏輯關(guān)系的“二叉樹”,并且結(jié)合圖形元素的類型及連接元素子類型計(jì)算出“二叉樹”上由觸點(diǎn)組成的串、關(guān)聯(lián)關(guān)系,計(jì)算出運(yùn)算塊元素、跳轉(zhuǎn)元素、返回元素執(zhí)行的判斷條件,以及線圈元素的賦值關(guān)系。
[0024]本發(fā)明的優(yōu)點(diǎn)及積極效果是:
[0025]本發(fā)明提出了一種梯形圖的數(shù)據(jù)結(jié)構(gòu)描述及掃描解析方法,具有如下優(yōu)點(diǎn)和積極效果:[0026](I)定義的梯形圖圖形元素?cái)?shù)據(jù)結(jié)構(gòu)簡單、易于實(shí)現(xiàn);
[0027](2)梯形圖圖形元素的圖形、模型屬性描述層次清晰,易于封裝;
[0028](3)梯形圖圖形元素圖形屬性解析簡單,通過掃描梯形圖圖形元素組成的“十字鏈表”和“二叉樹”即可計(jì)算出表示梯形圖圖形元素間的拓?fù)潢P(guān)系;
[0029](4)梯形圖圖形元素模型屬性解析簡單,通過掃描梯形圖圖形元素組成的“二叉樹”即可很容易的計(jì)算出梯形圖圖形元素間的復(fù)雜的邏輯關(guān)系;
[0030](5)梯形圖圖形元素組成的“二叉樹”不包含輔助信息,轉(zhuǎn)化成中間語言的遍歷解析算法簡單、易于實(shí)現(xiàn),大大提高了梯形圖轉(zhuǎn)化成中間語言的效率。
【專利附圖】

【附圖說明】
[0031]圖1為梯形圖編譯數(shù)據(jù)流示意圖。
[0032]圖2為連接線元素特征示意圖,其中:
[0033]a為單條水平連接線;
[0034]b為水平連接線與左側(cè)垂直連接線;
[0035]c為水平連接線與右側(cè)垂直連接線;
[0036]d為水平連接線與左側(cè)、右側(cè)垂直連接線。
[0037]圖3為梯形圖示例。
[0038]圖4為梯形圖“十字鏈表”拓?fù)潢P(guān)系圖,其中:
[0039]a為跳轉(zhuǎn)、線圈、返回兀素在鏈表中的節(jié)點(diǎn);
[0040]b為觸點(diǎn)元素在鏈表中的節(jié)點(diǎn);
[0041]c為連接線元素在鏈表中的節(jié)點(diǎn);
[0042]d為整個(gè)梯形圖所有元素組成的鏈表。
[0043]圖5為梯形圖“二叉樹”邏輯關(guān)系圖。
【具體實(shí)施方式】
[0044]以下結(jié)合說明書附圖及具體實(shí)施例對本發(fā)明方法做詳細(xì)說明:
[0045]如圖1所示,本發(fā)明實(shí)現(xiàn)的梯形圖數(shù)據(jù)結(jié)構(gòu)描述和掃描解析方法的示意圖。梯形圖圖形元素實(shí)例化過程中,采用梯形圖圖形元素組成“十字鏈表”和“二叉樹”對梯形圖的數(shù)據(jù)結(jié)構(gòu)進(jìn)行描述,通過遍歷圖形元素“十字鏈表”和“ 二叉樹”對梯形圖的拓?fù)潢P(guān)系和邏輯關(guān)系進(jìn)行解析。具體包括以下步驟:
[0046]1、定義圖形元素在梯形圖中的圖形屬性:
[0047](I)、連接線圖形元素:除了具有輸入、輸出類型引腳外,還含有并入、并出類型引腳;并且通過并入、并出引腳的所屬圖形元素能夠得到相應(yīng)的連接線元素。(如圖2a水平方向連接線的并入、并出引腳連接為空;如圖2b水平方向連接線的并入引腳連接了左側(cè)的垂直方向連接線;如圖2c水平方向連接線的并出引腳連接了右側(cè)的垂直方向連接線;如圖2d水平方向連接線的并入引腳連接了左側(cè)的垂直方向連接線、并出引腳連接了右側(cè)的垂直方向連接線。)
[0048](2)、觸點(diǎn)元素具有圖形元素子類型(觸點(diǎn)的子類型包含:常開、常閉等)、輸入引腳,輸出引腳。[0049](3)、運(yùn)算塊元素具有圖形元素子類型(運(yùn)算塊子類型包含:程序、函數(shù)、功能塊),多個(gè)輸入引腳、多個(gè)輸出引腳。
[0050](4)、線圈元素具有圖形元素子類型(線圈的子類型包含:置位、復(fù)位、取反等)、輸入引腳、輸出引腳,
[0051](5)、返回元素、具有圖形元素子類型、輸入引腳;
[0052](6)、跳轉(zhuǎn)元素具有圖形元素子類型、輸入引腳;
[0053](7)、圖形元素的其它公共圖形屬性參數(shù)。
[0054]2、定義圖形元素在梯形圖中的模型屬性:
[0055](I )、連接線元素具有元素子類型(水平類型、垂直類型,如圖2a為水平類型連接線;如圖2b水平類型連接線連接了左側(cè)的垂直類型連接線;如圖2c水平類型連接線連接了右側(cè)的垂直類型連接線;如圖2d水平類型連接線同時(shí)連接了左側(cè)的垂直類型連接線和右側(cè)的垂直類型連接線。)),父節(jié)點(diǎn)元素,左子節(jié)點(diǎn)元素,右子節(jié)點(diǎn)元素。
[0056]( 2 )、觸點(diǎn)元素具有父節(jié)點(diǎn)(自身只作為葉子節(jié)點(diǎn))。
[0057](3)、運(yùn)算塊元素具有父節(jié)點(diǎn)(自身只作為葉子節(jié)點(diǎn))。
[0058](4)、線圈元素具有父節(jié)點(diǎn)元素(自身只作為葉子節(jié)點(diǎn))。
[0059](5)、返回元素具有父節(jié)點(diǎn)元素(自身只作為葉子節(jié)點(diǎn))。
[0060](6)、跳轉(zhuǎn)元素具有父節(jié)點(diǎn)元素(自身只作為葉子節(jié)點(diǎn))。
[0061]3、建立“十字鏈表”和“二叉樹”:
[0062]梯形圖編輯過程中,如圖3所示,將引腳作為梯形圖圖形元素(含觸點(diǎn)圖形元素、運(yùn)算塊圖形元素、跳轉(zhuǎn)圖形元素、返回圖形元素、線圈圖形元素)的圖形屬性成員,梯形圖各圖形元素之間通過引腳圖形元素相互連接,即梯形圖圖形元素之間通過輸入、輸出引腳的屬性可以獲取前向、后向圖形元素;并且通過連接線元素的并入、并出引腳獲取該連接線元素的并入、并出連接線元素,因此,通過圖形元素之間的輸入、輸出、并入、并出關(guān)系的建立,形成由各個(gè)圖形元素組成的“十字鏈表”結(jié)構(gòu)模型描述拓?fù)潢P(guān)系,如圖4a所示為跳轉(zhuǎn)、線圈、返回元素在鏈表中的節(jié)點(diǎn);如圖4b為觸點(diǎn)元素在鏈表中的節(jié)點(diǎn);如圖4c為連接線元素在鏈表中的節(jié)點(diǎn)如圖4d為整個(gè)梯形圖所有元素組成的鏈表。
[0063]梯形圖編輯過程中,將梯形圖各圖形元素的類型、子類型、父節(jié)點(diǎn)圖形元素、子節(jié)點(diǎn)圖形元素等屬性參數(shù)進(jìn)行賦值,尤其對于連接線的并入、并出連接線賦值“縱向”子類型信息。因此,通過圖形元素之間父子關(guān)系的建立,形成由各個(gè)圖形元素組成的“二叉樹”結(jié)構(gòu)的模型記錄邏輯關(guān)系,如圖5所示。
[0064]對于“十字鏈表”和“二叉樹”的建立采取以下實(shí)施方式:
[0065]在梯形圖圖形元素實(shí)例化過程中,設(shè)置圖形元素的前向、后向圖形元素,尤其對于連接線圖形元素還要設(shè)置并入、并出類型的連接線,這樣整個(gè)梯形圖就可以采用“十字鏈表”數(shù)據(jù)結(jié)構(gòu)來描述梯形圖所有圖形元素的圖形屬性;設(shè)置圖形元素的父、子關(guān)系,對于連接線圖形元素要設(shè)置左子節(jié)點(diǎn)元素、右子節(jié)點(diǎn)元素、父節(jié)點(diǎn)元素;對于其他類型圖形元素設(shè)置父節(jié)點(diǎn)元素,此父節(jié)點(diǎn)元素類型必須是連接線元素,這樣整個(gè)梯形圖采用“二叉樹”數(shù)據(jù)結(jié)構(gòu)來描述梯形圖所有圖形元素的的模型屬性。
[0066](I)、觸點(diǎn)元素相關(guān)操作:
[0067]A、追加[0068]a、串聯(lián):
[0069]描述梯形圖拓?fù)潢P(guān)系的“十字鏈表”上,在選擇的圖形元素的前(后)增加觸點(diǎn)元素和與其前向相連接的“水平”連接線。
[0070]描述梯形圖邏輯關(guān)系的“二叉樹”上,增加“水平”連接線元素(作為作為所選節(jié)點(diǎn)的父節(jié)點(diǎn))、觸點(diǎn)元素(作為所選節(jié)點(diǎn)的兄弟節(jié)點(diǎn))。
[0071]b、并聯(lián):
[0072]描述梯形圖拓?fù)潢P(guān)系的“十字鏈表”上,在所選擇的圖形元素的上(下)增加觸點(diǎn)元素和與其前向相連接的前向、后向“垂直”連接線元素。
[0073]描述梯形圖邏輯關(guān)系的“二叉樹”上,增加“垂直”連接線元素(作為作為所選節(jié)點(diǎn)的父節(jié)點(diǎn))、觸點(diǎn)元素(作為所選節(jié)點(diǎn)的兄弟節(jié)點(diǎn))。
[0074]B、刪除
[0075]a、串聯(lián):
[0076]描述梯形圖拓?fù)潢P(guān)系的“十字鏈表”上,刪除所選擇的串聯(lián)分支上的觸點(diǎn)元素和與其前向相連接的“水平”連接線元素。
[0077]描述梯形圖邏輯關(guān)系的“二叉樹”上,刪除相應(yīng)觸點(diǎn)元素子節(jié)點(diǎn)和“水平”連接線元素節(jié)點(diǎn),并且,如果所刪除的“水平”連接線元素為所刪除的觸點(diǎn)元素的父節(jié)點(diǎn),則在“二叉樹”上將此節(jié)點(diǎn)的兄弟節(jié)點(diǎn)提升至父節(jié)點(diǎn)(被刪除的“水平”連接線元素)的位置;否則,在“二叉樹”上將此節(jié)點(diǎn)的父節(jié)點(diǎn)提升至所刪除的“水平”連接線元素節(jié)點(diǎn)的位置,此節(jié)點(diǎn)的兄弟節(jié)點(diǎn)提升至父節(jié)點(diǎn)的位置。
[0078]b、并聯(lián):
[0079]描述梯形圖拓?fù)潢P(guān)系的“十字鏈表”上,如果所選擇刪除的觸點(diǎn)元素的前向連接線是此連接線前向連接線的并出連接線,則在圖形上刪除所選擇的并聯(lián)分支上的觸點(diǎn)元素和前向連接線元素;如果所選擇刪除的觸點(diǎn)元素的后向連接線元素是此連接線后向連接線元素的并入類型連接線,則在圖形上刪除所選擇的并聯(lián)分支上的觸點(diǎn)元素和前向、后向連接線元素。
[0080]描述梯形圖邏輯關(guān)系的“二叉樹”上,刪除相應(yīng)觸點(diǎn)元素子節(jié)點(diǎn)和“垂直”連接線元素節(jié)點(diǎn),并且,如果所刪除的“垂直”連接線元素為所刪除的觸點(diǎn)元素子節(jié)點(diǎn)的父節(jié)點(diǎn),則在“二叉樹”上將此節(jié)點(diǎn)的兄弟節(jié)點(diǎn)提升至父節(jié)點(diǎn)(被刪除的“垂直”連接線元素)的位置;否則,在“二叉樹”上將此節(jié)點(diǎn)的父節(jié)點(diǎn)提升至所刪除的“垂直”連接線元素節(jié)點(diǎn)的位置,此節(jié)點(diǎn)的兄弟節(jié)點(diǎn)提升至父節(jié)點(diǎn)的位置。
[0081](2)、運(yùn)算塊圖形元素相關(guān)操作:
[0082]A、追加
[0083]描述梯形圖拓?fù)潢P(guān)系的“十字鏈表”上,在所選擇的圖形元素的前(后)增加運(yùn)算塊圖形元素和與其前向相連接的“水平”連接線;
[0084]描述梯形圖邏輯關(guān)系的“二叉樹”上,首先,查找該運(yùn)算塊所屬邏輯關(guān)系“二叉子樹”;然后在“二叉子樹”的左(右)增加“水平”連接線元素父節(jié)點(diǎn)和運(yùn)算塊元素子節(jié)點(diǎn)。
[0085]B、刪除
[0086]描述梯形圖拓?fù)潢P(guān)系的“十字鏈表”上,刪除所選擇的串聯(lián)分支上的運(yùn)算塊元素和與其前向相連接的“水平”連接線元素。[0087]描述梯形圖邏輯關(guān)系的“二叉樹”上,刪除相應(yīng)運(yùn)算塊元素子節(jié)點(diǎn)和“水平”連接線元素父節(jié)點(diǎn);并且,將此節(jié)點(diǎn)的兄弟節(jié)點(diǎn)提升至父節(jié)點(diǎn)(被刪除的“垂直”連接線元素)的位置(此運(yùn)算塊子元素節(jié)點(diǎn)和“水平”連接線元素必為父子關(guān)系)。
[0088](3)、跳轉(zhuǎn)元素、返回元素、線圈元素相關(guān)操作:
[0089]A、追加
[0090]a、橫向:
[0091]描述梯形圖拓?fù)潢P(guān)系的“十字鏈表”上,在所選擇的圖形元素的前(后)增加圖形元素和與其前向相連接的“水平”連接線元素。
[0092]描述梯形圖邏輯關(guān)系的“二叉樹”上,增加“水平”連接線元素父節(jié)點(diǎn)、圖形元素節(jié)點(diǎn)(作為所選節(jié)點(diǎn)的兄弟節(jié)點(diǎn))。
[0093]b、縱向:
[0094]描述梯形圖拓?fù)潢P(guān)系的“十字鏈表”上,在所選擇的圖形元素的上(下)增加跳轉(zhuǎn)、返回或線圈圖形元素和與其相連接的“水平”、“垂直”連接線元素。
[0095]描述梯形圖邏輯關(guān)系的“二叉樹”上,增加“垂直”連接線元素父節(jié)點(diǎn)、圖形元素節(jié)點(diǎn)(作為所選節(jié)點(diǎn)的兄弟節(jié)點(diǎn))。
[0096]B、刪除:
[0097]a、橫向:
[0098]描述梯形圖拓?fù)潢P(guān)系的“十字鏈表”上,刪除所選擇的圖形元素和其前向連接線元素。
[0099]描述梯形圖邏輯關(guān)系的“二叉樹”上,刪除相應(yīng)跳轉(zhuǎn)、返回或線圈圖形元素子節(jié)點(diǎn)和“水平”連接線元素節(jié)點(diǎn),并且,如果所刪除的“水平”連接線元素為所刪除的觸點(diǎn)元素節(jié)點(diǎn)的父節(jié)點(diǎn),則在“二叉樹”上將此節(jié)點(diǎn)的兄弟節(jié)點(diǎn)提升至父節(jié)點(diǎn)(被刪除的“水平”連接線元素)的位置;否則,在“二叉樹”上將此節(jié)點(diǎn)的父節(jié)點(diǎn)提升至所刪除的“水平”連接線元素節(jié)點(diǎn)的位置,此節(jié)點(diǎn)的兄弟節(jié)點(diǎn)提升至父節(jié)點(diǎn)的位置。
[0100]b、縱向:
[0101]描述梯形圖拓?fù)潢P(guān)系的“十字鏈表”上,刪除所選擇的縱向分支上的跳轉(zhuǎn)、返回或線圈圖形元素和前向連接線節(jié)點(diǎn);
[0102]描述梯形圖邏輯關(guān)系的“二叉樹”上,刪除相應(yīng)圖形元素子節(jié)點(diǎn)和“垂直”連接線節(jié)點(diǎn),并且,將此節(jié)點(diǎn)的兄弟節(jié)點(diǎn)提升至父節(jié)點(diǎn)(被刪除的“垂直”連接線元素)的位置(此跳轉(zhuǎn)、返回或線圈圖形元素子節(jié)點(diǎn)和“水平”連接線必為父子關(guān)系)。
[0103]4、解析梯形圖拓?fù)潢P(guān)系:
[0104]通過遍歷梯形圖圖形元素組成的“二叉樹”和“十字鏈表”,掃描解析出梯形圖圖形元素的相對位置的靜態(tài)關(guān)系和包括嵌套在內(nèi)的并聯(lián)關(guān)系,并且根據(jù)梯形圖編輯過程的操作方法,并且結(jié)合梯形圖編輯過程的操作,進(jìn)一步計(jì)算出梯形圖編緝過程中圖形元素相對位置變化的動(dòng)態(tài)拓?fù)潢P(guān)系。
[0105](I)、遍歷梯形圖圖形元素組成的“十字鏈表”,通過圖形元素之間的前向、后向、并入、并出關(guān)系,計(jì)算圖形元素之間的相對位置靜態(tài)關(guān)系;
[0106](2)、遍歷梯形圖圖形元素組成的“二叉樹”,通過節(jié)點(diǎn)之間的父子關(guān)系、左右兄弟關(guān)系,計(jì)算觸點(diǎn)圖形元素之間的包括嵌套在內(nèi)的并聯(lián)關(guān)系;[0107](3)、梯形圖編輯過程中(即圖形元素的增加、刪除、修改)通過遍歷“十字鏈表”和“二叉樹”獲得的圖形元素相對位置關(guān)系和嵌套的并聯(lián)關(guān)系,進(jìn)一步計(jì)算出整個(gè)梯形圖圖形元素相對位置變化的動(dòng)態(tài)拓?fù)潢P(guān)系。
[0108]5、解析梯形圖邏輯關(guān)系:
[0109]梯形圖圖形元素在模型上通過父子關(guān)系進(jìn)行連接,因此,可以采用中序遍歷算法掃描記錄梯形圖圖形元素之間邏輯關(guān)系的“二叉樹”,并且結(jié)合圖形元素的類型及連接線元素節(jié)點(diǎn)圖形元素子類型計(jì)算出“二叉樹”上由圖形元素組成的串、關(guān)聯(lián)關(guān)系;運(yùn)算塊元素、跳轉(zhuǎn)元素、返回元素的執(zhí)行條件;線圈元素的賦值關(guān)系。
[0110](I)、掃描到連接線節(jié)點(diǎn)子類型為“水平”時(shí),則表示其左、右子節(jié)點(diǎn)之間是“串聯(lián)”關(guān)系;掃描到連接線節(jié)點(diǎn)子類型為“垂直”時(shí),則表示左、右子節(jié)點(diǎn)之間是“并聯(lián)”關(guān)系;
[0111](2)、掃描到運(yùn)算塊元素、跳轉(zhuǎn)元素、返回元素、線圈元素時(shí),則結(jié)束前一段由觸點(diǎn)元素組成的“二叉子樹”的掃描,并且將前一段的邏輯關(guān)系作為此運(yùn)算塊元素或跳轉(zhuǎn)元素、返回元素執(zhí)行的判斷條件;
[0112](3)、掃描到線圈元素時(shí),將已經(jīng)掃描解析的前一段邏輯關(guān)系的結(jié)果與該線圈元素組成賦值關(guān)系。
【權(quán)利要求】
1.一種梯形圖數(shù)據(jù)結(jié)構(gòu)描述及掃描解析方法,其特征在于: 采用梯形圖圖形元素組成的“十字鏈表”和“二叉樹”對梯形圖的數(shù)據(jù)結(jié)構(gòu)進(jìn)行描述,通過遍歷圖形元素“十字鏈表”和“二叉樹”對梯形圖的拓?fù)潢P(guān)系和邏輯關(guān)系進(jìn)行解析。
2.根據(jù)權(quán)利要求1所述的梯形圖數(shù)據(jù)結(jié)構(gòu)描述及掃描解析方法,其特征在于,所述方法包括以下步驟: (1)定義圖形元素在梯形圖中的圖形屬性,將引腳作為梯形圖中圖形元素的圖形屬性成員; 其中,所述圖形元素包括中觸點(diǎn)元素、運(yùn)算塊元素、跳轉(zhuǎn)元素、返回元素、線圈元素、連接線元素; 圖形元素之間通過引腳相互連接,連接線元素除含有輸入、輸出類型引腳外,還包含并入、并出類型引腳,并且通過并入、并出類型引腳的所屬圖形元素的圖形屬性能夠得到相應(yīng)的連接線元素; (2)定義圖形元素在梯形圖中的模型屬性,連接線元素的模型屬性包括子類型、父節(jié)點(diǎn)元素、左子節(jié)點(diǎn)元素、右子節(jié)點(diǎn)元素;觸點(diǎn)元素、運(yùn)算塊元素、線圈元素、返回元素、跳轉(zhuǎn)元素的模型屬性中只包括父節(jié)點(diǎn)元素,其自身只作為葉子節(jié)點(diǎn)元素; 其中,所述元素子類型包括水平類型、垂直類型,水平類型是指水平方向連接左、右兩個(gè)圖形元素的連接線稱為水平類型,垂直類型是指垂直方向連接上、下兩個(gè)圖形元素的連接線成為垂直類型。 (3)梯形圖圖形元素實(shí)例化過程中,設(shè)置圖形元素的前向、后向圖形元素,對于連接線元素還要設(shè)置并入、并出本連接線元素的其它連接線元素,這樣整個(gè)梯形圖就可以采用“十字鏈表”數(shù)據(jù)結(jié)構(gòu)來描述梯形圖所有圖形元素的圖形屬性; 設(shè)置圖形元素父節(jié)點(diǎn)元素,左子節(jié)點(diǎn)元素,右子節(jié)點(diǎn)元素,對于連接線元素要設(shè)置左子節(jié)點(diǎn)元素、右子節(jié)點(diǎn)元素、父節(jié)點(diǎn)元素;對于其他圖形元素設(shè)置父節(jié)點(diǎn)元素,這樣整個(gè)梯形圖就可以采用“二叉樹”數(shù)據(jù)結(jié)構(gòu)來記錄梯形圖所有圖形元素的模型屬性; (4)通過遍歷梯形圖圖形元素組成的“二叉樹”和“十字鏈表”,掃描解析出梯形圖圖形元素的相對位置的靜態(tài)關(guān)系和包括嵌套在內(nèi)的并聯(lián)邏輯關(guān)系,計(jì)算出梯形圖編緝過程中圖形元素相對位置變化的動(dòng)態(tài)拓?fù)潢P(guān)系; (5)采用中序遍歷算法掃描記錄梯形圖圖形元素之間邏輯關(guān)系的“二叉樹”,并且結(jié)合圖形元素的類型及連接元素子類型計(jì)算出“二叉樹”上由觸點(diǎn)組成的串、關(guān)聯(lián)關(guān)系,計(jì)算出運(yùn)算塊元素、跳轉(zhuǎn)元素、返回元素執(zhí)行的判斷條件,以及線圈元素的賦值關(guān)系。
3.根據(jù)權(quán)利要求2所述的梯形圖數(shù)據(jù)結(jié)構(gòu)描述及掃描解析方法,其特征在于: 在步驟(I)中,引腳的圖形屬性中除所屬圖形元素圖元屬性外,還包含所連接的對端引腳和連接的對端的圖形元素;觸點(diǎn)元素、運(yùn)算塊元素包含輸入、輸出引腳;線圈元素、返回元素、跳轉(zhuǎn)元素只包含一個(gè)輸入引腳。
【文檔編號】G06T9/00GK103559727SQ201310585975
【公開日】2014年2月5日 申請日期:2013年11月20日 優(yōu)先權(quán)日:2013年11月20日
【發(fā)明者】李琨, 王長江, 王沿海, 王鼎, 李維 申請人:北京四方繼保自動(dòng)化股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1