袁紅兵,譚鑫,趙動(dòng)動(dòng)
(南京理工大學(xué)機(jī)械工程學(xué)院,江蘇南京210094)
隨著計(jì)算機(jī)技術(shù)的發(fā)展,數(shù)控編程技術(shù)在數(shù)控加工工藝規(guī)劃、刀具路徑生成、數(shù)控代碼動(dòng)態(tài)模擬等方面取得了普遍應(yīng)用,但在數(shù)控加工的實(shí)際環(huán)境中,由于零件加工工藝的復(fù)雜性和加工環(huán)境的不同,加工過程中可能會(huì)出現(xiàn)零件過切和干涉碰撞等現(xiàn)象。另一方面,由于數(shù)控機(jī)床的投資和運(yùn)行成本較大,操作也更為復(fù)雜,由于操作不當(dāng)存在發(fā)生意外碰撞的可能性,同時(shí)考慮數(shù)控機(jī)床臺(tái) (套)數(shù)和零件耗材成本等方面的因素,希望在零件的實(shí)際加工前,采取必要的措施完善系統(tǒng)監(jiān)測和報(bào)錯(cuò)功能,當(dāng)加工過程中出現(xiàn)異常情況時(shí),系統(tǒng)能夠報(bào)錯(cuò)停機(jī),對設(shè)備進(jìn)行必要的預(yù)防性保護(hù),同時(shí)可以優(yōu)化操作流程,完善系統(tǒng)功能。
基于PC的開放式數(shù)控系統(tǒng)具有如下特點(diǎn):(1)標(biāo)準(zhǔn)化、通用化和模塊化:通過選擇不同的標(biāo)準(zhǔn)化功能模塊可以組成各種數(shù)控機(jī)床的控制系統(tǒng),便于現(xiàn)有數(shù)控系統(tǒng)的擴(kuò)展及升級(jí);(2)高速、高可靠性;(3)智能化:引進(jìn)自適應(yīng)控制技術(shù),系統(tǒng)可自動(dòng)調(diào)整有關(guān)參數(shù),以達(dá)到系統(tǒng)運(yùn)行的最優(yōu)化;(4)網(wǎng)絡(luò)化:具有強(qiáng)大的通訊聯(lián)網(wǎng)功能,保證數(shù)控系統(tǒng)與標(biāo)準(zhǔn)網(wǎng)絡(luò)(包括互聯(lián)網(wǎng))的無縫連接,實(shí)現(xiàn)軟硬件資源共享;(5)易操作性[1-2]。
開放式數(shù)控系統(tǒng)由于自身的諸多優(yōu)勢已呈現(xiàn)強(qiáng)勁的發(fā)展趨勢,并且引發(fā)了國內(nèi)外大量的應(yīng)用研究。一些以PC為基礎(chǔ)的CNC制造商,主要生產(chǎn)、銷售各種高性能運(yùn)動(dòng)控制卡和運(yùn)動(dòng)控制軟件。由于這些產(chǎn)品的開放性很好,用戶可以自行開發(fā),把它用來構(gòu)成自己的數(shù)控產(chǎn)品或使用在生產(chǎn)上,通過PC和運(yùn)動(dòng)控制卡以及相應(yīng)的機(jī)床數(shù)控軟件,構(gòu)成相應(yīng)的數(shù)控系統(tǒng)產(chǎn)品[3-5]。固高科技有限公司的GT系列多軸運(yùn)動(dòng)控制卡是一種插卡式運(yùn)動(dòng)控制器,該系列產(chǎn)品基于計(jì)算機(jī)PCI總線,可控制1~4個(gè)伺服電機(jī)或步進(jìn)電機(jī)。該系列產(chǎn)品具有梯型曲線、S型曲線,JOG模式點(diǎn)位運(yùn)動(dòng)規(guī)劃及電子齒輪同步運(yùn)動(dòng)規(guī)劃功能,同時(shí)具有多軸直線插補(bǔ)和圓弧插補(bǔ)運(yùn)動(dòng)規(guī)劃功能,特別適用于既有點(diǎn)位運(yùn)動(dòng)控制,也有插補(bǔ)運(yùn)動(dòng)控制要求的場合,其電子齒輪運(yùn)動(dòng)規(guī)劃功能滿足了有同步控制要求的應(yīng)用場合[6]。
作者利用固高GT系列運(yùn)動(dòng)控制卡和固高四軸運(yùn)動(dòng)開發(fā)平臺(tái),采用NC嵌入PC模式完成了一個(gè)數(shù)控雕銑教學(xué)實(shí)驗(yàn)系統(tǒng)的開發(fā)。
作者選用固高GT-400-SG型運(yùn)動(dòng)控制卡和固高四軸運(yùn)動(dòng)開發(fā)平臺(tái)進(jìn)行數(shù)控雕銑系統(tǒng)的開發(fā)。系統(tǒng)硬件結(jié)構(gòu)如圖1所示。GT-400系列運(yùn)動(dòng)控制器可以同步控制4個(gè)運(yùn)動(dòng)軸,實(shí)現(xiàn)多軸協(xié)調(diào)運(yùn)動(dòng)。其核心由ADSP2181數(shù)字信號(hào)處理器和FPGA組成,可以實(shí)現(xiàn)高性能的控制計(jì)算。GT-400-SG型運(yùn)動(dòng)控制卡外形如圖2 所示[3]。
圖1 數(shù)控雕銑系統(tǒng)的硬件結(jié)構(gòu)示意圖
圖2 GT-400-SG型運(yùn)動(dòng)控制卡外形
固高四軸運(yùn)動(dòng)開發(fā)平臺(tái)提供了4路步進(jìn)電機(jī)及其驅(qū)動(dòng)、通用狀態(tài)指示、限位開關(guān)和輸入輸出I/O通道,在上述系統(tǒng)硬件平臺(tái)搭建和連接完成后,研究和開發(fā)的重點(diǎn)是上位機(jī)程序 (Windows平臺(tái)下的數(shù)控雕銑實(shí)驗(yàn)系統(tǒng))的開發(fā),該系統(tǒng)具有如下功能:(1)進(jìn)行NC程序代碼的詞法檢查和語法檢查;(2)各軸點(diǎn)動(dòng)操作;(3)自動(dòng)對刀;(4)程序執(zhí)行暫停和繼續(xù),程序執(zhí)行斷點(diǎn)保存與恢復(fù);(5)程序單步執(zhí)行控制;(6)動(dòng)態(tài)繪制刀具軌跡;(7)系統(tǒng)自診斷。
數(shù)控雕銑系統(tǒng)的基本功能由各個(gè)功能子程序?qū)崿F(xiàn),主要包括加工過程的協(xié)調(diào)控制、狀態(tài)參數(shù)的顯示、工藝參數(shù)設(shè)置和修改、程序中斷優(yōu)先級(jí)控制、文件管理以及故障診斷和報(bào)警等。數(shù)控雕銑系統(tǒng)的運(yùn)行流程如圖3所示。
圖3 數(shù)控雕銑系統(tǒng)的運(yùn)行控制流程
系統(tǒng)界面是人機(jī)交互的窗口,其設(shè)計(jì)要在充分發(fā)揮系統(tǒng)功能的基礎(chǔ)上滿足布局合理、簡潔大方和便于操作的要求。另外系統(tǒng)還要給出必要的操作提示,將跟當(dāng)前操作無關(guān)的功能和命令置為無效,以防止操作者誤操作。
所開發(fā)的數(shù)控雕銑系統(tǒng)界面如圖4所示。界面左上側(cè)的PictureBox圖像控件為軌跡顯示區(qū)域。在執(zhí)行加工程序過程中,工件坐標(biāo)系和刀具軌跡將動(dòng)態(tài)顯示在這一區(qū)域。軌跡顯示區(qū)域的范圍可以通過調(diào)整刻度單位的大小來調(diào)節(jié)??潭葐挝皇侵腹ぜ鴺?biāo)系一個(gè)刻度單位代表的實(shí)際長度。界面左下側(cè)帶滾動(dòng)條的TextBox文本框是NC代碼顯示區(qū)域。
界面右側(cè)從上往下依次是坐標(biāo)顯示區(qū)域、操作控制區(qū)域和手動(dòng)控制區(qū)域。坐標(biāo)顯示區(qū)域用于顯示當(dāng)前刀具點(diǎn)在機(jī)床坐標(biāo)系下的坐標(biāo)值和在工件坐標(biāo)系下的坐標(biāo)值。這些坐標(biāo)值是通過在時(shí)鐘程序中實(shí)時(shí)地查詢各軸的位置值獲取的。刀具點(diǎn)的機(jī)床坐標(biāo)與其工件坐標(biāo)存在確定的對應(yīng)關(guān)系,二者的差值即工件坐標(biāo)原點(diǎn)在機(jī)床坐標(biāo)系下的坐標(biāo)值。
操作控制區(qū)域中是一些系統(tǒng)操作控制的功能按鈕和提示信息?!爱?dāng)前程序號(hào)”指示的是當(dāng)前被執(zhí)行的程序段號(hào),進(jìn)度條顯示程序編譯的進(jìn)度,狀態(tài)提示欄用來提示當(dāng)前操作,“清屏”用來清除軌跡顯示區(qū)域的圖像,灰色圖像控件模擬了一個(gè)指示燈,程序開啟和關(guān)閉時(shí)分別呈綠色和灰色?!伴_啟”按鈕用來打開系統(tǒng),開啟并初始化運(yùn)動(dòng)控制卡、讀取上次退出時(shí)候保存的刀具位置值、讀取配置文件中的參數(shù)進(jìn)行系統(tǒng)設(shè)置,進(jìn)行軸的坐標(biāo)映射等?!瓣P(guān)閉”按鈕用來保存當(dāng)前系統(tǒng)設(shè)置并關(guān)閉系統(tǒng)。“緊急停止”按鈕用來在系統(tǒng)發(fā)生錯(cuò)誤時(shí)急停各軸運(yùn)動(dòng),防止發(fā)生錯(cuò)誤時(shí)損壞刀具和工件。手動(dòng)控制區(qū)域可進(jìn)行單軸運(yùn)動(dòng),其中手動(dòng)速度可自動(dòng)調(diào)節(jié)。當(dāng)?shù)毒哌_(dá)到坐標(biāo)極限位置時(shí),對應(yīng)方向的單軸運(yùn)動(dòng)被禁止。
圖4 系統(tǒng)操作界面及刀具軌跡動(dòng)態(tài)顯示
數(shù)控雕銑系統(tǒng)采用Visual Basic語言開發(fā),其主要功能是根據(jù)數(shù)控加工程序控制各軸實(shí)現(xiàn)連續(xù)軌跡的運(yùn)動(dòng)控制。編程實(shí)現(xiàn)時(shí)首先要鏈接固高運(yùn)動(dòng)控制卡對應(yīng)的動(dòng)態(tài)鏈接庫,并通過調(diào)用運(yùn)動(dòng)控制卡提供的庫函數(shù)實(shí)現(xiàn)運(yùn)動(dòng)控制卡和各個(gè)軸的初始化。下面介紹系統(tǒng)開發(fā)中的運(yùn)動(dòng)控制卡參數(shù)設(shè)定、雕銑系統(tǒng)相關(guān)參數(shù)設(shè)定、坐標(biāo)映射、譯碼、詞法和語法檢查、刀具軌跡動(dòng)態(tài)顯示等主要功能的實(shí)現(xiàn)。
運(yùn)動(dòng)控制卡的參數(shù)設(shè)置包括設(shè)置輸出脈沖形式、控制周期、限位信號(hào)觸發(fā)電平、原點(diǎn)信號(hào)觸發(fā)電平、編碼器計(jì)數(shù)方向等,在數(shù)控程序中通過設(shè)計(jì)函數(shù)Initial()來實(shí)現(xiàn)。
數(shù)控雕銑系統(tǒng)的相關(guān)參數(shù)設(shè)定主要是設(shè)置跟系統(tǒng)相關(guān)的一系列參數(shù),采用外部ini配置文件的形式實(shí)現(xiàn)。需要通過調(diào)用Visual Basic中的Win API函數(shù)的GetPrivateProfileString和WritePrivateProfileString現(xiàn)實(shí)現(xiàn)配置文件的讀寫操作,限于篇幅不再贅述。
坐標(biāo)映射用于實(shí)現(xiàn)將坐標(biāo)系內(nèi)描述的運(yùn)動(dòng)通過坐標(biāo)映射關(guān)系映射到相應(yīng)的軸上,從而建立坐標(biāo)系運(yùn)動(dòng)和各軸運(yùn)動(dòng)的運(yùn)動(dòng)學(xué)傳遞關(guān)系,它是實(shí)現(xiàn)多坐標(biāo)協(xié)調(diào)運(yùn)動(dòng)的基礎(chǔ)。固高運(yùn)動(dòng)控制卡提供的坐標(biāo)映射命令函數(shù)原型:
short GT_MapAxis(short Axis_Num,double*map_count)。其中 Axis_Num為軸號(hào) (取值1、2、3或4),調(diào)用坐標(biāo)映射命令后,該軸工作于坐標(biāo)運(yùn)動(dòng)模式。該軸的實(shí)際位置記為Axis_N,單位為脈沖。數(shù)組map_count包括5個(gè)元素,順次記為 Cx、Cy、Cz、Ca和C,坐標(biāo)軸X、Y、Z、A所對應(yīng)的相應(yīng)坐標(biāo)記為x、y、z和a。上述函數(shù)描述的映射關(guān)系可用公式表示為:
Axis_N=Cx×x+Cy×y+Cz×z+Ca×a+C
由此可看出被映射的控制軸的運(yùn)動(dòng)是坐標(biāo)X、Y、Z和A的線性組合。實(shí)現(xiàn)坐標(biāo)映射的程序代碼如下:
Dim cnt1、cnt2、cnt3 As TyMap ’TyMap為板卡函數(shù)庫中定義的數(shù)組
Dimi as integer
For i=0 To 4
cnt1.C(i)=0
cnt2.C(i)=0
cnt3.C(i)=0
Next i
cnt1.C(0)=1000
cnt2.C(1)=1000
cnt3.C(2)=1000
Call Error(GT_MapAxis(1,cnt1))
Call Error(GT_MapAxis(2,cnt2))
Call Error(GT_MapAxis(3,cnt3))
將cnt1.C(0)、cnt2.C(1)和cnt3.C(2)都賦值為1 000是因?yàn)? mm對應(yīng)的脈沖數(shù)為1 000,這樣在發(fā)送多軸協(xié)調(diào)運(yùn)動(dòng)指令時(shí)就可以以mm為單位,更加方便。
數(shù)控代碼的譯碼是逐段提取NC程序代碼中的運(yùn)動(dòng)指令和信息,并將這些運(yùn)動(dòng)指令和信息保存在結(jié)構(gòu)體數(shù)組中。數(shù)控代碼的詞法檢查主要是針對NC程序代碼中出現(xiàn)非法字符或者未定義的功能字。語法檢查主要是檢查NC代碼中不符合編程規(guī)則的語法錯(cuò)誤。詞法檢查通過正則表達(dá)式對每一個(gè)程序段進(jìn)行搜索匹配,生成錯(cuò)誤報(bào)告。
Function cifatest(ByVal ncs As String)As String
Dim resultnc as String
……
Set rregexpG=New RegExp
rregexpG.IgnoreCase=False
rregexpG.Global=True
……
End Function
NC代碼編譯器對其它數(shù)控功能字的處理方法與此類似。
固高GT系列運(yùn)動(dòng)控制卡提供了一個(gè)4K字的坐標(biāo)系運(yùn)動(dòng)命令緩沖區(qū),以實(shí)現(xiàn)多軸協(xié)調(diào)連續(xù)軌跡運(yùn)動(dòng)。另外運(yùn)動(dòng)控制卡還提供了一個(gè)命令狀態(tài)寄存器和一個(gè)坐標(biāo)系運(yùn)動(dòng)規(guī)劃狀態(tài)寄存器,通過查詢這兩個(gè)寄存器的狀態(tài)值可以監(jiān)測到各軸的狀態(tài)信息和多坐標(biāo)運(yùn)動(dòng)狀態(tài)信息。
如圖4所示,為了更加直觀形象地描述刀具的運(yùn)動(dòng)情況,該數(shù)控雕銑系統(tǒng)將刀具軌跡動(dòng)態(tài)的顯示在系統(tǒng)界面上。通過動(dòng)態(tài)查詢各軸的位置值,確定這些刀具點(diǎn)的工件坐標(biāo)值后將它們依次連接起來就形成了刀具的軌跡。
計(jì)算機(jī)技術(shù),特別是軟件技術(shù)的快速發(fā)展為開放式數(shù)控系統(tǒng)技術(shù)的發(fā)展提供了強(qiáng)大的技術(shù)支持,使得基于PC的開放式數(shù)控系統(tǒng)具有很強(qiáng)的靈活性,因此開放式數(shù)控系統(tǒng)自誕生以來就得到業(yè)界的廣泛關(guān)注和好評,它是未來數(shù)控技術(shù)發(fā)展的注流方向之一[7]。
本文作者開發(fā)了一個(gè)基于PC和運(yùn)動(dòng)控制卡的數(shù)控雕銑教學(xué)實(shí)驗(yàn)系統(tǒng),在系統(tǒng)開發(fā)過程中充分利用了PC機(jī)豐富的軟硬件資源和強(qiáng)大的技術(shù)優(yōu)勢,在搭建基于PC和運(yùn)動(dòng)控制卡的數(shù)控雕銑系統(tǒng)硬件環(huán)境的基礎(chǔ)上,進(jìn)行了數(shù)控雕銑數(shù)控系統(tǒng)的總體設(shè)計(jì)和開發(fā),完成了系統(tǒng)中運(yùn)動(dòng)控制卡參數(shù)設(shè)定、雕銑系統(tǒng)相關(guān)參數(shù)設(shè)定、坐標(biāo)映射、譯碼、詞法和語法檢查、刀具軌跡動(dòng)態(tài)顯示等主要功能的實(shí)現(xiàn),較好地體現(xiàn)了基于PC的開放式數(shù)控系統(tǒng)的標(biāo)準(zhǔn)化、通用化和模塊化的特點(diǎn),同時(shí)系統(tǒng)具有較好的智能性、易操作性和很強(qiáng)的可靠性與可擴(kuò)展性。
[1]富宏亞,梁全.開放式數(shù)控技術(shù)及其在我國的發(fā)展?fàn)顩r[J].航空制造技,2010(4):53-56.
[2]畢俊喜.數(shù)控系統(tǒng)及仿真技術(shù)[M].北京:機(jī)械工業(yè)出版社,2013.
[3]秦忠,呂彥明,毛銳.基于運(yùn)動(dòng)控制卡的電路板雕刻機(jī)的開放式數(shù)控系統(tǒng)的研究[J].機(jī)床與液壓,2009,37(6):45-47.
[4]劉長宏,宋鵬,劉巖川,等.基于運(yùn)動(dòng)控制卡的數(shù)控系統(tǒng)應(yīng)用研究[J].大連民族學(xué)院學(xué)報(bào),2009,12(1):36-38.
[5]張宏,李富平.基于PC+運(yùn)動(dòng)控制卡的開放式數(shù)控系統(tǒng)的研究[J].機(jī)械設(shè)計(jì)與制造,2008(6):171-172.
[6]固高科技.GT系列運(yùn)動(dòng)控制器用戶手冊[Z].深圳固高科技有限公司,2006.
[7]趙春紅.基于PC的開放式數(shù)控系統(tǒng)[D].蘭州:西北工業(yè)大學(xué),2008.