吳富民,海蓮,曹宇
(北方民族大學(xué),寧夏銀川,750021 )
數(shù)控技術(shù)是數(shù)控機(jī)床控制系統(tǒng)中的關(guān)鍵,數(shù)控機(jī)床的蓬勃發(fā)展是國家實(shí)現(xiàn)工業(yè)自動化的基礎(chǔ)。G代碼作為現(xiàn)在最常用的數(shù)控代碼,在數(shù)控機(jī)床控制系統(tǒng)的搭建和自動化生產(chǎn)線的建設(shè)中起著重要的作用。數(shù)控機(jī)床的控制系統(tǒng)在未來的發(fā)展趨勢是開源的及面向大眾化、模式化、標(biāo)準(zhǔn)化的發(fā)展方向。對于數(shù)控機(jī)床控制系統(tǒng)未來發(fā)展趨勢是否開源式,相關(guān)研究學(xué)者都有著自己的看法。但總的來說可移植性、互操作性、可擴(kuò)展性、可互換性是數(shù)控系統(tǒng)未來發(fā)展最基本的特征?;赟TM32芯片的雕刻機(jī)數(shù)控系統(tǒng)使用C程序?qū)崿F(xiàn)數(shù)控系統(tǒng)功能的全軟件式數(shù)控。
數(shù)控GRBL代碼解釋器是全軟件式數(shù)控系統(tǒng)的核心?,F(xiàn)在幾乎所有的工廠中數(shù)控機(jī)床通常使用G代碼來控制機(jī)床對工件的加工,如工件加工時(shí)的走刀、溫控系統(tǒng)的開啟、參考坐標(biāo)系的選擇等。G代碼能為控制系統(tǒng)能提供加工時(shí)需要的數(shù)據(jù)塊。G代碼解釋器的開放性、可移植性、易讀性、高效性也是為什么說G代碼能成為生產(chǎn)線自動化的基礎(chǔ)。
雕刻機(jī)控制系統(tǒng)的核心是實(shí)時(shí)性,因?yàn)檎麄€控制系統(tǒng)需要實(shí)時(shí)操作硬件(即步進(jìn)電機(jī)、光源和散熱器)。在所有的CNC系統(tǒng)中使用的實(shí)時(shí)操作系統(tǒng)由操作系統(tǒng)+實(shí)時(shí)反饋信息系統(tǒng)(負(fù)反饋)組成。為了能夠?qū)崿F(xiàn)開放式CNC數(shù)控系統(tǒng)對雕刻圖形和雕刻速度等通用操作系統(tǒng)的要求,滿足其實(shí)時(shí)性要求。
我們小組詳細(xì)地討論了雕刻機(jī)數(shù)控系統(tǒng)的總體架構(gòu);得出的結(jié)果是利用函數(shù)指針和G代碼關(guān)鍵字函數(shù)表來控制雕刻加工。這樣很不僅解決了G 代碼解釋器詞法解釋中的關(guān)鍵字分解問題而且提高了系統(tǒng)整體的實(shí)時(shí)性和穩(wěn)定性。除此之外我們還提出了按照功能對G代碼的指令進(jìn)行分組,借鑒標(biāo)準(zhǔn)G代碼分組語法表來構(gòu)建符合本系統(tǒng)的指令分組。這樣能為數(shù)控G代碼的語法檢查中兩條或兩條以上指令不能同時(shí)出現(xiàn)在同一條G代碼中提供了有益的參考。
G代碼處理語言不像Arduino語言那樣復(fù)雜也不像匯編語言那樣可讀性差,它的語言現(xiàn)象十分簡單??紤]到控制系統(tǒng)的效率和實(shí)用性,本系統(tǒng)將詞法分析和語法分析結(jié)合在一起。提高運(yùn)行效率的同時(shí)完全不影響系統(tǒng)的適用性。在實(shí)際操作中,證明了該方法的實(shí)用性、有效性和可擴(kuò)展性。
一般的G代碼表現(xiàn)形式為:[Nnnnn]Gnn[X[±]nnnn.[john][y],[+nnnn.[john][with][+nnnn.[][]W+NNNbrother.[john][i][+nnnn.[john]〔j[±〕nnnn.[john][k+][nnnn.[john][d[+]nnnn.nnn][Tnnn][Snnn][Mnn][Fnnnn];雖然這個表達(dá)式?jīng)]有涵蓋G代碼的所有語言現(xiàn)象,但可以從表達(dá)式中得出以下結(jié)論。
(1)G代碼的一般表達(dá)式為:關(guān)鍵字+數(shù)字+(空格)+結(jié)束符;(2)G代碼的關(guān)鍵字并不多,主要有N,G,X,Y,Z,W,I,J,K,R,M,S,T,F等,在實(shí)際的過程中,機(jī)床制造商和用戶可能對關(guān)鍵字進(jìn)行擴(kuò)展;(3)不同的關(guān)鍵詞對應(yīng)的G代碼的語法分析和詞法分析有不同的要求。在實(shí)際控制系統(tǒng)中,預(yù)處理模塊移除空白、注釋和小寫字母后,G代碼可寫成:小寫關(guān)鍵字+數(shù)字。如x10;(x正向移動10)y-8;(y反向移動8) ……。在掃描每行G代碼數(shù)據(jù)的過程中,讀取指令字符和對應(yīng)的數(shù)值,字符的ASCII值對應(yīng)G代碼關(guān)鍵字函數(shù)名在函數(shù)表中相應(yīng)的位置,然后根據(jù)位置在G代碼關(guān)鍵字函數(shù)表中找到相應(yīng)的處理函數(shù)?;谧址腁SCII碼調(diào)用相應(yīng)的處理函數(shù)來處理一一對應(yīng)的指令,并將處理后的字符的數(shù)值發(fā)送給控制系統(tǒng)實(shí)現(xiàn)對電機(jī)的控制。在32F2中的G1處理讀取G;根據(jù)G代碼的ASCII值,可以在函數(shù)G代碼關(guān)鍵字的函數(shù)表中分析對應(yīng)的函數(shù);調(diào)用分析G1來處理G1(如讀取值1并執(zhí)行分組處理等),處理結(jié)束。
基于雕刻機(jī)STM32數(shù)控系統(tǒng)的雕刻機(jī)控制系統(tǒng)未來發(fā)展一個十分具有前景的方向,STM32F1有豐富的軟硬件資源,具有很大的靈活性。該系統(tǒng)就是利用了32單片機(jī)的軟硬件資源實(shí)現(xiàn)的,它采用AD繪圖硬件,利用了現(xiàn)代操作系統(tǒng)的虛擬內(nèi)存特性,可多任務(wù)同時(shí)運(yùn)行特性以及C語言的可移植性和強(qiáng)大的表達(dá)功能,實(shí)現(xiàn)了對 G代碼各項(xiàng)功能進(jìn)行詳細(xì)解釋,全部代碼用標(biāo)準(zhǔn)的C語言寫成,具備良好的可讀性、可移植性、開放性和跨平臺特性。盡管該系統(tǒng)是在上位機(jī)下實(shí)現(xiàn)的,但它仍然具有良好的模塊化特性,系統(tǒng)結(jié)構(gòu)簡單易懂,實(shí)用性強(qiáng),運(yùn)行速度快、雕刻效率高。