文杰棱 韓震宇 王詠麒 田海林
(四川大學制造科學與工程學院,四川 成都610065)
桌面數控設備對小尺寸零件加工在成本、功耗和占地面積等方面有著巨大優(yōu)勢。桌面數控設備大致有3種實現方案:第一種為微型機床搭配傳統(tǒng)數控系統(tǒng),但是桌面數控設備對成本敏感;第二種為基于PC的數控系統(tǒng)軟件及其相應接口卡控制微型機床[1],由于軟件設置復雜,很難針對不同需求進行修改,結果表現為精度差、穩(wěn)定性不高;第三種方案為在一定硬件平臺下,自行完成數控系統(tǒng)設計。
方案三中,根據硬件平臺的不同,可分為基于PC[2-3]和基于嵌入式芯片[4-7]?;赑C的數控系統(tǒng)可簡化在任務調度和通信等方面的工作,實現仿真加工、軌跡顯示等復雜的人機交互功能。但是引入PC不僅增大體積和成本,同時由于通用操作系統(tǒng)不滿足數控系統(tǒng)實時性要求,需要增加實時性內核補丁或者使用硬件實現數控系統(tǒng)中高實時性任務[8-9]。嵌入式芯片在單個芯片上高度集成了CPU、RAM、ROM以及豐富的外設,在體積、功耗和成本上相對與PC有巨大的優(yōu)勢。STM32是基于Cortex?-M內核開發(fā)的一系列32位微處理器,主頻從32 MHz到480 MHz,可以平衡嵌入式數控系統(tǒng)對CPU實時計算能力和成本的要求。因此本設計采用STM32完成數控系統(tǒng)設計,使用FPGA輔助STM32控制具體執(zhí)行器,并設計桌面車床[10]進行驗證。
傳統(tǒng)數控系統(tǒng)模式邊界模糊,易使初學者混淆。對這些模式的功能及其實現方式分析可概括為兩種模式:手動加工和自動加工。
合理的功能分類有助于理清任務內容,降低使用門檻。在具體實現中,兩模式存在實現方式的重疊,部分硬件和軟件可以共用。依據客戶機-服務器設計模式(Client-Server(C/S)),將數控車床控制系統(tǒng)劃分為客戶機和服務器兩部分??蛻魴C主要完成人機交互類工作,服務器主要完成參數修改、動作執(zhí)行以及數控系統(tǒng)的核心功能,G代碼執(zhí)行。兩部分主要通過自定的不對稱通信協議實現服務器接收執(zhí)行客戶機指令,并返回執(zhí)行結果,協同實現兩種加工模式。
硬件是數控系統(tǒng)的基礎,硬件設計要滿足數控系統(tǒng)在數據處理能力、多軸聯動同步性、存儲能力和抗電磁干擾等方面的要求。限于篇幅,這里不對具體電路原理圖展開,僅從需求角度對數控系統(tǒng)硬件部分進行分析設計。
客戶機部分的主要任務是人機交互,而屏幕顯示和虛擬按鍵是人機交互的主要設備。為了降低工作量,提高開發(fā)效率,許多嵌入式設計采用串口屏實現人機交互[4,11-12],但是設計受限且串口屏面向一般工業(yè)應用場景,不滿足坐標顯示等高實時要求。因此在客戶機硬件設計中采用STM32F429+觸摸屏自行進行人機交互開發(fā)。同時充分利用STM32豐富的外設,增加USB、SD接口用于U盤、鍵盤以及SD卡等外部G代碼輸入;使用Flash實現G代碼板內存儲;添加32MB的SDRAM拓展STM32F429內存,同時作為顯示屏顯存;拓展手輪接口用于外接電子手輪;預留以太網、RS485接口增加系統(tǒng)開放性以及功能可拓展性。
由于服務器承擔自動加工中絕大部分任務,所以服務器硬件需要滿足數控系統(tǒng)實時性、同步性以及穩(wěn)定性要求。采用主頻高達216 MHz、支持浮點運算的STM32F767以達到數控系統(tǒng)的實時性要求。采用EP4CE15F484同步發(fā)送各軸運動指令到電機驅動器。添加SDRAM拓展內存,提高最大G代碼行數避免系統(tǒng)死機;使用FMC進行STM32和FPGA的主從通信;由于FPGA直接與執(zhí)行器和傳感器連接,增加光耦隔離避免外部信號干擾等。
雖然通過兩個MCU完成客戶機和服務器任務,但是考慮到體積和安裝,將兩部分集成在同一塊PCB電路中,共用必需的電源、時鐘、急停、指示燈等模塊。數控系統(tǒng)整體的硬件架構如圖1所示:
軟件設計主要對客戶機功能、服務器任務進行分析設計。限于篇幅,且有許多文獻[13-16]對譯碼、刀補和插補等進行介紹,這里不對所有子功能模塊詳細闡述。
emWin是針對嵌入式平臺開發(fā)的圖形軟件庫。使用emWin控件可以如同搭積木一般完成界面編輯,再由STM32的LTDC控制器驅動顯示屏實現界面顯示。emWin支持觸摸屏,周期性檢測觸摸交互,并獲取屏幕坐標系下的點擊位置坐標,通過點擊位置與界面控件位置比較判斷是否該控件被操作,在控件回調函數中編寫響應函數實現虛擬按鈕功能。通過對不同按鈕類控件編碼,在按鈕控件回調函數中將對應編碼寫入內存即可完成標準G代碼或者其他類型數據的虛擬按鍵輸入。傳統(tǒng)數控車床支持使用電子手輪,相對于按鈕,電子手輪可以實現靈活微進給,根據搖動速度控制電機進給速度,為對刀等操作提供極大便利。FatFs是針對嵌入式系統(tǒng)設計的文件系統(tǒng)模塊,FatFs根據扇區(qū)信息完成數據讀寫,并做必要的數據保護,對不同的存儲介質提供泛型操作。客戶機與服務器之間使用4Mbps串口通信,以滿足大數據指令響應的實時性。服務器返回的結果類型較多,串口接收中斷解析可能會導致客戶機系統(tǒng)有較大的時間抖動,所以需要將除顯示實時性要求高的(如坐標)結果使用FIFO緩沖區(qū)暫時存儲,待其他任務完成后再對結果解析。觸摸檢測、屏幕顯示和結果解析在宏觀上是并行任務,因此借用嵌入式操作系統(tǒng)μC/OS-Ⅲ進行任務調度,同時emWin和FatFs亦可以使用操作系統(tǒng)提供的信號量等共享資源保護機制進行資源保護。
限于服務器內存大小需要將譯碼、刀補和插補等模塊并行執(zhí)行以降低對緩沖區(qū)需求,因此帶來任務調度、共享資源管理問題。隨著硬件的發(fā)展,MCU片上RAM大小增加,而且可以外擴RAM增加系統(tǒng)內存,因此許多并行任務可以轉為串行執(zhí)行,從而簡化設計,降低系統(tǒng)耦合,增加系統(tǒng)魯棒性。
由于服務器被動響應客戶端指令,所以在服務器空暇時,應該不停查詢是否存在指令通過數據通信送達,根據指令內容通過函數指針調用執(zhí)行參數修改、動作執(zhí)行、G代碼執(zhí)行等服務類任務。參數修改任務不僅提供對刀數據等自動加工時必需參數修改,也可以修改電機參數(最大速度、加速度等)以及機床參數(最大行程、前/后置刀架、螺距等),提高數控系統(tǒng)柔性。動作指令發(fā)送的先后必然破壞聯動的同步性,所以動作執(zhí)行任務僅需考慮同一時間下單軸動作,即對應手動加工模式。
G代碼任務包括譯碼、刀補、速度規(guī)劃、G代碼解釋等子任務[16]。通過FatFs讀入系統(tǒng)的文本文件是以字符數組保存的,如果在G代碼解釋時再尋找指令,無法滿足加工速度提出的實時性要求。因此,譯碼需要預先從字符數組中提取并檢查指令及其數據。刀具長度補償是指當刀具長度因為換刀、磨損導致切削不到工件時,補償這部分缺失而不需要重新對刀,節(jié)省時間;速度控制主要指加減速控制,也有針對連續(xù)微小線段進行速度前瞻控制[17],G代碼中描述的軌跡,都是從零速度開始,零速度結束。根據牛頓定律,必然存在加速和減速過程,對于步進電機,在啟動頻率之下,加工精度要求不高,可以不考慮加減速。頻繁的啟停影響加工效率,速度前瞻控制引入轉接速度避免電機啟停。G代碼解釋將G代碼轉換為具體指令驅動執(zhí)行器運動。對于簡單執(zhí)行器,如冷卻液、照明等,只需控制FPGA產生相應的高低電平;對于單個復雜執(zhí)行器,如直流無刷電機,控制FPGA產生相應的使能、方向電平信號以及速度脈沖信號序列發(fā)送給直流無刷驅動器;對于多個復雜執(zhí)行器聯動,使用逐點比較插補分解出各軸位移,再控制FPGA產生相應的方向電平信號以及包含位移速度信息的脈沖序列發(fā)送給步進電機驅動器。
急停用于危急情況下機床的緊急停止,如果急停僅僅給主回路斷電,存在急停復位后電機繼續(xù)運動的可能性,所以急停信號同時需要提供給數控系統(tǒng),用于控制停止電機,對于主軸這種大慣量部分,必要時適當反轉電磁力矩或者增加機械抱死裝置。綜上所述,服務器部分的參考模型如圖2所示。
客戶機服務器模式下的系統(tǒng)本質上是主從系統(tǒng),這決定了相互之間通信協議具有不對稱性。客戶機需要按照服務器協議調用服務器提供的服務,由于G代碼數據具有不確定性,如果服務器采用不定長方式接收數據,時間抖動較大,為了實現定長接收需要客戶機先發(fā)送一個指令告訴服務器G代碼長度,然后在下一個指令發(fā)送對應長度G代碼。
為了驗證修改本嵌入式數控系統(tǒng),分別采用了兩臺機床,其一為南京翼馬ET100-ZT數控裝調實訓車床,選配電機和刀具后完成切削實驗;其二為自設計機床。使用如圖3所示零件圖進行車削實驗。
加工成果圖如圖4、圖5所示,加工零件數據如表1所示。
表1 實驗數據 mm
自設計機床X軸剛度較差,導致零件在X軸方向的尺寸精度相對較差且加工表面質量不如ET100-ZT。
傳統(tǒng)數控系統(tǒng)使用PLC完成大部分輸入輸出信號處理,如數控面板編譯、限位信號采集以及主軸換刀控制等,本系統(tǒng)通過FPGA和觸摸屏替代PLC完成相關工作,使用STM32F4驅動觸摸屏完成人機交互,使用STM32F7解釋執(zhí)行操作員指令。減少在PLC、數控面板以及PC等部分的開銷,同時在A4大小的PCB板中集成所有硬件,滿足桌面機床體積要求。實驗證明本嵌入式數控系統(tǒng)滿足一般自動化加工要求,達到桌面數控車床在成本和體積上的要求。但是,由于在設計階段多方取舍,本數控系統(tǒng)必然存在許多不足:采用基于Cortex .-M內核的MCU犧牲了部分人機交互功能,如軌跡顯示、仿真加工;同時在客戶機端采集電子手輪脈沖必然存在電機執(zhí)行滯后于手輪一個采集周期問題,這可能帶來安全隱患,將在后續(xù)設計完善。