郭 鼓,李樹軍,徐永新,楊 凱,金益韓
(西北工業(yè)大學(xué) 機(jī)電學(xué)院,西安 710072)
隨著計(jì)算機(jī)集成制造技術(shù)的迅猛發(fā)展,開放化、集成化與模塊化已成為數(shù)控系統(tǒng)的重要特性。開放式數(shù)控系統(tǒng)具有良好的軟硬件重構(gòu)特性,更能有效地滿足當(dāng)今市場的需求,已成為數(shù)控系統(tǒng)發(fā)展的主要趨勢。PC機(jī)+可編程運(yùn)動(dòng)控制器作為開放式數(shù)控系統(tǒng)的一種,它支持用戶的開發(fā)和擴(kuò)展,具有上、下兩級開放的特性,結(jié)合PC機(jī)友好人機(jī)界面和可編程運(yùn)動(dòng)控制器強(qiáng)大的控制計(jì)算能力,更能彌補(bǔ)單一模式在開放式數(shù)控系統(tǒng)設(shè)計(jì)中的不足[1,2]。
本開放式數(shù)控系統(tǒng)采用上述組成模式,主要由工業(yè)控制計(jì)算機(jī)(IPC)+多軸運(yùn)動(dòng)控制卡(PMAC)組成,再配有交流伺服電機(jī)、伺服驅(qū)動(dòng)器、編碼器和接近開關(guān)等構(gòu)成一個(gè)模塊化數(shù)控系統(tǒng)。
本開放式數(shù)控系統(tǒng)是針對一套三坐標(biāo)移動(dòng)測試實(shí)驗(yàn)臺(tái)而設(shè)計(jì)的。該實(shí)驗(yàn)臺(tái)共有X、Y、Z三軸。其中,X、Z兩軸在水平方向相互垂直,X軸為交流伺服電機(jī)剛性連接滾珠絲杠;Z軸通過一級同步帶輪進(jìn)行1:2減速,同步帶輪剛性連接滾珠絲杠;Y軸為豎直方向且為龍門結(jié)構(gòu)、雙邊驅(qū)動(dòng),電機(jī)剛性連接滾珠絲杠。為保證Y軸雙電機(jī)同步控制,選用美國DELTA TAU公司推出的開放式可編程運(yùn)動(dòng)控制卡——PMAC(programmable multiaxes controller)。該卡具有運(yùn)動(dòng)控制、內(nèi)務(wù)處理、離散控制、同上位機(jī)交互等基本功能,內(nèi)部使用一片Motorola DSP 56303數(shù)字信號(hào)處理芯片,速度、分辨率、帶寬等指標(biāo)遠(yuǎn)優(yōu)于一般的控制器[3]。由于PMAC的操作界面為原始的DOS界面,不便于人機(jī)交互,在本數(shù)控系統(tǒng)中選用工業(yè)控制計(jì)算機(jī)(IPC)作為終端實(shí)時(shí)顯示,有效地解決了上述問題。另外,IPC與PMAC均具有自己的CPU,它們組成主從式控制結(jié)構(gòu):IPC負(fù)責(zé)人機(jī)交互和控制系統(tǒng)的實(shí)時(shí)監(jiān)控等工作, PMAC完成電機(jī)運(yùn)轉(zhuǎn)的控制、編碼器信號(hào)的實(shí)時(shí)反饋、運(yùn)動(dòng)軌跡的計(jì)算、回零和限位等細(xì)節(jié)工作,由此加快了數(shù)據(jù)的處理速度,提高了系統(tǒng)的工作效率。該數(shù)控系統(tǒng)硬件結(jié)構(gòu)原理圖如圖1所示。
系統(tǒng)的通訊速度由PMAC卡與上位機(jī)(IPC)之間的通訊方式?jīng)Q定。PMAC卡與上位機(jī)(IPC)之間的通訊方式分為RS232串口通訊和Ethernet接口通訊,后者相對前者具有較高的傳輸速度和較遠(yuǎn)的傳輸距離,本數(shù)控系統(tǒng)采用后者,以提高數(shù)據(jù)的傳輸效率,更有效地實(shí)現(xiàn)實(shí)時(shí)反饋。
機(jī)械結(jié)構(gòu)的運(yùn)動(dòng)執(zhí)行體由交流伺服電機(jī)及其配套伺服單元組成。在由上述XYZ三軸組成的立體空間中,Y軸完成豎直方向的運(yùn)動(dòng)任務(wù)。為防止Y方向負(fù)載在重力作用下下滑,Y軸電機(jī)必須帶有制動(dòng)器。
下位機(jī)控制系統(tǒng)的核心采用PMAC卡,它控制交流伺服電機(jī)、伺服驅(qū)動(dòng)器和各軸接近開關(guān)等相關(guān)單元的工作。其設(shè)計(jì)內(nèi)容主要包括:交流伺服電機(jī)試運(yùn)行、交流伺服電機(jī)PID調(diào)節(jié)和交流伺服電機(jī)運(yùn)動(dòng)程序設(shè)計(jì)。其硬件連接實(shí)物圖如圖2所示。
圖1 數(shù)控系統(tǒng)硬件結(jié)構(gòu)原理圖
圖2 硬件連接實(shí)物圖
在用PMAC卡調(diào)節(jié)伺服電機(jī)之前,必須使用伺服驅(qū)動(dòng)器對各軸的伺服電機(jī)進(jìn)行試運(yùn)行,為后續(xù)調(diào)節(jié)工作做好準(zhǔn)備。
驅(qū)動(dòng)器試運(yùn)行之前,分別將驅(qū)動(dòng)器參數(shù)Pn50A和Pn50B設(shè)置為2100、6543,進(jìn)行手動(dòng)調(diào)試。通過驅(qū)動(dòng)器面板上的操作按鍵換到Fn002參數(shù),進(jìn)入JOG模式,以驅(qū)動(dòng)器默認(rèn)速度(Pn304=500r/min)進(jìn)行電機(jī)的正反轉(zhuǎn)測試[4]。在電機(jī)帶動(dòng)絲杠轉(zhuǎn)動(dòng)正常的條件下,將Pn304分別調(diào)至200r/min、100r/min、50r/min和20r/min對電機(jī)試運(yùn)行,檢測機(jī)械結(jié)構(gòu)是否存在安裝問題。本系統(tǒng)在調(diào)試過程中,利用該方法發(fā)現(xiàn)了X軸絲杠螺母副在與負(fù)載連接時(shí)預(yù)緊力過緊致使絲杠在低速時(shí)無法轉(zhuǎn)動(dòng),進(jìn)而造成電機(jī)瞬間發(fā)熱等問題。
確認(rèn)電機(jī)轉(zhuǎn)動(dòng)一切正常后,進(jìn)入下位機(jī)控制系統(tǒng)設(shè)計(jì)過程中最核心的環(huán)節(jié)——PMAC調(diào)節(jié)交流伺服電機(jī)。將驅(qū)動(dòng)器參數(shù)Pn50A和Pn50B分別設(shè)置為8100、6548,進(jìn)行PMAC卡調(diào)試。
為了使系統(tǒng)獲得良好的穩(wěn)態(tài)特性和動(dòng)態(tài)特性,需要對系統(tǒng)的PID位置控制環(huán)進(jìn)行校正和調(diào)整。PID控制器是比例、積分微分校正裝置。比例增益為系統(tǒng)提供剛性,其大小決定系統(tǒng)的響應(yīng)速度,若該值太大會(huì)引起電機(jī)使能震動(dòng);積分增益可用消除系統(tǒng)的穩(wěn)態(tài)誤差,若該值較小會(huì)致使系統(tǒng)跟隨誤差波動(dòng)較大;微分增益是為系統(tǒng)提供穩(wěn)定性的阻尼項(xiàng),能改善系統(tǒng)的動(dòng)態(tài)特性,而該值過大會(huì)引起噪聲[5,6]。PID調(diào)節(jié)原理圖如圖3所示。
PMAC卡可用通過PWEIN32PRO軟件中的Pmac tuning pro非常方便地調(diào)節(jié)其PID參數(shù),獲得良好的控制性能。使用在線命令使電機(jī)處于閉環(huán)狀態(tài),可對各個(gè)參數(shù)值進(jìn)行調(diào)整,同時(shí)可通過電機(jī)的階躍響應(yīng)曲線和拋物線響應(yīng)曲線查看系統(tǒng)的穩(wěn)態(tài)特性和動(dòng)態(tài)特性。階躍響應(yīng)曲線反映電機(jī)的響應(yīng)速度和穩(wěn)態(tài)特性,拋物線響應(yīng)曲線反映電機(jī)的跟隨誤差是否在可調(diào)范圍內(nèi)。圖4、圖5為Y電機(jī)的響應(yīng)曲線。
圖3 PID調(diào)節(jié)原理圖
圖4 階躍響應(yīng)曲線
圖5 拋物線響應(yīng)曲線
應(yīng)本開放式數(shù)控系統(tǒng)的設(shè)計(jì)要求——交流伺服電機(jī)既能夠按照0.01mm、0.05mm、0.1mm、1.0mm和10.0mm的步進(jìn)距離點(diǎn)動(dòng),也能實(shí)現(xiàn)連續(xù)運(yùn)動(dòng)。其中,交流伺服電機(jī)的點(diǎn)動(dòng)可由PMAC編寫運(yùn)動(dòng)程序?qū)崿F(xiàn),連續(xù)轉(zhuǎn)動(dòng)可通過給電機(jī)發(fā)送在線命令實(shí)現(xiàn)。
PMAC運(yùn)動(dòng)程序是在PWEIN32PRO軟件中編寫[7],其主要界面如圖6所示。
圖6 運(yùn)動(dòng)程序編寫界面
運(yùn)動(dòng)程序的編寫主要包括定義坐標(biāo)系、指定坐標(biāo)軸、確定軸系數(shù)和確定運(yùn)動(dòng)模式。PMAC運(yùn)動(dòng)程序中最多可定義8個(gè)坐標(biāo)系,因此在每段運(yùn)動(dòng)程序的開頭必須定義坐標(biāo)系,否則運(yùn)動(dòng)程序不執(zhí)行。在該數(shù)控系統(tǒng)中只有一個(gè)坐標(biāo)系,定義為&1。將XYZ軸四個(gè)電機(jī)(Y軸分為Y1和Y2兩個(gè)電機(jī))分別定義為:1號(hào)電機(jī)(#1)、2號(hào)電機(jī) (#2)、3號(hào)電機(jī)(#3)和 4號(hào)電機(jī)(#4),在PMAC中將Y軸的兩個(gè)電機(jī)定義為:#2->Y,#3->Y,使得兩個(gè)電機(jī)都跟隨虛擬軸Y軸轉(zhuǎn)動(dòng),便完成Y軸雙電機(jī)的同步控制。軸系數(shù)是電機(jī)帶動(dòng)負(fù)載直線運(yùn)動(dòng)1mm電機(jī)編碼器的脈沖數(shù),主要由編碼器分頻脈沖數(shù)、螺距和傳動(dòng)比決定,其計(jì)算公式如(1)式所示。
PMAC運(yùn)動(dòng)程序中有絕對運(yùn)動(dòng)模式、增量運(yùn)動(dòng)模式、直線運(yùn)動(dòng)、圓弧運(yùn)動(dòng)和曲線運(yùn)動(dòng)等,因此在運(yùn)動(dòng)程序前必須確定執(zhí)行機(jī)構(gòu)的運(yùn)動(dòng)軌跡選擇合適的運(yùn)動(dòng)模式。在本數(shù)控系統(tǒng)中選用直線運(yùn)動(dòng)、絕對模式。其運(yùn)動(dòng)程序主要框架為:
CLOSE
DEL GAT
&n
#{motor}->{ 軸系數(shù) }{axis}
OPEN PROG m CLEAR
CLOSE
使用在線命令” &nBmR”執(zhí)行運(yùn)動(dòng)程序m。
在該開放式數(shù)控系統(tǒng)中,上位機(jī)需要同下位機(jī)進(jìn)行PMAC通訊。上位機(jī)發(fā)送控制指令給下位機(jī),下位機(jī)采集完數(shù)據(jù)后需要上傳給上位機(jī),上位機(jī)經(jīng)過轉(zhuǎn)換、判斷,最終在上位界面中實(shí)時(shí)顯示各軸的運(yùn)動(dòng)狀態(tài)。該數(shù)控系統(tǒng)借助Windows的友好人機(jī)界面,在Windows XP操作系統(tǒng)平臺(tái)下,以VC++6.0編譯器為基本軟件開發(fā)和調(diào)試工具,在Delta Tau公司提供的PComm32通訊函數(shù)庫及其驅(qū)動(dòng)程序完成上位機(jī)軟件的編寫,其人機(jī)界面如圖7所示。PComm32通訊函數(shù)庫是上位機(jī)與下位機(jī)之間通訊的橋梁,在VC環(huán)境下對PMAC數(shù)控系統(tǒng)進(jìn)行開發(fā),必須將PComm32PRO中的“PComm32.dll”加載到IPC內(nèi)存當(dāng)中,以便調(diào)用PComm32PRO中的任意函數(shù)[8]。
圖7 人機(jī)界面
該人機(jī)界面主要包括軸參數(shù)實(shí)時(shí)監(jiān)控模塊、軸控制參數(shù)模塊、界面切換和通斷模塊。軸參數(shù)實(shí)時(shí)監(jiān)控模塊完成各軸電機(jī)狀態(tài)實(shí)時(shí)顯示的功能。通過軸控制參數(shù)模塊可以控制電機(jī)的使能、啟動(dòng)、停止和回零,并且按照所選擇的參數(shù)(坐標(biāo)軸、正負(fù)向、運(yùn)動(dòng)模式、步進(jìn)距離)完成相應(yīng)的運(yùn)動(dòng)。
在該上位機(jī)軟件中,通過函數(shù)OpenPmacDevice(DWORD dwDevice)連接PMAC卡,建立IPC與PMAC之間的通訊,與之成對使用的是BOOL ClosePmacDevice(DWORD dwDevice) 函數(shù),在退出程序之前必須使用該函數(shù)斷開IPC與PMAC之間的通訊,以便釋放IPC內(nèi)存空間。上位機(jī)與下位機(jī)通訊中最主要的函數(shù)是PmacGetResponseA(),該函數(shù)既能發(fā)送指令給下位機(jī),又能從下位機(jī)接受上傳的數(shù)據(jù),如:PmacGetResponseA(0, buf2,255,”&1B1R”)發(fā)送在線命令使PMAC卡執(zhí)行5號(hào)運(yùn)動(dòng)程序,PmacGetResponseA(0, buf2, 255,M166)取PMAC寄存器M166中的值。
在MFC中設(shè)置一個(gè)定時(shí)器,設(shè)定每隔50ms觸發(fā)一次,同時(shí)定義該定時(shí)器的WM-TIMER消息處理函數(shù)OnTimer(),將讀取到的數(shù)值實(shí)時(shí)反饋到界面上,此時(shí)各電機(jī)的實(shí)時(shí)速度和實(shí)時(shí)位置的反饋值將在編輯框中每50ms更新一次[9,10]。
為進(jìn)一步完善該開放式數(shù)控系統(tǒng),便于遠(yuǎn)近程切換,本文采用以C8051F060為主控芯片配套使用MAX3488芯片、LED液晶顯示屏、RS422-RS232轉(zhuǎn)換器等設(shè)計(jì)了一個(gè)手持控制器。該手持控制器應(yīng)具有同上述人機(jī)界面相同的功能,精確控制各電機(jī)的啟停和運(yùn)轉(zhuǎn)。
手持控制器的功能主要通過C8051F060單片機(jī)編程來實(shí)現(xiàn),再經(jīng)MAX3488芯片將單片機(jī)發(fā)送的TTL電平信號(hào)轉(zhuǎn)換成差分信號(hào),完成遠(yuǎn)距離傳輸,最后經(jīng)過RS422-RS232轉(zhuǎn)換器轉(zhuǎn)換成上位機(jī)可識(shí)別的RS232電平信號(hào)。而手持控制器設(shè)計(jì)的難點(diǎn)是C8051F060單片機(jī)與VC之間的通訊,即如何搭建手持控制器與電機(jī)之間的橋梁。其中,單片機(jī)與VC之間的通訊可以通過對MSComm控件編寫串口通訊代碼實(shí)現(xiàn);手持控制器數(shù)據(jù)的接受和發(fā)送可以在MSComm控件的屬性里選擇COM端口、設(shè)置波特率、校驗(yàn)位和數(shù)據(jù)位等相關(guān)參數(shù),然后通過串口事件消息處理函數(shù)OnComm()實(shí)現(xiàn)。
針對特定的三維移動(dòng)測試實(shí)驗(yàn)機(jī)構(gòu),本文設(shè)計(jì)并開發(fā)了一套開放式數(shù)控系統(tǒng)。該數(shù)控系統(tǒng)核心采用PMAC多軸可編程運(yùn)動(dòng)控制器,完成Y軸雙電機(jī)同步控制,并使用PMAC自帶的PID控制算法,自主調(diào)整各個(gè)參數(shù),確保了系統(tǒng)響應(yīng)速度快、控制精度高,獲得了良好的穩(wěn)態(tài)性能和動(dòng)態(tài)品質(zhì)。以VC++6.0為平臺(tái)設(shè)計(jì)的人機(jī)交互界面便于操作,構(gòu)建了完善的控制系統(tǒng)。
[1] 白海清. 基于PMAC的數(shù)控試驗(yàn)臺(tái)機(jī)械系統(tǒng)設(shè)計(jì)與軟件開發(fā)[D]. 西安理工大學(xué), 2007.
[2] 葉志堅(jiān). 基于PMAC的五軸數(shù)控彎絲機(jī)系統(tǒng)的研發(fā)[D].廈門大學(xué), 2009.
[3] PMAC用戶手冊[M]. 北京鈞義志成科技發(fā)展有限責(zé)任公司.
[4] AC伺服驅(qū)動(dòng)器∑-∨系列用戶手冊, 設(shè)定篇[M]. 北京鈞義志成科技發(fā)展有限責(zé)任公司.
[5] 高靜, 麥繼平. 基于PMAC的直線電機(jī)PID控制性能的研究[J]. 儀器儀表用戶, 2006, 6.
[6] 陶永華. 新型PID控制及其應(yīng)用(第2版)[M]. 北京: 機(jī)械工業(yè)出版社, 2002.
[7] Pewin32 PRO SOFTWARE REFERENCE MANUAL [M].DELTA TAU Data Systems, Inc, 2002.
[8] PCOMM32PRO SOFTWARE REFERENCE MANUAL[M].DELTA TAU DataSystem, Inc, 2002.
[9] 鄭阿奇. Visual C++教程[M]. 北京: 清華大學(xué)出版社,2008.
[10] 宋坤, 劉銳寧, 李偉明. MFC程序開發(fā)參考大全[M]. 北京: 人民郵電出版社, 2007.