張自謙,黃 穗,鄧麗貞
(廣州數控設備有限公司,廣東廣州 510000)
計算機數控系統是個實時多任務系統。它的實時性主要表現在:切削精度、安全性方面、指令響應方面。數控系統的位置控制是通過周期的速度控制的,為了提高切削精度需要保證速度的平穩性且插補誤差盡量小,伺服控制周期必須準確,且周期盡量小。安全性是指系統對突發事件的反應,如刀具破損和機床急停等。指令響應主要是指對操作員指令的響應時間等。
數控系統的實時性要求很高,常見的結構和模式可以為多重中斷型、前后臺型或者基于實時操作系統開發。前后臺型和多重中斷型目前已經使用很長的時間,有些過時,目前,一般采用維護性高,以及開發工作量小的實時操作系統結構。
實時操作系統μcos-III優點突出,被廣泛使用。其支持支持時間片調度法,允許對實時操作系統內核資源進行動態配置,如:信號量、任務、任務棧、事件標志組、消息隊列、消息數、定時器、互斥型信號量和存儲塊劃分等,都可以動態配置,因此,資源不夠分配的問題,可以避免在程序編譯過程中出現。μcos-III的多數數據類型可修改,獲得按照CPU能適應的最佳位數寬度。可以用匯編語言書寫選擇和確定優先級的算法,對于一些有特殊指令,CPU的優勢得到充分發揮,比如:復位指令、找出第一個不為零位(FF1)指令、計數器計到零(CLZ)指令等。
OMAP-L138處理器是一個基于ARM926EJ-S?和C674x DSP為核心處理器的低功耗應用。它提供了比數字信號處理器TMS320C6000?平臺的其他成員顯著較低的功率。它具有強大的操作系統支持,豐富的用戶界面和高速處理性能。另外,它的雙核架構提供了DSP和精簡指令集計算機(RISC)技術,使處理器和存儲系統的所有部分可以連續運行。
把數控系統根據數控系統所需完成的功能和需求分為五個任務,界面管理任務,數據處理任務,運動控制任務,位置控制任務,PLC任務,每個任務還可以具體細分。具體的系統模塊劃分如圖1所示。

圖1 系統模塊圖
人與機器的交互主要由界面管理完成。界面具有顯示加工狀態和非加工狀態功能。加工時,界面主要是顯示數據段,尺寸,主軸轉速,刀具號,進刀速度等參數。非加工時,界面主要顯示程序目錄,內存中存儲的零件程序等。
各種運動軸的控制任務主要由運動控制模塊完成。相應的運動由人工通過鍵盤輸入,大致有自動運行,進行手動,回機床零點,回程序零點等。其中運動控制最核心的功能是自動運行。
PLC模塊主要負責執行器的運行和機床內置傳感器數據的采集,并保證執行器執行和數據采集的一致性。主要執行換刀、主軸、冷卻液、控制面板的掃描以及從機床內置傳感器和變換器中采集數據,根據采集的信息執行不同的邏輯操作和轉換。
在蘭州的歲月里,化建公司(五建時名)以建設蘭化、發展蘭化、振興蘭化為使命。20世紀80年代后,蘭化的建設項目和技改項目呈逐年減少之勢。化建敏銳的嗅到了改革開放的春風已經刮起,迎身跳入市場化的浪潮中去,把目光投向了蘭化以外更加廣闊的建筑市場。“立足蘭州、服務甘肅、面向全國”的經營戰略應運而生。
譯碼和刀具補償以及前瞰處理主要由數據處理模塊完成。數據處理模塊將標志的數控代碼翻譯成本系統能識別的代碼,此后的數據段坐標參數經過軌跡計算,轉換為軌跡參數。軌跡轉換一般分兩步,第一步進行刀具補償,即進行刀具長度補償和刀具半徑補償。第二步根據進行前瞰處理,提前預測加工路徑的情況,給出近似最優的銜接進給速度,提高對微線段的加工效率和加工質量。

圖2 數控系統運行總體框圖
位置控制是在給定的約束范圍內各個軸執行運動指令所有必須的方法,這些指令通常都是周期性的。它主要是把插補得到的位置給定值與通過傳感器檢測到的位置實際值進行比較,以確定位置偏差,產生一個控制信號,驅動伺服電機,把位置偏差減小到零或減小到微小的數值。
如圖2所示,是μcos-III系統的整個軟件的運行框圖。系統的操作方式由鍵盤選擇輸入。比如當用戶選擇自動運行后,啟動系統后,系統順序執行代碼編譯,刀具補償,速度計算,插補,位置控制完成對配件的加工。
數控系統的各個模塊被劃分為不同的任務。其中PLC劃分為兩個任務:一個任務的優先級高,完成對時間要求比較高的操作,如急停等;另一個任務的優先級低,主要完成I/O口的操作。每個任務對應著μcos-III操作系統的一個任務,并根據它們的重要性設定不同的優先級。它們分別是界面管理任務、運動控制任務、數據處理任務、PLC任務1、PLC任務2。它們都是周期性任務,即每個任務都需要周期的運行。
任務之間采用共享內存進行通訊,在μcos-III中,共享內存采用全局變量實現。任務間同步采用關中斷和開中斷的方式和信號量方式。開中斷和關中斷其實就相當于全局變量,這個主要用在傳輸數據量小的操作;傳輸數據量大的操作,耗費的時間較長,主要采用信號量的方式進行通訊。在μcos-III中郵箱只傳輸一個數據,可以把它用作同步信號,在本系統中也可以采用郵箱進行同步。
為了防止優先級逆轉,采用了優先級天花板協議[2]。優先級逆轉一般是在兩個任務訪問共享數據時出現,為了保證數據的一致性,這兩個訪問必須串行,如果優先級高的任務首先獲得訪問權,則優先級的順序保持一致,如果優先級低的任務先獲得訪問權,這時優先級高的任務請求訪問,則優先級高的任務必須等到優先級低的任務訪問為止。優先級天花板協議是使用優先級繼承協議,當任務J阻塞更高優先級任務時,它在被阻塞任務中優先級最高水平上執行關鍵部分,關鍵部分一結束,任務J返回到原先的優先級上。有些實時操作系統不提供改變優先級功能,但μcos-III提供了一個改變優先級的函數OSTask-ChangePrio()函數,主要利用該函數實現優先級天花板協議,防止優先級逆轉。
具體的優先級算法如下:
(1)在系統配置階段
1)求出共享數據data中任務的最高優先級Pceiling;
由于μcos-III不允許優先級重疊,所以在系統配置時,任務優先級的設置:
|Pi-Pj|>=2 Pi表示第i個任務的優先級,其中i≠j。
(2)在系統運行階段
2)任務i訪問數據data時,把任務i的優先級提高到Pceiling+1;
(3)任務i訪問數據data結束,把任務i的優先級恢復。繼續運行下面程序,這個時候該任務可以被其他任務搶占了。
為了驗證以上提到設計的效果,用μcos-III實現了一個嵌入式數控系統。該數控系統硬件結構如圖3所示。
數控系統硬件采用ARM+FPGA結構。μcos-III運行在ARM上,實現系統的界面管理、輔助數據管理、運動控制、PLC及位置控制等任務;FPGA實現系統的I/O管理。目前該系統已經裝配機床,運行安全、可靠。

圖3 數控系統硬件結構
用μcos-III實現的嵌入式數控系統如圖4所示。操作人員可以根據要求選擇不同的操作方式,來實現不同的功能選擇。

圖4 嵌入式數控系統界面
本文給出了基于μcos-III的數控系統結構。詳細論述了在μcos-III上實現數控系統的模塊結構、運行結構以及任務間的同步,在此基礎上給出了基于ARM嵌入式硬件平臺的數控系統實現。
[1] Labrosse,Jean J.μC/OS The real-time Kernel,R&D Publications,1992.
[2] Sha,L.,Rajkumar,R..Lehoczky,J..Priority inheritance protocols:An approach to real-time synchronization[J].IEEE Transactionson Software Engineering,1992,39(9):1175-1185.
[3]陳友東,樊銳,陳五一,等.基于RT-Linux的開放式數控系統研究[J].中國機械工程,2003,14(16):1419-1422.
[4]歐長勁,彭寬棟,洪尉尉.數控旋壓機專用數控系統的研究[J].機電工程,2012(11):1239-1242,1258.
[5]龔樹森.西門子數控系統功能的拓展開發[J].機電工程技術,2013(8):189-192.