基于不同操作系統(tǒng)的數(shù)控系統(tǒng)任務管理的特點過去,國內的數(shù)控系統(tǒng)大多建立在DOS操作系統(tǒng)平臺和其他一些專用實時操作系統(tǒng)之上,在專用實時操作系統(tǒng)上開發(fā)數(shù)控系統(tǒng)比較方便,但價格昂貴,不適合我國數(shù)控技術的發(fā)展,也不利于數(shù)控系統(tǒng)的開放化。
在DOS平臺上開發(fā)數(shù)控系統(tǒng)比較經濟,我國自己設計制造的數(shù)控機床主要還是依靠DOS系統(tǒng),由于DOS系統(tǒng)存在640K系統(tǒng)內存的限制,大大的束縛了其實時開發(fā)能力。但其操作系統(tǒng)是單任務的,沒有充分利用i386體系的硬件資源,它的內存只有640K可以利用,網(wǎng)絡功能欠缺,缺乏保護機等,要在DOS上增加實時多任務模塊比較麻煩。Windows是一個多任務操作系統(tǒng),但它不是一個實時操作系統(tǒng),因此不能直接用于數(shù)控系統(tǒng)的開發(fā)。近幾年Linux發(fā)展很快,但Linux亦不是實時系統(tǒng),應用在數(shù)控系統(tǒng)中需將其進行改造,一般需加入實時內核RTLinux,實現(xiàn)高優(yōu)先級任務的搶占機制,以滿足數(shù)控系統(tǒng)對硬實時性的要求,使其可以很好的應用在數(shù)控系統(tǒng)中。
嵌入式Linux在數(shù)控系統(tǒng)中的應用本例將嵌入式Linux技術應用到滾軋機床中,開發(fā)基Linux平臺的滾軋機數(shù)控系統(tǒng),下面將本系統(tǒng)的開發(fā)和研究作一介紹。
系統(tǒng)建模數(shù)控滾軋機是采用數(shù)控技術的機床,它采用計算機作為控制系統(tǒng),其組成如所示。數(shù)控機床框圖現(xiàn)代數(shù)控系統(tǒng)基本上是由上層軟件、數(shù)據(jù)采集、程序解釋、PLC管理、刀補處理、插補計算、位置控制等幾部分構成。它的大體的數(shù)據(jù)流程如所示,首先,程序解釋任務對程序加工G代碼進行解釋,歸一化處理后放到刀補緩沖區(qū),然后進行刀補處理,刀補處理后的數(shù)據(jù)存入插補緩沖區(qū)供插補任務處理,插補任務主要是在插補任務周期內完成各個軸的位置增量計算,*后是位置控制任務,它主要是發(fā)出運動指令控制各個軸的運動;PLC主要處理機床I/O,進行邏輯控制和機床輔助功能的控制、處理突發(fā)事件等。其中與實時相關的任務有數(shù)據(jù)采集、程序解釋、PLC管理、刀補處理、插補計算、位置控制等,它們需要被周期性的調用,并且各個任務之間要考慮到同步問題。
數(shù)控系統(tǒng)數(shù)據(jù)流程依據(jù)機床功能分析,我們利用嵌入式技術,結合滾軋機的特點,設計的嵌入式數(shù)控系統(tǒng)軟件體系結構如所示。Linux中的進程運行在兩種模式下:系統(tǒng)模式(核心態(tài))和用戶模式(用戶態(tài))。在實時Linux下,為了保證數(shù)控系統(tǒng)的實時任務能夠及時響應,所有和實時相關的任務都必須放在核心態(tài)下,每個任務用一個獨立的內核進程來執(zhí)行,這包括:位置控制,插補運算,PLC管理和數(shù)據(jù)處理等。而非實時任務則放在用戶態(tài)下,它們在任何時候都不會打斷實時任務的運行,這包括:狀態(tài)顯示,人機界面,文件管理和參數(shù)設置。
核心態(tài)和用戶態(tài)下進程的通訊主要是依靠實時擴展部件RTAI提供的實時FIFO和共享內存來完成。
系統(tǒng)實時性解決辦法從Linux進程調度的3個策略:“非實時,實時先進先出,實時基于優(yōu)先權輪轉法”可以看出,Linux對于實時任務是有特殊處理的(“軟實時”),雖然并沒有滿足“硬實時”要求,但是這種軟實時可以滿足一般嵌入式系統(tǒng)的要求。RT_Linux是能夠提供實時功能的Linux操作系統(tǒng),它是美國新墨西哥理工學院開發(fā)的。
RT_Linux提供了運行特殊實時任務和中斷句柄的能力,是一種硬實時系統(tǒng)。在X86機器上,RT_Linux執(zhí)行中斷句柄的延遲不超過15微秒,當調度一個經常性任務時,該任務將在35微秒內被執(zhí)行,使它可以處理實時任務。具體講,RT_Linux內核將普通操作系統(tǒng)當作它的一個低優(yōu)先級任務,它可以在需要的時候搶占普通Linux任務,這是通過對中斷控制來實現(xiàn)的,因此可以滿足數(shù)控系統(tǒng)對實時性的需求。在CNC系統(tǒng)中,就要對各種任務根據(jù)實時性要求按優(yōu)先級排隊,RT_Linux和Linux相結合進行工作,按照實時性需求共同處理CNC系統(tǒng)中的任務。RT_Linux的內核負責實時任務。而一些非實時任務可交由Linux內核處理在兩個內核之間可以通過多種途徑進行通信,如FIFO,共享內存等方法,兩個內核相互協(xié)調,共同完成加工任務。