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