[發明專利]一種圖形語言程序的有序分解方法及有序分解器有效
| 申請號: | 201110394931.0 | 申請日: | 2011-12-02 |
| 公開(公告)號: | CN102508691A | 公開(公告)日: | 2012-06-20 |
| 發明(設計)人: | 劉立忠;施波;劉小樹 | 申請(專利權)人: | 北京和利時系統工程有限公司 |
| 主分類號: | G06F9/45 | 分類號: | G06F9/45 |
| 代理公司: | 北京安信方達知識產權代理有限公司 11262 | 代理人: | 栗若木;王漪 |
| 地址: | 100096 北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 圖形 語言 程序 有序 分解 方法 | ||
技術領域
本發明涉及工業控制領域,尤其涉及一種圖形語言程序的有序分解方法及有序分解器。
背景技術
在工業控制領域中,典型的可編程控制系統(如PLC或DCS)都支持工程師通過邏輯編程或組態對被控對象進行控制;典型的可編程控制系統的結構如圖1所示,包括上位機(也稱工程師站)和下位機(也稱控制站)部分,控制站通過IO模塊和工業儀表相連,工程師可以在工程師站采用IEC組態軟件進行邏輯編程,這些程序一般就是對被控對象的控制算法。可以應用此類可編程控制系統的工業現場以及被控對象數量和種類繁多,此處不一一列舉。
一般來說,此類可編程控制系統的工程師站或上位機,都應包含一個支持用戶進行邏輯編程和編譯的系統,這個編譯系統一般稱之為組態軟件或IEC編程器,本文中簡稱為“編程器”,而工程師可以用來進行邏輯編程的語言包括很多種:ST,C,LD,FBD,CFC,SFC,IL,因果表……等等。例如IEC61131標準列舉了一些組態語言規范,如IL,ST,LD,FBD,SFC等。不同于一般的軟件行業,這些編程語言既有文本語言(ST,C,IL等等),也有圖形語言(LD,FBD,CFC,SFC等等)。在圖形語言中,按照各個圖形元素的順序關系特點,又可分為:
(一)計算順序明確的圖形語言(如LD,SFC等);
(二)可能有多種計算順序的圖形類語言(如FBD,CFC)。
對于第二種圖形類語言,圖形結構可能會很復雜,給編譯和其他處理帶來難度,需要以編譯為目標進行結構分析。另一方面,由于順序不明確,一般需要人為指定順序或自動排序與人為指定相結合,那么編譯的結果就會不確定;而且由于圖形類語言一般較大,編譯時復雜度較高,花費時間較長,編譯效率會比較低。
發明內容
本發明要解決的技術問題是如何提高圖形類語言的編譯效率和準確性。
為了解決上述問題,本發明提供了一種圖形語言程序的有序分解方法,包括:
對各網絡分別進行下述步驟:
S1、檢查該網絡中每個塊,如果一個塊的輸入引腳沒有連接其它塊或沒有輸入引腳,則將該塊設置為起點塊;如果一個塊符合下述條件之一,則將該塊設置為終點塊:輸出引腳沒有連接其它塊或沒有輸出引腳;某個輸出引腳連接的塊的個數大于1;輸出引腳的個數大于1;連接在輸出引腳個數大于1的塊的輸入引腳上;
S2、對于該網絡中的每個終點塊,分別進行下述處理:將該終點塊作為當前塊,建立當前子圖,然后執行步驟S21~S23,直到該終點塊處理完成;
S21、依次檢查當前塊的各輸入連接塊,如果一個輸入連接塊既不是起點塊也不是終點塊,則進行步驟S22;如果一個輸入連接塊是終點塊,則設置該輸入連接塊處理完成;如果一個輸入連接塊是起點塊,則將該輸入連接塊設置為屬于當前子圖,并且設置該輸入連接塊處理完成;如果當前塊的輸入連接塊都已處理完成,則進行步驟S23;
S22、將該輸入連接塊設置為當前塊,返回步驟S21;
S23、設置當前塊屬于當前子圖;判斷當前塊是否為終點塊,如果不是終點塊,則將該當前塊設置為處理完成,然后將其輸出連接塊作為當前塊,返回步驟S21;如果是終點塊,則該終點塊處理完成。
進一步地,所述步驟S1前還包括步驟:
S0、檢查該網絡是否滿足以下條件,如果滿足則進行步驟S1,否則不對該網絡進行后續處理:
該網絡內的任意兩個塊直接或間接被線連接到一起;
該網絡內不存在環;
各線的兩端為塊;
塊的每個輸入引腳的連線條數小于或等于1;
各輸出塊在幾何位置上可以區別。
進一步地,所述的方法還包括:
對各網絡分別進行步驟S3:
S3、設置計數器的初始值;對于該網絡中的每個輸出塊,按照預定順序依次分別進行下述處理:將該輸出塊作為當前塊,然后進行步驟S31~?S33,直到該輸出塊處理完成:
S31、檢查當前塊是否存在未獲得順序號的輸入連接塊,如果存在,則將當前塊標記為“遍歷中”,然后進入步驟S32;如果不存在則進行步驟S33;
S32、依次將該當前塊的一個沒有獲得順序號的輸入連接塊作為當前塊,返回步驟S31;
S33、將計數器當前的值作為順序號分配給當前塊,將計數器的值加1,如果當前塊有“遍歷中”的標記則取消;判斷當前塊是否為輸出塊,如果當前塊不是輸出塊,則將當前塊的標記為“遍歷中”的輸出連接塊作為當前塊,返回步驟S31;如果是輸出塊,則該輸出塊處理完成。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京和利時系統工程有限公司,未經北京和利時系統工程有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110394931.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種減少段彩竹節紗毛羽的裝置
- 下一篇:一種陀螺式瓶起子





