楊 博,范賢光,姚 斌,姚博世
(1.廈門大學(xué) 智能裝備技術(shù)研究所,物理與機(jī)電工程學(xué)院,福建 廈門 361005;2.陜西省漢江機(jī)床有限公司,陜西 漢中 723003)
傳統(tǒng)的線材加工在對待特定的線材成形時(shí)需要用專門的模具設(shè)備來實(shí)現(xiàn),如果生產(chǎn)的產(chǎn)品批量大,品種少,這種加工方式具有一定的優(yōu)勢[1]。但是,對于中小批量,多品種,的生產(chǎn)方式,傳統(tǒng)加工方法往往不具有優(yōu)勢[2]。為了解決上述問題,課題組基于對柔性制造技術(shù)研究,開發(fā)出了一臺具有三個(gè)回轉(zhuǎn)軸(Y 軸、A 軸、B 軸)和兩個(gè)移動軸(X 軸、Z 軸)的五軸數(shù)控彎絲機(jī)器人,機(jī)械結(jié)構(gòu)如圖1 所示。機(jī)器人工作順序?yàn)?盤圓過的線材→經(jīng)載料機(jī)構(gòu)展開→由校直機(jī)構(gòu)校直→再經(jīng)送絲機(jī)構(gòu)送絲→到折彎機(jī)構(gòu)折彎→最終由剪切機(jī)構(gòu)剪斷成品。對于線材中圓弧較多且半徑變化較大的零件,設(shè)計(jì)了自動換模機(jī)構(gòu),采用折彎和推彎的加工工藝,通過不同加工模位間的切換,實(shí)現(xiàn)了對形狀復(fù)雜的零件加工。
圖1 彎絲機(jī)器人整體機(jī)械結(jié)構(gòu)
控制系統(tǒng)的硬件結(jié)構(gòu)如圖2 所示,以GTS-800-PV-PCI 運(yùn)動控制卡為控制核心,負(fù)責(zé)系統(tǒng)的實(shí)時(shí)性控制任務(wù),包括軌跡插補(bǔ)運(yùn)算,復(fù)雜曲線的加工;伺服系統(tǒng)的控制、運(yùn)行狀態(tài)信號的采集與實(shí)時(shí)監(jiān)控;回零、限位及伺服報(bào)錯等功能的實(shí)現(xiàn)。以ADVANTECH-610L 型工控機(jī)為人機(jī)交互平臺,負(fù)責(zé)系統(tǒng)的非實(shí)時(shí)性任務(wù),如系統(tǒng)信息的管理、加工過程的仿真、數(shù)控代碼生成與指令發(fā)送以及實(shí)時(shí)加工狀態(tài)監(jiān)測顯示等功能;伺服系統(tǒng)采用安川(YASKWA)Σ-Ⅱ型交流伺服驅(qū)動系統(tǒng),該系統(tǒng)由交流伺服驅(qū)動器放大器,交流伺服電機(jī)和光電編碼器組成閉環(huán)控制[3]。
圖2 控制系統(tǒng)硬件結(jié)構(gòu)圖
深圳固高公司生產(chǎn)的GTS-800-PV 高性能伺服運(yùn)動控制卡,是基于DSP+FPGA 技術(shù)的多軸運(yùn)動控制卡[4],具有相應(yīng)速度快、精度高、開發(fā)周期短、編程和操作簡單的特點(diǎn),已廣泛的應(yīng)用于機(jī)器人、數(shù)控機(jī)床等多軸聯(lián)動控制的高精度伺服裝置上。該型卡可以同步控制八個(gè)運(yùn)動軸,具有梯形曲線、S 型曲線,JOG 模式點(diǎn)位運(yùn)動規(guī)劃及電子齒輪同步運(yùn)動規(guī)劃功能,并同時(shí)具有三維直線插補(bǔ)和兩維圓弧插補(bǔ)運(yùn)動規(guī)劃功能,特別適用于既有點(diǎn)位運(yùn)動控制亦有插補(bǔ)運(yùn)動控制要求的場合[5]。
伺服驅(qū)動器的控制方式一般由電流環(huán)、速度環(huán)、位置環(huán)這三個(gè)反饋控制環(huán)構(gòu)成:最內(nèi)層電流環(huán)為電機(jī)提供轉(zhuǎn)矩;中間速度環(huán)用來控制速度;最外層位置環(huán)用來控制負(fù)載位置[5]。速度控制環(huán)包含了電流環(huán)和速度環(huán),速度環(huán)對應(yīng)驅(qū)動器的速度控制模式,該模式的優(yōu)點(diǎn)是電機(jī)運(yùn)行平穩(wěn),速度不隨外界負(fù)載的變化而劇烈變化,同時(shí)為了滿足對精度的控制要求,將電動機(jī)編碼器檢測的位置信號提供給運(yùn)動控制卡,利用上位機(jī)的控制算法進(jìn)行閉環(huán)控制運(yùn)算,這樣位置環(huán)便由驅(qū)動器移到了運(yùn)動控制卡上,這樣控制卡與編碼器之間便構(gòu)成閉環(huán)控制系統(tǒng),同時(shí)調(diào)節(jié)控制卡的PID 控制參數(shù),進(jìn)一步優(yōu)化系統(tǒng)的性能。
數(shù)控系統(tǒng)能夠正常工作,軟件要包括:上位機(jī)端的CNC 用戶程序、上下位機(jī)間通訊的通訊驅(qū)動程序[6]。GTS-PV 隨卡提供了windows 系統(tǒng)下的設(shè)備驅(qū)動程序GT800.sys,同時(shí)提供了面向運(yùn)動控制卡的高級函數(shù)庫GTS.dll,該函數(shù)庫中封裝了GTS 卡的運(yùn)動控制函數(shù),用戶只需通過調(diào)用相應(yīng)的控制函數(shù),便可以發(fā)出運(yùn)動控制命令,控制器將根據(jù)控制命令的要求,自動完成軌跡規(guī)劃、安全檢測、伺服刷新等復(fù)雜運(yùn)算,計(jì)算結(jié)果轉(zhuǎn)換成模擬電壓或脈沖控制電機(jī)運(yùn)轉(zhuǎn)。
彎絲機(jī)器人控制系統(tǒng)軟件是一個(gè)多任務(wù)處理軟件,既要負(fù)責(zé)數(shù)控代碼的生成、校檢、譯碼,又要負(fù)責(zé)機(jī)器人的運(yùn)行控制,運(yùn)動狀態(tài)數(shù)字及圖形顯示,系統(tǒng)參數(shù)設(shè)置,調(diào)試診斷等任務(wù)。采用模塊化編程原理,將軟件任務(wù)整理歸類并交由若干個(gè)功能模塊承擔(dān),通過對各功能模塊的操作便可以完成相應(yīng)的軟件任務(wù)。如圖3 所示,將系統(tǒng)劃分為人機(jī)界面、系統(tǒng)配置模塊、譯碼模塊、數(shù)控內(nèi)核(主模塊)四大功能模塊以及若干輔助功能模塊。
圖3 軟件結(jié)構(gòu)
在本系統(tǒng)軟件中,人機(jī)界面主要負(fù)責(zé)完成人機(jī)對話交互、運(yùn)行參數(shù)設(shè)定、系統(tǒng)狀態(tài)顯示、文件管理等功能;系統(tǒng)配置模塊用于配置運(yùn)動控制卡參數(shù)和機(jī)器人參數(shù),并將配置好的參數(shù)保存在硬盤中,系統(tǒng)開機(jī)后自動加載;譯碼模塊負(fù)責(zé)完成數(shù)控加工程序的解釋、語法檢測、下載等;數(shù)控內(nèi)核是整個(gè)系統(tǒng)的控制核心,負(fù)責(zé)協(xié)調(diào)其它模塊的運(yùn)行,實(shí)現(xiàn)對系統(tǒng)的流程控制,同時(shí)負(fù)責(zé)異常狀態(tài)的處理。這四個(gè)主要模塊負(fù)責(zé)了系統(tǒng)的絕大部分功能的實(shí)現(xiàn),下面將著重討論這四個(gè)模塊。
(1)人機(jī)界面:系統(tǒng)的主要操作顯示界面,系統(tǒng)的絕大部分信息交互都是在此界面上完成,主要負(fù)責(zé)設(shè)定系統(tǒng)工作模式,如自動、手動、點(diǎn)動、MDI(人工數(shù)據(jù)輸入),回參考點(diǎn)、各運(yùn)動軸參數(shù)的顯示、初始化程序狀態(tài)、文件管理等。具體功能由以下3 個(gè)類實(shí)現(xiàn):
①CDlgMain。主對話框類,是系統(tǒng)的主界面對話框,承擔(dān)人機(jī)交互功能,負(fù)責(zé)打開關(guān)閉其它功能模塊窗口,并在系統(tǒng)第一次運(yùn)行時(shí)加載配置文件,初始化程序狀態(tài)。
②CDialogMonitor。監(jiān)視界面類,利用運(yùn)動控制卡提供的API 函數(shù),監(jiān)視機(jī)器人運(yùn)行狀態(tài),并實(shí)時(shí)顯示各運(yùn)動軸位置參數(shù)、狀態(tài)參數(shù)、I/O 傳感器狀態(tài)。
③CSystermDebug。系統(tǒng)測試類,測試機(jī)器人運(yùn)行性能,速度調(diào)節(jié)、手動點(diǎn)位控制與回參考點(diǎn)運(yùn)動。
在CDlgMain 類中,主要成員函數(shù)如下:
其次是CDialogMonitor 類,它繼承自CDialog 類主要成員函數(shù)如下:
其中CDialogMonitor 類和CSystemDebug 類在實(shí)現(xiàn)中都應(yīng)用了Windows 的定時(shí)器來周期性的讀取控制卡的信息,并實(shí)時(shí)的顯示到界面上。
(2)系統(tǒng)配置模塊:該模塊包括運(yùn)動控制卡參數(shù)配置和機(jī)器人參數(shù)配置,前者包括控制卡的PID 參數(shù)、軸坐標(biāo)映射、控制方式、限位、回零速度與回零方式、軟限位位置、誤差帶大小等參數(shù)設(shè)置,這些參數(shù)直接決定了系統(tǒng)的性能。后者定義的是機(jī)器人的機(jī)械結(jié)構(gòu)參數(shù)、加工模具參數(shù)、包含了機(jī)器人的全部特征,這部分參數(shù)主要影響了后續(xù)數(shù)控譯碼過程。
(3)譯碼模塊:此模塊負(fù)責(zé)根據(jù)用戶的系統(tǒng)配置,以及運(yùn)動程序的語法規(guī)則對用戶編寫的運(yùn)動程序進(jìn)行語法檢查,并進(jìn)行解釋譯碼,將源代碼指令中給出的各種信息進(jìn)行分離提取,轉(zhuǎn)換成計(jì)算機(jī)便于處理的內(nèi)部數(shù)據(jù)形式,并將程序段的內(nèi)容分成位置數(shù)據(jù)和控制指令,以一定的格式存放在相應(yīng)的存儲區(qū)域。在譯碼過程中還要完成程序段的語法檢查,若發(fā)現(xiàn)錯誤便進(jìn)行停機(jī)并做報(bào)警顯示。
譯碼模塊的基本結(jié)構(gòu)是將要識別存儲的變量存儲在一個(gè)自定義的CCNCData 類中,該類中存儲有G、M、T 代碼類型,坐標(biāo)軸信息、半徑、進(jìn)給速度等變量。因?yàn)閿?shù)控程序不是定長的,所以要求用動態(tài)數(shù)組將變量信息動態(tài)的存儲放在CCNCDate 類中,在這里使用了MFC 的CArray 類,它可以方便的管理操作數(shù)組元素,其類定義如下:typedef CArray <CCNCData,CCNCData& > CCncArray。系統(tǒng)利用譯碼函數(shù)Compile(CString SourPath,CCncArray* pAry,double* angle)對代碼進(jìn)行編譯,譯碼結(jié)果利用宏命令動態(tài)的存放到CCNCDate 類中,供軟件執(zhí)行調(diào)用,其實(shí)現(xiàn)命令如下所示:
(4)主模塊:主模塊是整個(gè)系統(tǒng)的核心,該模塊在系統(tǒng)啟動階段讀取配置文件同時(shí)初始化控制卡。在執(zhí)行狀態(tài)下主模塊調(diào)用譯碼、插補(bǔ)等功能模塊形成數(shù)控信息流,最后轉(zhuǎn)入運(yùn)動函數(shù)調(diào)度循環(huán),在這個(gè)循環(huán)中,主模塊監(jiān)視控制卡的指令緩沖區(qū)、坐標(biāo)狀態(tài)寄存器、命令狀態(tài)寄存器。根據(jù)緩沖區(qū)狀況將數(shù)控信息流程合成控制卡函數(shù)流不斷的發(fā)送運(yùn)動控制指令,經(jīng)由實(shí)時(shí)FIFO 發(fā)送到插補(bǔ)模塊執(zhí)行,并反饋命令執(zhí)行情況、系統(tǒng)坐標(biāo)等狀態(tài)信號供人機(jī)界面實(shí)時(shí)顯示,該循環(huán)控制流程如圖4 所示。
圖4 程序循環(huán)控制流程圖
本文介紹了彎絲機(jī)器人的工作原理,利用GTS800-PV 卡與伺服電機(jī)搭建了彎絲機(jī)器人的硬件系統(tǒng),研究了電機(jī)伺服控制方式;分析了軟件的總體結(jié)構(gòu)層次,采用模塊化編程手法編寫了系統(tǒng)軟件,并簡要說明了軟件各主要模塊的功能以及實(shí)現(xiàn)的方法,基本上實(shí)現(xiàn)了彎絲機(jī)器人數(shù)控系統(tǒng)的功能。目前該數(shù)控系統(tǒng)已在課題組與廈門某機(jī)床廠聯(lián)合開發(fā)的彎絲機(jī)器人上得到了良好的應(yīng)用,如圖5 所示。
圖5 采用本數(shù)控系統(tǒng)的彎絲機(jī)器人
[1]王同海. 管材塑性加工技術(shù)[M]. 北京:機(jī)械工業(yè)出版社,1998.
[2]葉志堅(jiān). 基于PMAC 數(shù)控彎絲機(jī)的研發(fā)[D]. 廈門:廈門大學(xué),2009.
[3]鄭魁敬,高建設(shè). 運(yùn)動控制技術(shù)及工程實(shí)踐[M]. 北京:中國電力出版社,2009.
[4]GTS 系列運(yùn)動控制器用戶手冊(版本1.1). 固高科技(深圳)有限公司,2011.
[5]董正凱. 基于運(yùn)動控制器的開放式數(shù)控平臺的研究[D]. 深圳:哈爾濱工業(yè)大學(xué)深圳研究生院,2010.
[6]Lin Rongkun,Yao Bin,Chen Minghui,Li Fei. Application Analysis of Servo-Control System Based on PMAC with Feedforward Control[J]. 2010 3rdInternational Conference on Machine Vision,December 28-30,2010,Hong Kong:607-610.
[7]張劍,殷蘇民. 基于運(yùn)動控制卡的開放式數(shù)控系統(tǒng)研制[J]. 機(jī)床與液壓,2003(3):170-173.