[發明專利]一種結構化文本代碼處理方法和系統在審
| 申請號: | 201710052306.5 | 申請日: | 2017-01-22 |
| 公開(公告)號: | CN106844310A | 公開(公告)日: | 2017-06-13 |
| 發明(設計)人: | 陳宏君;張磊;周磊;譚良良;劉克金;文繼鋒;徐衛峰;周強;牛洪海 | 申請(專利權)人: | 南京南瑞繼保電氣有限公司;南京南瑞繼保工程技術有限公司 |
| 主分類號: | G06F17/22 | 分類號: | G06F17/22 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 211106 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 結構 文本 代碼 處理 方法 系統 | ||
技術領域
本發明屬于工業控制編程領域,具體涉及結構化文本代碼的處理方法。
背景技術
IEC61131標準將結構化、模塊化編程引入工業控制領域,可提高PLC、DCS等控制系統的開放性、兼容性、可維護性。符合IEC61131標準的控制器產品,即使是不同廠家制造,其編程語言和使用方法也是相同的,產品維護人員和用戶可以一次學習,多次使用,可減少人員培訓、系統維護的成本。其中結構化文本由于不涉及到圖形的存儲格式,以純文本的代碼來實現程序的邏輯,可實現復雜的控制算法,并利于不同版本、不同廠家的程序復用,得到了廣泛應用。
結構化文本(ST)是一種是類似于Pascal的高級編程語言,特別適合復雜的算法技術,程序結構清晰,便于編程人員和操作維護人員進行算法溝通。結構化文本需要轉換為裝置可運行的目標文件才能運行。常規的實現方案是將結構化文本轉換為解釋型指令,在裝置內解釋執行,其缺點是運行效率低,不適用實時性要求高的應用場景。有廠家將ST代碼直接轉換為機器指令,當更新硬件型號時,需要修改轉換表,同時從ST代碼轉換到機器匯編指令的過程復雜,出現錯誤時很難定位和排查,存在隱患。也有文獻提出將ST代碼轉換為C語言,并將整個工程編譯為1個二進制目標文件后運行,將ST代碼轉換為C語言,轉換關系明確可視,之后調用經過嚴格測試和大規模應用的第三方編譯器編譯C代碼,過程可靠,C代碼的運行效率高,適用于實時性要求高的場景。然而工業控制和其它行業編程的一個顯著差異是,需要在裝置運行時刻能部分更新替換程序,裝置的實時任務不能中斷。如果編譯為1個可執行程序,即使只修改一行代碼,也需重新形成代碼,重新編譯鏈接形成可執行程序,并停止裝置程序運行,重新加載可執行程序,無法滿足在線無擾更新的場景。因此,在面向工業控制應用開發中,用戶需要使用標準的結構化文本,轉換后的代碼需要高效率運行,還需要支持增量無擾更新等關鍵需求,尚未有文獻提出同時滿足上述需求的可行解決方案,為了解決上述問題,本案由此產生。
發明內容
本發明的目的是將結構化文本轉換為高效率運行的目標代碼,并以程序組織單元(POU)為單位獨立編譯為二進制組件庫,實現程序高效率運行和在線增量更新。為了達成上述目的,本發明提供一種結構化文本代碼處理方法,其特征在于包括如下步驟:
將結構化文本代碼按照程序組織單元轉換為C代碼文件;
在轉換過程中嵌入預定義的接口函數;
將各個程序組織單元轉換后的C代碼文件編譯為獨立的二進制組件庫;
裝置獲取并加載若干二進制組件庫,運行接口函數。
優選地,所述方法還包括:
裝置的功能代碼由若干編譯后二進制組件構成,裝置在初始化時加載各個組件,獲取固定名稱的C接口函數地址,形成初始化、運行函數鏈表。
裝置運行過程中,可替換更新二進制組件庫。裝置在非實時線程中更新替換加載組件,記錄新的接口函數地址,在實時任務運行階段更新組件接口函數地址,實現組件增量更新。
單個程序組織單元轉換后的C代碼包括如下內容:輸入變量聲明、輸出變量聲明、功能塊實例名聲明、系統功能回調函數指針變量、組件的初始化接口函數、組件的任務接口函數、組件變量讀寫接口函數。
在代碼轉換前,預先建立IEC61131-3標準定義的變量類型、函數、功能塊、語句的轉換映射表,根據轉換映射表,將結構化文本代碼轉換為有限子集的C代碼。
優選地,所述的裝置包括嵌入式裝置和PC機虛擬裝置。針對嵌入式Linux操作系統的裝置,組件編譯為*.so文件,針對嵌入式Vxworks操作系統的裝置,組件編譯為*.cdf文件,針對PC機虛擬裝置,組件編譯為*.dll文件。
優選地,裝置在加載組件時,將全局變量讀寫接口函數地址賦給組件內系統功能回調函數指針變量,組件之間的數據交互通過調用函數指針實現。
一種結構化文本代碼處理系統,其特征在于,所述系統包括:結構化文本編輯模塊、代碼轉換模塊、代碼編譯模塊、通信模塊、系統軟件模塊。其中:
所述的結構化文本編輯模塊,提供文本編輯界面,編寫結構化文本代碼,并以程序組織單元為單位存儲多個文本代碼;
所述的代碼轉換模塊,以程序組織單元為單位分析結構化文本代碼,轉換為對應的C代碼文件,并在C代碼中嵌入和系統軟件模塊預定義的接口函數;
所述的代碼編譯模塊,自動形成Makefile文件,調用嵌入式裝置或PC機虛擬裝置對應的編譯器,將C代碼文件編譯形成二進制組件庫;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京南瑞繼保電氣有限公司;南京南瑞繼保工程技術有限公司,未經南京南瑞繼保電氣有限公司;南京南瑞繼保工程技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710052306.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種連桿式偏心破袋機
- 下一篇:一種含導電無紡布底膜的PET膜的撕膜設備





