[發明專利]指令表IL程序到C語言程序的編譯方法無效
| 申請號: | 201110367845.0 | 申請日: | 2011-11-18 |
| 公開(公告)號: | CN103123590A | 公開(公告)日: | 2013-05-29 |
| 發明(設計)人: | 高麗;李忠琪;楊東升;劉蔭忠 | 申請(專利權)人: | 中國科學院沈陽計算技術研究所有限公司 |
| 主分類號: | G06F9/45 | 分類號: | G06F9/45 |
| 代理公司: | 沈陽科苑專利商標代理有限公司 21002 | 代理人: | 許宗富 |
| 地址: | 110168 遼*** | 國省代碼: | 遼寧;21 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 指令 il 程序 語言 編譯 方法 | ||
技術領域
本發明涉及可編程邏輯控制器的編譯技術領域,尤其是涉及PLC的編程語言指令表IL程序到C語言程序的編譯方法。
背景技術
軟PLC技術在工業控制中應用領域極其廣泛,然而各生產廠家或研究單位都是針對某一特定系統環境開發PLC程序的編譯執行技術。這種針對單一運行環境的編譯技術缺乏通用性,兼容性,不能移植到其他的計算環境中使用。因此一種可移植性強,兼容性好的編譯技術成為軟PLC技術發展的迫切需求。符合IEC61131-3標準的指令表是軟PLC編程中常用的文本化編程語言,C語言是多種計算機系統所采用的編程語言,具備可移植性強和兼容性好的特點,符合軟PLC編譯的目標代碼要求,且C語言程序在各種計算機系統下能被快速編譯執行。因此從指令表IL程序到C語言程序的編譯技術具備很強的實用性,可行性和研究意義。
發明內容
針對上述的問題,本發明提出一種指令表IL程序到C語言程序的編譯方法,主要解決了編譯過程中對IL語言的邏輯組成解析、中間語法結構的建立、生成目標語言C語言的過程以及輔助函數和數據結構,該方法實現了PLC程序到計算機高級語言的一種快速高效編譯方法,又使得目標程序具有廣泛實用性、通用性,可用于多種計算機系統。
為實現本發明的目的,本發明采取以下技術方案:
該指令表IL程序到C語言程序的編譯方法,其特征在于:包括步驟如下:
采用詞法分析程序掃描指令表程序將識別和歸類好的詞匯送給語法分析,語法分析采用yacc對符合指令表邏輯的程序段和語句進行語法歸約,將語法歸約結果建立中間存儲結構語法樹,該結構根據指令表邏輯組成和C語言邏輯組成的邏輯一致性分析得出的語義映射,結合功能和功能塊的輔助功能函數模塊和定義數據結構的輔助文件生成C語言程序。
所述語法分析是按照指令表邏輯從單詞到語句,從語句到程序段進行遞歸和約束,將約束結果的邏輯單元存儲到中間結構語法樹。
所述語義映射是通過指令表和C語言邏輯的語義一致性關系建立一個翻譯模塊,該模塊將指令表和C語言邏輯單元中具備同一邏輯意義的關鍵字、變量、常量對應成C語言的關鍵字、變量、常量。
所述輔助功能函數模塊是以指令表中具有固定邏輯功能的功能和功能塊按照C語言編程方法實現具備相同功能的可直接調用的C語言功能函數。
所述定義數據結構的輔助文件是以C語言中定義數據結構的方法建立符合功能函數調用所需的參數傳遞的結構體。
本發明的技術效果和優點:
1.本發明方法完成指令表IL和C語言的語義映射關系,在邏輯上使目標語言與源語言實現完全一致。
2.本發明方法建立的語法樹結構,使語法規約和語義解析可行,實現了編譯的量產化。
3.本發明方法功能和功能塊的輔助函數模塊化,減少實際編譯過程中需要編譯轉換的源程序數量,降低了編譯復雜度縮短了編譯時間,使整個編譯過程的速度提高。
4.本發明方法最終生成的C程序具備可移植性強、兼容性好等特點,適用于多種計算機系統,使后期編譯執行速度快,便于實現數控系統中對高速加工的需求。
5.本發明方法可將最終C語言文件事先編制成可供計算的機器代碼,具有資源占用少的特點,符合工業加工控制中高效低耗性能。
附圖說明
圖1為指令表IL程序到C語言程序的編譯過程圖。
圖2為指令表IL程序的邏輯解析圖。
圖3為圖1中語法樹結構圖。
具體實施方式
下面結合圖示本發明的方案進一步詳細描述:
參見圖1,指令表IL程序到C語言程序的編譯方法,其特征在于:包括步驟如下:
采用詞法分析程序掃描指令表程序將識別和歸類好的詞匯送給語法分析,語法分析采用yacc對符合指令表邏輯的程序段和語句進行語法歸約,將語法歸約結果建立中間存儲結構語法樹,該結構根據指令表邏輯組成和C語言邏輯組成的邏輯一致性分析得出的語義映射,結合功能和功能塊的輔助功能函數模塊和定義數據結構的輔助文件生成C語言程序。
從讀取用戶編輯的指令表IL程序開始,經過詞法分析、語法分析、語義分析、報錯處理過程,結合輔助功能功能函數和數據結構定義文件,一段完整無錯誤的指令表程序被編譯成完整的C程序文件。
把指令表程序劃分為幾個結構塊,對每一個結構塊又進行細分,直到細分到單個詞組。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院沈陽計算技術研究所有限公司,未經中國科學院沈陽計算技術研究所有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110367845.0/2.html,轉載請聲明來源鉆瓜專利網。





