電氣測控系統的改進(jìn)——軟PLC
圖2 運行系統的結構組成
運行系統可在多種支持平臺上運行,它通過(guò)將數據區和代碼區分離,實(shí)現程序的動(dòng)態(tài)更新和代碼的高效率動(dòng)態(tài)下載。
(1)在μClinux平臺上實(shí)現軟PLC虛擬機實(shí)現步驟
將梯形圖的指令翻譯成宏匯編并建立一個(gè)宏庫;
把用戶(hù)編寫(xiě)的梯形圖程序編譯成中間代碼形式的PLM文件;
將PLM文件轉變?yōu)閰R編程序;
用匯編器匯編變成功的匯編程序,將解釋執行內部指令(PLM文件)轉換為程序,匯編成機器碼執行,實(shí)現PLC指令機器碼執行方案,大大地提高了執行速度控制工程網(wǎng)版權所有,同時(shí)大大節約了內存空間;
將PLC指令對應的機器碼移植到嵌入式操作系統中執行。
(2)運行系統的兩大模塊
運行系統主要由兩大模塊組成:1)梯形圖到機器碼程序的轉換;2)執行機器碼文件。每個(gè)模塊的功能如下:
1)梯形圖到機器碼程序的轉換。首先把用戶(hù)編寫(xiě)的梯形圖程序編譯成中間代碼形式的PLM文件,然后將PLM文件轉變?yōu)閰R編程序,最后用匯編器匯編轉變成功的匯編程序CONTROL ENGINEERING China版權所有,產(chǎn)生機器碼從而生成可執行的PLE文件。
2)執行機器碼文件。將PLE文件嵌入配置好的執行環(huán)境中并執行,通過(guò)工控機的面版指示燈監測程序的正確性。
(3)虛擬機總體設計
根據虛擬機的原理和執行機制,對虛擬機的機器碼執行方案進(jìn)行了總體設計,如圖3所示。PLC文件是梯形圖程序的保存文件,通過(guò)對PLC文件進(jìn)行詞法分析、語(yǔ)法分析和語(yǔ)義分析編譯產(chǎn)生PLM文件,然后調用宏匯編庫,并進(jìn)行一系列的轉換生成機器碼,產(chǎn)生PLE文件;最后創(chuàng )建機器運行環(huán)境來(lái)執行機器碼,宏匯編庫中是每個(gè)梯形圖指令對應的宏匯編段。
圖3 虛擬運行總體設計框圖
(4)交叉開(kāi)發(fā)調試算法研究
非嵌入式通常采用本機開(kāi)發(fā)、本機調試、本機運行的開(kāi)發(fā)方式;而嵌入式開(kāi)發(fā)需要交叉開(kāi)發(fā),絕大多數采用宿主機開(kāi)發(fā)、宿主機和目標機之間交叉調試、目標機運行的方式開(kāi)發(fā)。
交叉開(kāi)發(fā)調試算法:
在宿主機平臺上編寫(xiě)程序代碼;
固化監控器至目標機上;
連接宿主機和目標機;
編譯鏈接應用程序,生成可執行代碼;
將可執行代碼下載到目標機;
使用交叉調試器進(jìn)行調試;
如果程序調試沒(méi)有發(fā)現異常CONTROL ENGINEERING China版權所有,轉至11);
調試程序時(shí)發(fā)生錯誤,利用交叉調試器定位錯誤;
修改錯誤代碼;
重復4)-10);
將目標機程序固化在目標機上。
4 嵌入式軟PLC改造后的控制系統
以測試繼電器TV5實(shí)驗為例。其要求如下:每次測試5個(gè)繼電器,每個(gè)繼電器的動(dòng)作頻率是5s開(kāi),5s關(guān)。根據要求,試驗最好的結果是每個(gè)繼電器用6個(gè)TV負載,即每個(gè)TV負載是5s開(kāi),55s管。輸入點(diǎn)有:開(kāi)關(guān),檢出,復位M個(gè),停止次數設定量N次,動(dòng)作頻率設定L個(gè),常開(kāi)/觸點(diǎn)轉換。其中,M=測試產(chǎn)品個(gè)數,N、L個(gè)數由實(shí)際需要確定。其算法如下:
設定一個(gè)循環(huán)周期,使累積誤差最小;
在循環(huán)周期內設計動(dòng)作時(shí)間和動(dòng)作頻率,以及動(dòng)作次數;
設計相關(guān)聯(lián)動(dòng)、互鎖、緊急停車(chē)和復位等功能;
執行動(dòng)作與反饋根據產(chǎn)品相關(guān)標準進(jìn)行比較,判定結果和設定中斷程序。
采用模塊化程序設計編程,各模塊均由主程序調用,且為了程序不出誤動(dòng)作,還要考慮電流諧波和沖擊對高電源的要求。用了算法優(yōu)化設計,5個(gè)繼電器每隔2s一個(gè)動(dòng)作,5個(gè)剛好10s。其中一個(gè)動(dòng)作頻率程序如下:
與之對應的動(dòng)作如下:
評論