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












評論