徐建明 韓 波
(浙江工業(yè)大學(xué)信息工程學(xué)院 杭州 310023)
制造業(yè)是國民經(jīng)濟的主要支柱,我國是一個制造大國,但不是一個制造強國。我國于2015 年正式提出“中國制造2025”戰(zhàn)略,戰(zhàn)略的核心是“智能制造”[1-2]。在實際生產(chǎn)制造中,大多數(shù)的點膠工作都是由人工手動完成的,手工點膠會占用很多的人力和時間且不能保證點膠的質(zhì)量。為了提高點膠的工藝水平和生產(chǎn)效率,對點膠機器人進行研究是非常必要的[3-4]。
按照自由度進行分類,點膠機有三軸、四軸和五軸3 種。三軸點膠機的結(jié)構(gòu)由X、Y、Z 3 個移動軸組成,四軸點膠機除了3 個移動軸之外多了一個旋轉(zhuǎn)軸,五軸點膠機由3 個移動軸和2 個旋轉(zhuǎn)軸組成。目前,對三軸和四軸點膠機的研究比較多,文獻(xiàn)[5]研究了一種應(yīng)用于半導(dǎo)體元器件的三軸點膠機控制系統(tǒng),文獻(xiàn)[6]使用伺服系統(tǒng)設(shè)計了四軸點膠機控制系統(tǒng),文獻(xiàn)[7]設(shè)計了以步進電機驅(qū)動滾珠絲杠傳動的四自由度點膠直角坐標(biāo)機器人。但是,三軸和四軸點膠機不能任意調(diào)整姿態(tài),無法完成復(fù)雜的軌跡,所以五軸點膠機成為研究的熱點。
機器人的控制系統(tǒng)一般是基于PLC(programmable logic controller)進行開發(fā)的,PLC 從硬件結(jié)構(gòu)上可以分為硬PLC 和軟PLC。硬PLC 是由專用的集成芯片來實現(xiàn)PLC 指令的執(zhí)行,而軟PLC 是將PLC 的控制功能封裝在軟件內(nèi),運行于工控機或者嵌入式控制器中[8-10]。傳統(tǒng)的硬PLC 因其可靠性在工業(yè)控制領(lǐng)域得到了廣泛的應(yīng)用,如文獻(xiàn)[11]采用三菱FX2N-64MT 研制了一套應(yīng)用于飛機鋁合金自動制孔的機器人控制系統(tǒng),文獻(xiàn)[12]基于松下FPXC60T 設(shè)計了全自動點膠機控制系統(tǒng)。但是隨著計算機技術(shù)的發(fā)展,硬PLC 通用性和兼容性差的問題愈發(fā)明顯,而軟PLC 兼具PC 的開放性和PLC 的可靠性[13-15],所以軟PLC 已經(jīng)成為開發(fā)控制系統(tǒng)的最佳方式。目前,軟PLC 開發(fā)平臺主要有3S 公司的CODESYS 和BECKHOFF 公司的TwinCAT。
綜上所述,本文采用開放性和擴展性更好的軟PLC 開發(fā)方案,以3S 公司的CODESYS 作為控制系統(tǒng)的軟件開發(fā)平臺,使用工控機作為硬件平臺開發(fā)出五軸點膠機控制系統(tǒng)。在控制系統(tǒng)中設(shè)計了G代碼讀取及解析、正逆運動學(xué)變換和PVT(position velocity time)插補等功能,同時設(shè)計了可視化界面,用于控制點膠機的運動和監(jiān)控設(shè)備的狀態(tài)。最后以曲面屏手機模型為實驗對象,使用開發(fā)的五軸點膠機控制系統(tǒng)進行曲面點膠實驗驗證。在實驗中,刀軸矢量能夠始終重合于曲面法向量,點膠速度可以保持恒定,手機模型上的膠點具有均勻性和一致性,能夠滿足曲面屏手機點膠的工藝要求,表明所設(shè)計的五軸點膠機控制系統(tǒng)具有一定的工程應(yīng)用價值。
五軸點膠機控制系統(tǒng)使用一主多從的控制模式,主站為基于X86 處理器和Windows 操作系統(tǒng)的工控機,從站為伺服驅(qū)動器和總線耦合器,主站和從站、從站和從站之間使用EtherCAT 總線進行通信,控制系統(tǒng)的硬件結(jié)構(gòu)圖如圖1 所示。工控機會在每個通信周期給伺服驅(qū)動器發(fā)送目標(biāo)位置、目標(biāo)速度和控制字,伺服驅(qū)動器驅(qū)動伺服電機且上傳實際位置、實際速度和狀態(tài)字到工控機,從而實現(xiàn)五軸聯(lián)動控制。總線耦合器接收工控機的命令并控制I/O 模塊,從而控制噴射閥的出膠動作。
圖1 控制系統(tǒng)硬件結(jié)構(gòu)圖
本文使用CODESYS 軟件平臺開發(fā)五軸點膠機的控制系統(tǒng),控制系統(tǒng)的設(shè)計流程圖如圖2 所示。整個設(shè)計流程共分為4 步,第1 步是設(shè)計正逆運動學(xué)功能塊,實現(xiàn)工具坐標(biāo)系和工件坐標(biāo)系之間的變換。第2 步是設(shè)計PVT 插補功能塊,將離散的位置點擬合成光滑的軌跡曲線。第3 步是設(shè)計運動控制系統(tǒng),實現(xiàn)五軸聯(lián)動控制。第4 步是設(shè)計可視化界面,用于監(jiān)控運行狀態(tài)和下發(fā)控制指令。
圖2 控制系統(tǒng)設(shè)計流程圖
Denavit-Hartenberg(DH)參數(shù)法是對機器人進行運動學(xué)建模的經(jīng)典方法,機器人的每個連桿可以用4 個運動學(xué)參數(shù)來描述,其中2 個參數(shù)用于描述連桿本身,另外2 個參數(shù)用于描述連桿之間的連接關(guān)系[16-19]。對于五軸點膠機,找出各關(guān)節(jié)軸并標(biāo)出這些軸線的延長線。找出關(guān)節(jié)軸i 和i +1 之間的公垂線或者關(guān)節(jié)軸i 和i +1 的交點,以關(guān)節(jié)軸i 和i +1 的交點或者公垂線與關(guān)節(jié)軸i 的交點作為連桿坐標(biāo)系{i} 的原點。規(guī)定Zi軸沿關(guān)節(jié)軸i 的指向,Xi軸沿公垂線的指向,如果關(guān)節(jié)軸i 和i+1 相交,則Xi軸垂直于關(guān)節(jié)軸i 和i +1 所在的平面,按照右手定則確定Yi軸。以此步驟建立坐標(biāo)系,可以得到如圖3所示的五軸點膠機連桿坐標(biāo)系分布圖。
圖3 連桿坐標(biāo)系分布圖
根據(jù)連桿坐標(biāo)系分布圖可以推導(dǎo)出五軸點膠機的DH 參數(shù),DH 參數(shù)表如表1 所示,其中ai-1表示連桿長度,αi-1表示連桿扭轉(zhuǎn)角,di表示連桿偏距,θi表示關(guān)節(jié)角。
表1 DH 參數(shù)表
已知連桿坐標(biāo)系變換矩陣ii-1T 的一般表達(dá)式為(sθ 表示sinθ,cθ 表示cosθ):
式(2)即為五軸點膠機的正運動學(xué)公式,下面使用代數(shù)法求解逆運動學(xué),觀察式(2),使用雙變量反正切函數(shù)arctan2 計算θ1和θ2,則有:
當(dāng)已知θ1和θ2時,令
則可以得到矩陣形式的線性方程組:
因為方程組系數(shù)矩陣的秩與增廣矩陣的秩相等且等于方程組中未知數(shù)的個數(shù),所以方程組有唯一解:
在CODESYS 中創(chuàng)建正運動學(xué)功能塊Forward Transformation,正運動學(xué)功能塊可以根據(jù)輸入的關(guān)節(jié)變量θ1、θ2、d1、d2、d3計算出工具中心點(tool center point,TCP)在工件坐標(biāo)系下的位置和姿態(tài),正運動學(xué)功能塊的設(shè)計流程圖如圖4 所示。
圖4 正運動學(xué)功能塊設(shè)計流程圖
創(chuàng)建逆運動學(xué)功能塊Inverse Transformation,當(dāng)輸入TCP 的位置和用XYZ 固定角描述的姿態(tài)時,逆運動學(xué)功能塊可以計算出關(guān)節(jié)變量的值,逆運動學(xué)功能塊的設(shè)計流程圖如圖5 所示。
圖5 逆運動學(xué)功能塊設(shè)計流程圖
機器人的軌跡規(guī)劃主要研究如何生成一系列連續(xù)的運動路徑點,運動路徑點的信息包括時間、位置和速度等。一般情況下軌跡規(guī)劃是在關(guān)節(jié)空間中進行的,主要研究關(guān)節(jié)變量與時間的函數(shù)關(guān)系,確保函數(shù)的一階二階導(dǎo)數(shù)連續(xù)且可導(dǎo),從而避免速度和加速度的突變,使機器人的運動更加平穩(wěn)[20-21]。
PVT 代表位置(position)、速度(velocity)和時間(time),用來表示運動軌跡的相關(guān)信息。當(dāng)使用PVT 運動模式時,控制命令必須指定路徑點的位置、速度以及完成路徑的時間。但在實際應(yīng)用中,點在某個位置的瞬時速度難以確定,因為軌跡點是離散點,速度無法通過求導(dǎo)的方式進行計算,另外通過Δs/Δt 求出的速度是平均速度,而不是軌跡點的瞬時速度。三次樣條插值可以在只知道點的位置和時間的情況下計算出點的瞬時速度,從而解決上述問題。PVT 插補的數(shù)學(xué)原理是分段3 次Hermite 插值和3 次樣條插值算法[22]。
設(shè)[P0,P1,…,Pn] 為運動軌跡中的一系列軌跡點,則在區(qū)間[Pi,Pi+1] 中,根據(jù)運動控制命令指定的軌跡點信息可以得到Pi和Pi+1點處的位置p、速度v 和從Pi運動到Pi+1所需要的時間t。設(shè)F(t)在點tj(j=0,1,…,n) 處的值為F(tj)=pj,F′(tj)=vj,則在區(qū)間[Pi,Pi+1] 中
函數(shù)F(t) 同樣滿足3 次樣條函數(shù)定義,所以可以利用3 次樣條函數(shù)二階導(dǎo)數(shù)連續(xù)的性質(zhì)來計算節(jié)點tj處的瞬時速度。因為F(t) 在區(qū)間[P0,P1,…,Pn] 上二階導(dǎo)數(shù)連續(xù),所以在節(jié)點tj(j=1,2,…,n-1) 處滿足連續(xù)性條件F″(tj-0)=F″(tj+0)。對F(t) 求二次導(dǎo)數(shù),可得:
已知v0=vn=0,則式(10)可以表示為對角占優(yōu)的三對角線方程組
使用追趕法[23]可以解出vj(j=1,2,…,n -1),將vj代入式(8),可計算出任意時刻的位置和速度。將上述插值算法封裝為PVT 插補功能塊,PVT插補功能塊可以在輸入位置數(shù)組和時間數(shù)組的情況下計算出任意時刻的位置值和速度值,PVT 插補功能塊的設(shè)計流程圖如圖6 所示。
圖6 PVT 插補功能塊設(shè)計流程圖
本文使用SM3_CNC 庫來實現(xiàn)點膠機的運動控制系統(tǒng),運動控制系統(tǒng)的設(shè)計流程如圖7 所示。(1)將功能塊SMC_ReadNCFile2 實例化,在SMC_ReadNCFile2 的輸入接口sFileName 中指定文件的路徑和名稱,在fDefaultVel 中指定默認(rèn)速度。功能塊SMC_ReadNCFile2 的輸出接口名稱為sentences,其數(shù)據(jù)類型是SMC_GSentenceQueue。在經(jīng)過功能塊的處理后,sentences 中的數(shù)據(jù)是字符串形式的G代碼語句隊列。(2)將功能塊SMC_NCInterpreter實例化,把前面sentences 中的數(shù)據(jù)傳遞給功能塊SMC_NCInterpreter,解釋器就可以將G 代碼語句解析為路徑點隊列。路徑點隊列由多個SMC_GEOINFO 對象組成,每一個對象的信息包括運動類型iMoveType、路徑起始點piStartPos、路徑終點piDestPos、路徑速度dVel 和路徑長度dLength 等。因此,路徑點隊列包含了運動軌跡的所有信息。(3)創(chuàng)建結(jié)構(gòu)體GeoBuffer,其中包含空的位置數(shù)組和時間數(shù)組。獲得路徑點隊列的內(nèi)存地址,讀取所有的SMC_GEOINFO 對象,然后根據(jù)每個對象中的路徑起始點piStartPos、路徑終點piDestPos、路徑速度dVel 和路徑長度dLength 計算出對應(yīng)的位置值和時間值,最后將位置和時間放入到結(jié)構(gòu)體GeoBuffer 中。(4)調(diào)用逆運動學(xué)功能塊Inverse Transformation 將GeoBuffer 中的相對于工件坐標(biāo)系的位置變換到關(guān)節(jié)坐標(biāo)系中,將變換后的關(guān)節(jié)值保存到結(jié)構(gòu)體Axis-ValueBuffer 中。(5)將AxisValueBuffer 中的5 個關(guān)節(jié)值數(shù)組傳遞給功能塊PVT,就可以對數(shù)組中的數(shù)據(jù)點進行擬合,獲得光滑的關(guān)節(jié)軌跡曲線。(6)調(diào)用功能塊SMC_FollowPosition,在每個通信周期將關(guān)節(jié)值實時地下發(fā)給伺服驅(qū)動器,伺服驅(qū)動器就可以對伺服電機進行精確地控制,從而實現(xiàn)五軸聯(lián)動控制。
圖7 運動控制系統(tǒng)設(shè)計流程圖
可視化界面是控制系統(tǒng)和用戶之間進行交互的媒介,可視化界面的主要功能是取代傳統(tǒng)的控制面板和顯示儀表,用于監(jiān)控設(shè)備運行狀況和下發(fā)控制指令。CODESYS Visualization 模塊使用控件的編程方式,基本的控件元素包括指示燈、按鈕、文字和框架等。
五軸點膠機控制系統(tǒng)的可視化界面主要包括4個部分,分別是主界面、運動控制界面、程序編輯界面和點膠控制界面,可視化界面的結(jié)構(gòu)圖如圖8 所示。在主界面中可以通過開關(guān)對電機軸進行使能,通過按鈕對設(shè)備進行點動控制和實現(xiàn)回零功能,通過文本框顯示實時的坐標(biāo)值。運動控制界面的主要功能是指定G 代碼文件的路徑、讀取文件信息并解析、設(shè)置運動的相關(guān)參數(shù)、顯示G 代碼的運行軌跡和顯示設(shè)備運行的狀態(tài)。程序編輯界面由圖形框和文本框組成,圖形框提供G 代碼文件的圖形預(yù)覽,可以通過控制面板調(diào)整圖形的顯示效果。文本框顯示文件的G 代碼,可以通過按鈕對G 代碼進行編輯、保存、新建和刪除操作。點膠控制界面主要包括閥門的使能控制、閥門工作狀態(tài)和閥門壓力的顯示、通斷電時間設(shè)置以及手動自動模式切換。
圖8 可視化界面結(jié)構(gòu)圖
以曲面屏手機模型為實驗對象,以刀軸矢量始終重合于曲面法向量和點膠速度保持勻速為工藝要求驗證五軸點膠機控制系統(tǒng)的功能。在SolidWorks中建立曲面手機模型的三維圖,將手機模型的三維圖導(dǎo)入到Mastercam 軟件中,使用Mastercam 生成軌跡的步驟為:(1)將模型底面的中點設(shè)置為機床原點,同時建立機床參考坐標(biāo)系。(2)使用曲線工具在曲面上創(chuàng)建曲面切線,生成的切線即為點膠軌跡。(3)將模型表面的中點設(shè)置為對刀點,同時將刀具進入點和退出點設(shè)為X=0,Y=0,Z=30。(4)創(chuàng)建多軸加工刀路,在彈出的對話框中將曲線類型設(shè)為3D 曲線,補正方式設(shè)為關(guān)閉,刀軸控制方式設(shè)為曲面。操作完成后可以得到運動軌跡,運動軌跡如圖9所示。圖9 中的坐標(biāo)系表示機床原點和機床參考坐標(biāo)系,箭頭表示運動的方向。
圖9 運動軌跡圖
點膠過程中的刀軸矢量圖如圖10 所示,圖中的直線表示刀軸矢量。從圖10 中可以看出,在點膠過程中刀軸矢量是始終重合于曲面法向量的,因此需要五軸聯(lián)動才能完成點膠。
圖10 刀軸矢量圖
后處理主要用來定義怎樣生成G 代碼,并且使生成的G 代碼滿足數(shù)控系統(tǒng)的需求。后處理文件是可編輯的文本文件,其內(nèi)容可以通過代碼編輯器進行修改。使用編輯器打開Generic FANUC 5x Router 后處理文件,在文本中查找“#Machine rotary routine settings”,找到如圖11 所示的用于修改機床類型的代碼片段。根據(jù)機床類型修改mtype 變量的初始值,雙轉(zhuǎn)臺類型的mtype 值為0,擺頭加轉(zhuǎn)臺類型為1,雙擺頭類型為2。本文的五軸點膠機為雙轉(zhuǎn)臺類型,所以mtype 的值需要更改為0。
圖11 修改機床類型的代碼片段
同樣地,在文本中查找“# Motion NC output”,找到如圖12 所示的用于修改G 代碼輸出格式的代碼片段,prapidout、plinout 和pcirout 代碼段分別定義了快速定位、直線插補和圓弧插補的G 代碼輸出格式,變量xout、yout、zout、p_out 和s_out 分別定義了X 軸、Y 軸、Z 軸、主旋轉(zhuǎn)軸和次旋轉(zhuǎn)軸的輸出值,對其進行更改就可以獲得適用于五軸點膠機控制系統(tǒng)的G 代碼輸出格式。
圖12 修改G 代碼輸出格式的代碼片段
使用修改后的后處理文件對點膠運動軌跡曲線進行處理,可以得到運動軌跡的G 代碼文件。將G代碼文件導(dǎo)入到點膠機控制系統(tǒng)中,控制系統(tǒng)就可以自動讀取和解析G 代碼。在運動控制界面中下發(fā)運行指令,點膠機就可以自動運行。
TCP 的運動速度記錄圖如圖13 所示,其橫坐標(biāo)表示時間值,縱坐標(biāo)表示TCP 運動速度值。從圖中可以看出,除啟動和停止階段外,TCP 運動速度是恒定的,完成一次點膠需要花費約32 s 的時間,這個時間能夠滿足生產(chǎn)效率的要求。噴射閥出膠頻率和TCP 運動速度的關(guān)系圖如圖14 所示。噴射閥出膠頻率與TCP 運動速度是相關(guān)聯(lián)的,TCP 運動速度增加時噴射閥出膠頻率也會增加,反之亦然,這樣可以保證點膠效果的均勻和一致,噴射閥出膠的最大頻率為50 Hz。在本次實驗中TCP 運動速度為20 mm/s,噴射閥出膠頻率為12 Hz。
圖13 TCP 運動速度記錄圖
圖14 噴射閥出膠頻率和TCP 運動速度關(guān)系圖
點膠完成后的手機模型實物圖如圖15 所示,可以看出,手機模型上的膠點具有均勻性和一致性。綜上所述,本文設(shè)計的五軸點膠機控制系統(tǒng)能夠保證刀軸矢量始終重合于曲面法向量,可以滿足點膠速度恒定的工藝要求,因此具有一定的工程應(yīng)用價值。
圖15 手機模型實物圖
本文采用CODESYS 作為開發(fā)平臺,使用基于X86 +Windows 的工控機作為硬件平臺設(shè)計了五軸點膠機控制系統(tǒng)?;赟M3_CNC 庫中的功能塊開發(fā)了G 代碼讀取以及解析功能,使用Denavit-Hartenberg 參數(shù)法建立了運動學(xué)模型并且設(shè)計了正逆運動學(xué)功能塊,使用分段3 次Hermite 插值和3 次樣條插值算法設(shè)計了PVT 功能塊。同時設(shè)計了可視化界面,用于控制點膠機的運動和監(jiān)控運行狀態(tài)。以曲面屏手機模型作為實驗對象,使用五軸點膠機控制系統(tǒng)進行曲面點膠實驗驗證。實驗表明,點膠機的點膠速度保持恒定,手機模型上的膠點均勻且一致,證明了所設(shè)計的五軸點膠機控制系統(tǒng)具有工程應(yīng)用價值。