[發明專利]按照IEC61131-3標準的將梯形圖語言編譯成指令表語言的方法無效
| 申請號: | 200810062554.9 | 申請日: | 2008-06-24 |
| 公開(公告)號: | CN101369234A | 公開(公告)日: | 2009-02-18 |
| 發明(設計)人: | 嚴義;章航平 | 申請(專利權)人: | 杭州電子科技大學 |
| 主分類號: | G06F9/45 | 分類號: | G06F9/45;G05B19/05 |
| 代理公司: | 杭州求是專利事務所有限公司 | 代理人: | 周烽 |
| 地址: | 310018浙江省*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 按照 iec61131 標準 梯形 語言 譯成 指令 表語 方法 | ||
技術領域
本發明涉及工業控制語言的編譯方法,特別地,涉及一種按照IEC?61131-3國際標準的將梯形圖語言編譯成指令表語言的方法。
背景技術
可編程邏輯控制器在當今的各行各業中具有廣泛的應用。IEC?61131-3是可編程控制器編程語言的國際標準,該標準定義了四種編程語言,分別為梯形圖(LD)、指令表(IL)、結構化文本(ST)及功能塊圖(FBD)。其中,梯形圖語言是目前工業控制領域最為流行的編程語言。由于梯形圖語言是一種圖形化的高級語言,因此用梯形圖語言編寫的控制邏輯不能被可編程邏輯控制器的處理器直接執行。目前商用的可編程控制器編程平臺都先將梯形圖語言轉換成指令表語言,再對指令表語言解釋執行或將指令表語言編譯成匯編語言后執行。
盡管IEC?61131-3已經被可編程控制器廠商普遍接受,但出于各種原因,目前商用可編程控制器梯形圖到指令表編譯軟件還未能完全符合IEC61131-3標準。同時,這些平臺對梯形圖的功能、拓撲的連接方式等方面的支持也不一致。這造成已經存在的梯形圖語言代碼在更換可編程控制器平臺后,移植困難,需要進行大量的修改或重寫,效率低下。
發明內容
本發明的目的是針對現有技術的不足,提供一種按照IEC?61131-3標準的將梯形圖語言編譯成指令表語言的方法,使得梯形圖的控制邏輯最終可以被可編程邏輯控制器的處理器正確執行。
本發明的目的是通過以下技術方案來實現的:一種將符合IEC?61131-3標準的梯形圖語言編譯成指令表語言的方法,包括如下步驟:
(1)利用有向圖來表達梯形圖中每個梯級的拓撲結構,形成一個有向圖的集合;
(2)若某個有向圖具有n個輸出線圈節點,則將該有向圖進行拆分為n個子有向圖,其中,n大于1;
(3)根據有向圖中節點之間的串并聯關系,將每個有向圖轉化為二叉分解樹。對該二叉分解樹進行后序遍歷,得到遍歷結果符合“從上到下,從左到右”的梯形圖到指令表翻譯原則;
(4)依后序遍歷的順序,計算二叉分解樹中規約節點的指令表,根節點的指令表就是其有向圖的指令表。
本發明的有益效果是:通過按照IEC?61131-3標準的將梯形圖語言編譯成指令表語言的方法,使得任何符合標準規定的梯形圖語言都可以轉換成標準的指令表語言,方便實現梯形圖程序在不同可編程控制器平臺之間的移植,提高開發的效率及產品的可靠性。
附圖說明
圖1是數據結構轉換的流程圖;
圖2是梯形圖中復雜連接關系抽象為有向圖邊的示意圖;
圖3具有多個輸出線圈的梯形圖示意圖;
圖4為圖2經轉換后生成的有向圖示意圖;
圖5為將具有多個線圈節點的有向圖分解為若干子圖的流程圖;
圖6為利用圖4中的算法分解圖3所示有向圖的示意圖;
圖7為建立二叉分解樹的流程圖;
圖8為利用圖6中的算法建立圖5中G1’的二叉分解樹的示意圖;
圖9為利用圖6中的算法建立圖5中G4的二叉分解樹的示意圖;
圖10為從二叉分解樹得到指令表的流程圖;
具體實施方式
在提供可編程邏輯控制器編程環境的軟件系統中,實現按照IEC?61131-3標準的將梯形圖語言編程成指令表語言的方法的實質,就是將梯形圖語言的數據結構轉換到指令表語言的數據結構。因此在編譯過程中存在的問題,一是確定表示梯形圖語言和指令表語言的合理數據結構,且該結構必須充分支持IEC61131-3對梯形圖及指令表的語法定義。二是要建立一種將表示梯形圖的數據結構轉換為表示指令表的數據結構的方法,并確保兩種結構所表達的控制邏輯完全一致。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于杭州電子科技大學,未經杭州電子科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200810062554.9/2.html,轉載請聲明來源鉆瓜專利網。





