基于VxWorks的MB系列智能可編程控制器設計
2.3 操作系統和開(kāi)發(fā)環(huán)境
為保證軟件的可靠性和發(fā)揮裝置的實(shí)時(shí)性能,項目采用了國際上最廣泛使用的32位實(shí)時(shí)操作系統VxWorks。VxWorks是專(zhuān)門(mén)為嵌入式微處理器而設計的模塊化、高性能、實(shí)時(shí)的操作系統。VxWorks是目前世界上用戶(hù)數量最大的實(shí)時(shí)操作系統,具有豐富的應用軟件支持、良好的技術(shù)服務(wù)、可伸縮性、可裁減性和可靠的系統穩定性。VxWorks的開(kāi)放式結構和對工業(yè)標準的支持使開(kāi)發(fā)者只需做最少的工作即可設計有效的適合于不同用戶(hù)要求的實(shí)時(shí)操作系統。
VxWorks的開(kāi)發(fā)環(huán)境是WindRiver(風(fēng)河)公司提供的Tornado。Tornado采用主機-目標機開(kāi)發(fā)方式,主機系統采用運行Windows2000/NT的工作站或PC,VxWorks則運行在x86等目標處理器上。Tornado提供了友好的可視化開(kāi)發(fā)界面、交叉編譯環(huán)境、源碼級調試工具、目標機命令解釋器和目標機狀態(tài)監視器等多種應用工具,為應用軟件開(kāi)發(fā)提供了一個(gè)高效而可靠的平臺。
3 關(guān)鍵技術(shù)
MB系列智能可編程控制器的軟件設計,關(guān)鍵是軟件實(shí)時(shí)性的保證,其中包括任務(wù)的劃分、任務(wù)間通信機制的選擇、中斷處理程序、網(wǎng)絡(luò )通信程序和串行口通信程序的編寫(xiě)等關(guān)鍵技術(shù)。
3.1 任務(wù)劃分
嵌入式實(shí)時(shí)系統中,任務(wù)的合理劃分對系統的實(shí)時(shí)性至關(guān)重要。進(jìn)行任務(wù)劃分時(shí),首先要分析數據流程圖中數據的轉換,確定哪些數據轉換可以并行執行,哪些必須順序執行。決定應用系統任務(wù)劃分的最主要的因素是系統所實(shí)現的功能之間的異步關(guān)系,具體可以從I/O功能和系統內部功能兩個(gè)方面來(lái)考慮。
VxWorks的實(shí)時(shí)內核Wind默認采用了基于任務(wù)優(yōu)先級的搶占式調度算法,同時(shí),也支持輪轉調度算法。Wind內核有256個(gè)優(yōu)先級,編號0~255,優(yōu)先級0最高,255最低。任務(wù)的創(chuàng )建使用taskSpawn()函數來(lái)實(shí)現。
MBPLC根據功能和優(yōu)先級劃分為以下若干任務(wù):
(1) 主任務(wù):主任務(wù)負責硬件初始化、數據庫初始化、梯形初始化、流程初始化、網(wǎng)絡(luò )初始化等工作,并根據數據庫的定義創(chuàng )建相應的任務(wù);
(2) CAN1任務(wù):CAN1任務(wù)主要完成CAN1網(wǎng)驅動(dòng)、與I/O模件交換信文等功能,它既可以向I/O模件下發(fā)加載、設值、設時(shí)、查詢(xún)等信文,又能接收I/O模件上送的測值、事件等信文,并對數據庫進(jìn)行相應的處理;
(3) 以太網(wǎng)任務(wù):以太網(wǎng)任務(wù)主要完成以太網(wǎng)驅動(dòng)、信文收發(fā)等功能,實(shí)現PLC與上位機的數據和控制命令的傳遞,支持標準MODBUS/TCP協(xié)議;
(4) CAN2任務(wù):CAN2任務(wù)主要完成CAN2網(wǎng)驅動(dòng)、與外部設備(如通訊裝置、保護裝置、勵磁裝置、調速器等等)的信息和控制命令的傳遞功能。只要外部設備支持CAN接口,就很容易接入PLC中;
(5) 流程任務(wù):流程任務(wù)提供了獨特的順序控制流程執行方法,將MBPro編程軟件產(chǎn)生的匯編代碼進(jìn)行執行,通過(guò)訪(fǎng)問(wèn)數據庫得到數據,描述一定的判斷和閉鎖條件,產(chǎn)生相應的動(dòng)作,并將運算結果寫(xiě)至數據庫中,同時(shí)還可將實(shí)時(shí)執行的各種信息反饋到調試機,以便監視流程的執行情況。流程圖是順序執行的,適于順控操作,如機組正常開(kāi)停機控制、緊急停機控制等;
(6) 梯形任務(wù):梯形任務(wù)提供了梯形圖執行方法,將MBPro編程軟件產(chǎn)生的匯編代碼進(jìn)行執行,通過(guò)訪(fǎng)問(wèn)數據庫得到數據,實(shí)現一定的判斷和閉鎖條件,產(chǎn)生相應的動(dòng)作,并將運算結果寫(xiě)至數據庫中,同時(shí)還可將實(shí)時(shí)執行的各種信息反饋到調試機,以便監視梯形的執行情況。梯形圖是循環(huán)掃描的,適于邏輯控制及狀態(tài)控制,可用于主程序、通訊、數據處理、控制啟動(dòng),如機組狀態(tài)判斷等;
(7) 調節任務(wù):調節任務(wù)負責對機組有功、無(wú)功進(jìn)行PID閉環(huán)調節,可進(jìn)行負荷增減、調節投退、調節條件限制、調節增減限制、調節超時(shí)判斷、調節速度限制等;
(8) 時(shí)鐘任務(wù):時(shí)鐘任務(wù)管理PLC時(shí)鐘,處理分同步信號,并定時(shí)進(jìn)行一些硬件操作,如點(diǎn)運行燈;
(9) 自檢任務(wù):自檢任務(wù)自動(dòng)診斷各類(lèi)任務(wù)、設備的運行情況并進(jìn)行報警。當PLC因某種干擾或硬件故障等原因發(fā)生運行紊亂或死機時(shí),Watchdog能產(chǎn)生自恢復信號,使PLC自動(dòng)重新恢復運行;
(10) 調試任務(wù):調試任務(wù)通過(guò)以太網(wǎng)與調試機通訊,負責與編程軟件MBPro交換信息,包括上送實(shí)時(shí)數據、SOE事件、流程報警信息等,并可修改數據庫、梯形圖及流程圖,進(jìn)行對時(shí)、復位、主從切換等操作;
(11) 雙機任務(wù):雙機任務(wù)實(shí)現主從機的自動(dòng)、手動(dòng)切換,并能通過(guò)內部高速網(wǎng)備份對側重要數據。當主機的某些重要設備或任務(wù)出現故障時(shí),從機能自動(dòng)升為主機;
(12) 顯示任務(wù):顯示任務(wù)通過(guò)串口與智能型液晶顯示觸摸屏通訊,完成當地數據顯示和操作功能,包括顯示測點(diǎn)信息、事故一覽表、光字、模件狀態(tài)等,并能發(fā)出控制命令、設置定值、整定參數等;
(13) 串口任務(wù):串口任務(wù)完成與外部設備通訊功能,實(shí)現與外部設備的數據和命令的交換,如GPS、溫度巡檢裝置、交流采集裝置等等。支持Modbus標準規約,必要時(shí)可根據需要編程實(shí)現特殊規約。
3.2 任務(wù)間通信
任務(wù)間通信機制是多任務(wù)間相互同步和通信,以協(xié)調各自活動(dòng)的主要手段。VxWorks提供的任務(wù)間通信手段按其速度由快到慢依次是信號量、消息隊列、管道和套接字。常用的通信機制是信號量和消息隊列,套接字(Socket)用于網(wǎng)絡(luò )編程。
評論