新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 電氣測控系統(tǒng)的改進——軟PLC

        電氣測控系統(tǒng)的改進——軟PLC

        作者: 時間:2012-07-17 來源:網(wǎng)絡(luò) 收藏

          圖2 運行系統(tǒng)的結(jié)構(gòu)組成
          運行系統(tǒng)可在多種支持平臺上運行,它通過將數(shù)據(jù)區(qū)和代碼區(qū)分離,實現(xiàn)程序的動態(tài)更新和代碼的高效率動態(tài)下載。
          (1)在μClinux平臺上實現(xiàn)軟虛擬機實現(xiàn)步驟
          將梯形圖的指令翻譯成宏匯編并建立一個宏庫;
          把用戶編寫的梯形圖程序編譯成中間代碼形式的PLM文件;
          將PLM文件轉(zhuǎn)變?yōu)閰R編程序;
          用匯編器匯編變成功的匯編程序,將解釋執(zhí)行內(nèi)部指令(PLM文件)轉(zhuǎn)換為程序,匯編成機器碼執(zhí)行,實現(xiàn)指令機器碼執(zhí)行方案,大大地提高了執(zhí)行速度控制工程網(wǎng)版權(quán)所有,同時大大節(jié)約了內(nèi)存空間;
          將指令對應(yīng)的機器碼移植到嵌入式操作系統(tǒng)中執(zhí)行。
          (2)運行系統(tǒng)的兩大模塊
          運行系統(tǒng)主要由兩大模塊組成:1)梯形圖到機器碼程序的轉(zhuǎn)換;2)執(zhí)行機器碼文件。每個模塊的功能如下:
          1)梯形圖到機器碼程序的轉(zhuǎn)換。首先把用戶編寫的梯形圖程序編譯成中間代碼形式的PLM文件,然后將PLM文件轉(zhuǎn)變?yōu)閰R編程序,最后用匯編器匯編轉(zhuǎn)變成功的匯編程序CONTROL ENGINEERING China版權(quán)所有,產(chǎn)生機器碼從而生成可執(zhí)行的PLE文件。
          2)執(zhí)行機器碼文件。將PLE文件嵌入配置好的執(zhí)行環(huán)境中并執(zhí)行,通過工控機的面版指示燈監(jiān)測程序的正確性。
          (3)虛擬機總體設(shè)計
          根據(jù)虛擬機的原理和執(zhí)行機制,對虛擬機的機器碼執(zhí)行方案進行了總體設(shè)計,如圖3所示。PLC文件是梯形圖程序的保存文件,通過對PLC文件進行詞法分析、語法分析和語義分析編譯產(chǎn)生PLM文件,然后調(diào)用宏匯編庫,并進行一系列的轉(zhuǎn)換生成機器碼,產(chǎn)生PLE文件;最后創(chuàng)建機器運行環(huán)境來執(zhí)行機器碼,宏匯編庫中是每個梯形圖指令對應(yīng)的宏匯編段。

          圖3 虛擬運行總體設(shè)計框圖
          (4)交叉開發(fā)調(diào)試算法研究
          非嵌入式通常采用本機開發(fā)、本機調(diào)試、本機運行的開發(fā)方式;而嵌入式開發(fā)需要交叉開發(fā),絕大多數(shù)采用宿主機開發(fā)、宿主機和目標機之間交叉調(diào)試、目標機運行的方式開發(fā)。
          交叉開發(fā)調(diào)試算法:
          在宿主機平臺上編寫程序代碼;
          固化監(jiān)控器至目標機上;
          連接宿主機和目標機;
          編譯鏈接應(yīng)用程序,生成可執(zhí)行代碼;
          將可執(zhí)行代碼下載到目標機;
          使用交叉調(diào)試器進行調(diào)試;
          如果程序調(diào)試沒有發(fā)現(xiàn)異常CONTROL ENGINEERING China版權(quán)所有,轉(zhuǎn)至11);
          調(diào)試程序時發(fā)生錯誤,利用交叉調(diào)試器定位錯誤;
          修改錯誤代碼;
          重復(fù)4)-10);
          將目標機程序固化在目標機上。
          4 嵌入式軟PLC改造后的控制系統(tǒng)
          以測試繼電器TV5實驗為例。其要求如下:每次測試5個繼電器,每個繼電器的動作頻率是5s開,5s關(guān)。根據(jù)要求,試驗最好的結(jié)果是每個繼電器用6個TV負載,即每個TV負載是5s開,55s管。輸入點有:開關(guān),檢出,復(fù)位M個,停止次數(shù)設(shè)定量N次,動作頻率設(shè)定L個,常開/觸點轉(zhuǎn)換。其中,M=測試產(chǎn)品個數(shù),N、L個數(shù)由實際需要確定。其算法如下:
          設(shè)定一個循環(huán)周期,使累積誤差最小;
          在循環(huán)周期內(nèi)設(shè)計動作時間和動作頻率,以及動作次數(shù);
          設(shè)計相關(guān)聯(lián)動、互鎖、緊急停車和復(fù)位等功能;
          執(zhí)行動作與反饋根據(jù)產(chǎn)品相關(guān)標準進行比較,判定結(jié)果和設(shè)定中斷程序。
          采用模塊化程序設(shè)計編程,各模塊均由主程序調(diào)用,且為了程序不出誤動作,還要考慮電流諧波和沖擊對高電源的要求。用了算法優(yōu)化設(shè)計,5個繼電器每隔2s一個動作,5個剛好10s。其中一個動作頻率程序如下:

          與之對應(yīng)的動作如下:



        關(guān)鍵詞: PLC 編程器 電氣測控 繼電接觸

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 潍坊市| 建德市| 黄梅县| 柞水县| 阿尔山市| 竹溪县| 鄄城县| 潼关县| 宝丰县| 同江市| 辉南县| 华安县| 建德市| 湟中县| 泾源县| 阿克| 政和县| 临武县| 金溪县| 西贡区| 津市市| 黄龙县| 施秉县| 剑河县| 永宁县| 中方县| 金寨县| 阿拉尔市| 若羌县| 新建县| 延川县| 靖宇县| 敦煌市| 衡阳市| 萨嘎县| 阳曲县| 道真| 裕民县| 府谷县| 罗城| 富平县|