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