2 系統(tǒng)軟件設(shè)計
傳統(tǒng)數(shù)控系統(tǒng)的使用流程是先由用戶編輯G代碼或其它格式的加工文件,數(shù)控系統(tǒng)根據(jù)該文件中代碼的意義,控制刀具做出相應(yīng)的動作。所以在軟件方面,系統(tǒng)需要提供文本編輯功能、對加工文件的編譯功能、電機(jī)驅(qū)動功能等。為了使用戶驗(yàn)證加工程序的正誤,系統(tǒng)還要提供仿真功能,將走刀過程展現(xiàn)給用戶。
為了實(shí)現(xiàn)網(wǎng)絡(luò)功能,本系統(tǒng)還移植了嵌入式瀏覽器Konqueror/Embedded, 這是一款自由軟件。由于瀏覽器可以訪問HTTP、FTP、SMTP、NNTP等多種不同協(xié)議的服務(wù),故安裝瀏覽器可謂一舉多得,移植過程參考文獻(xiàn)。軟件結(jié)構(gòu)如圖3所示。
2.1 操作系統(tǒng)平臺的搭建
2.2 伺服電機(jī)和步進(jìn)電機(jī)驅(qū)動程序
伺服電機(jī)需要的信號是PWM 波形控制信號,因此伺服電機(jī)驅(qū)動程序主要是實(shí)現(xiàn)脈寬調(diào)制。這個脈寬調(diào)制是利用一個定時器,并根據(jù)由SPWM 算法得到的延遲時間,控制一個通用I /O端口高低電平持續(xù)時間得到的。系統(tǒng)產(chǎn)生的PWM 波形如下圖4所示。
而在三個步進(jìn)電機(jī)的設(shè)備驅(qū)動程序中,向步進(jìn)電機(jī)發(fā)送連續(xù)信號定義為寫操作; 從8253中讀數(shù)據(jù)定義為讀操作; 由鍵盤控制各電機(jī)動作作為自定義操作。
2.3 G代碼編譯
G代碼是國際通用的機(jī)床加工代碼,其編譯的思想是: 首先將G代碼文件讀入流中,逐行分析其意義,并且?guī)в胁殄e功能。當(dāng)遇到子程序跳轉(zhuǎn)時記錄文件指示出其位置和循環(huán)次數(shù)時,子程序返回后從記錄位置繼續(xù)執(zhí)行;遇到主軸旋轉(zhuǎn)時,在編譯文件中寫入旋轉(zhuǎn)標(biāo)志和PWM 的脈寬; 遇到插補(bǔ)命令時寫入脈沖標(biāo)志和每步的三坐標(biāo)脈沖信號諸如此類。最后生成記錄整套加工步驟的二進(jìn)制文件。編譯流程如圖5所示。
2.4 插補(bǔ)算法與刀補(bǔ)算法
數(shù)控銑床控制系統(tǒng)使用逐點(diǎn)比較法實(shí)現(xiàn)直線和圓弧插補(bǔ)算法。以刀的當(dāng)前位置為起點(diǎn),以G代碼給定位置為終點(diǎn),在其間的直線或圓弧上插入擬合點(diǎn),根據(jù)這些點(diǎn)產(chǎn)生一系列三坐標(biāo)脈沖信號。逐點(diǎn)比較法的缺陷是圓弧插補(bǔ)只能走x 或y 方向的正交線,而缺失了最應(yīng)該在圓弧插補(bǔ)中出現(xiàn)的由x、y 方向合成的±45/135°斜線,系統(tǒng)根據(jù)圓弧相對于x 或y 軸的傾向性,使插補(bǔ)過程中在圓弧的±45 /135°附近盡量使用斜線,使得插補(bǔ)精度更高、步數(shù)更少。圖6 是由M atlab仿真得到的改進(jìn)算法和傳統(tǒng)算法的比較,如果定義理想曲線和擬和曲線的誤差為兩曲線相夾的面積(圖中灰色部分) , 可看出改進(jìn)算法的誤差較小。
編寫加工程序時,一般只考慮刀具中心沿零件輪廓切削,而忽略刀具半徑對加工的影響,在實(shí)際加工時需要在刀具中心與刀具切削點(diǎn)之間進(jìn)行位置偏置,補(bǔ)償上述影響。這種變換過程即為刀具補(bǔ)償。系統(tǒng)采用的是帶有過度連接的C刀具補(bǔ)償算法,該算法比較復(fù)雜,與許多因素有關(guān),為此定義了一個結(jié)構(gòu)作為刀補(bǔ)函數(shù)的參數(shù),該函數(shù)更改插補(bǔ)始末位置、增加過渡曲線實(shí)現(xiàn)刀補(bǔ)功能。參數(shù)結(jié)構(gòu)如下,
3 結(jié)論
以ARM9微處理器為硬件平臺,免費(fèi)的Linux操作系統(tǒng)為軟件平臺,開發(fā)了嵌入式數(shù)控銑床,實(shí)現(xiàn)了對步進(jìn)電機(jī)和伺服電機(jī)的控制。 在對制作的電路板和編程的系統(tǒng)程序?qū)嶒?yàn)的基礎(chǔ)上表明,與傳統(tǒng)數(shù)控系統(tǒng)相比,嵌入式數(shù)控系統(tǒng)發(fā)揮了其耗能少、成本低、體積小等優(yōu)勢。
轉(zhuǎn)載請注明出處。