李慶婷++王英杰++劉恒寬
摘 要:數控系統的譯碼功能直接決定了數控機床的性能。一個穩定、可靠、快速的譯碼系統是數控機床進行高速、高精度加工的前提。該文用Delphi語言編寫了實現譯碼算法的譯碼軟件,并且基于Delphi語言的對話框模式編寫了外觀精美、易于操作的功能界面。
關鍵詞:CNC系統 譯碼 高精度
中圖分類號:TP311 文獻標識碼:A 文章編號:1672-3791(2015)02(b)-0028-01
1 數控CNC系統軟件界面的建立
軟件界面的設計直接關系到它的合理性和美觀,從而影響客戶對該軟件的喜愛程度。基于此對該軟件的界面需要細心的設計,設計過程介紹如下。
(1)創建父窗體Form1。
創建父窗體與其它窗體的方法類似,不同之處在于設置窗體的FormStyle屬性。FormStyle屬性可決定一個窗體是父窗體還是子窗體,在“Object Inspector”窗口中將“FormStyle”屬性設置成“fsMDIForm(父窗體)”。
(2)創建子窗體Form4。
創建子窗體時將窗體的FormStyle屬性設置為fsMDIChild(子窗體)。子窗體的默認狀態是可見的。
2 固定循環功能的Delphi編程實現
鉆孔循環G81的實現程序如下所示。
paintbox1.canvas.MoveTo(round(x1*1.3*s),-round(y1*1.3*s));//刀具起始位置
paintbox1.canvas.LineTo(round(x2*1.3*s),-round(y2*1.3*s));//孔的X、Y位置
paintbox1.canvas.LineTo(round(x2*1.3*s),-round(R*1.3*s));//刀具到達R平面
paintbox1.canvas.LineTo(round(x2*1.3*s),-round(Z*1.3*s));//刀具到達Z平面
x2:=x2+1 ;//刀具在X方向右移一個單位長度,為下一步清晰表示返回路線
paintbox1.canvas.LineTo(round(x2*1.3*s),-round(Z*1.3*s));//刀具到達X方向的下一個位置,Y沒變
paintbox1.canvas.LineTo(round(x2*1.3*s),-round(R*1.3*s));//刀具返回R平面
運行結果如圖1所示。
3 對復合固定循環功能G71的譯碼實現
設從C點出發,沿-X方向進刀,然后沿-Z方向走刀,再沿+Z方向回刀為一次走刀循環。假設通過次走刀循環加工后,第次走刀循環如圖2中的軌跡1→2→3→4所示,現要求解出軌跡1、2、3、4的交點坐標值。
已知C點坐標,根據走刀循環次數和,首先通過下式求出軌跡1和2的交點坐標,設為。
。
而對于坐標點求解(,只要求出)則要根據所對應的編程輪廓類型來求解。首先需要判斷對應哪個輪廓段,然后通過該輪廓段中的G指令如G01或G02等來判斷出是直線還是圓弧。該輪廓段兩端點坐標在程序中給出,這里設為。如果為圓弧段,則還有和坐標字,代表圓心相對圓弧起點的增量坐標,分別對應于X軸,Z軸。這里設為。
則對于直線段,可求出:
。
而對于圓弧段,可求出:
(順時針圓弧)。
(逆時針圓弧)。
求出,和也不難求出下式:
。
這樣就可以把這段循環分解成各直線段進行編譯,然后將各數據按格式寫入文件中。最后在復合固定循環處理完后,位置指針回到數控加工程序的下一程序段,繼續對以下各段進行譯碼實現。如圖2所示。
4 結語
利用Delphi語言進行譯碼軟件的編寫,實現譯碼算法。同時編寫外觀精美并易于操作的功能界面,從而實現人機對話功能。最后通過示例驗證開發的譯碼軟件的正確性,實現了部分G功能碼的譯碼算法。
參考文獻
[1] 明日科技.Delphi開發經驗技巧寶典[M].北京:人民郵電出版社,2007.
[2] 姚道敏,俞立鈞,周伯榮,等.數控系統譯碼模塊程序設計[J].組合機床與自動化加工技術,2007(7):73-76.
[3] 羅學科,謝富春.數控原理與數控機床[M].北京:化學工業出版社,2008.