孫建業(yè) 李 強
(沈陽理工大學(xué)遼寧省高速切削工程技術(shù)研究中心,遼寧沈陽 110159)
開放式數(shù)控系統(tǒng)是當(dāng)今數(shù)控系統(tǒng)的發(fā)展趨勢,PC+運動控制器的結(jié)構(gòu)是目前實現(xiàn)開放式數(shù)控系統(tǒng)的有效、現(xiàn)實的途徑。這種基于開放式可編程運動控制器的系統(tǒng)結(jié)構(gòu)以通用微機為平臺,以PC機標(biāo)準(zhǔn)插件形式的開放式可編程運動控制器為核心,支持用戶的開發(fā)和擴展,具有上、下兩級的開放性。Delta Tau公司的可編程多軸控制器(PMAC)是這種運動控制器的典型代表。其擁有自身的CPU,同時開放包括通信端口、存儲結(jié)構(gòu)在內(nèi)的大部分地址空間、具有靈活性好、功能穩(wěn)定、可共享計算機所有資源等特點[1]。它是一個擁有高性能的伺服運動控制器,可最多控制三十二軸的同時運動。
本文以鏜銑加工中心為測試平臺,在PMAC多軸運動控制卡基礎(chǔ)上,建立開放式數(shù)控系統(tǒng),實現(xiàn)通訊和控制功能。利用Microsoft的專業(yè)開發(fā)工具Visual C++6.0,按照標(biāo)準(zhǔn)數(shù)控系統(tǒng)界面的基本要求,初步構(gòu)建了一個開放式的數(shù)控系統(tǒng)人機界面,進行了調(diào)試和驗證,效果良好。
鏜銑加工中心結(jié)合了鏜床和銑床的兩種功能于一體,可以實現(xiàn)水平和垂直2個方向的加工,一次安裝就能夠?qū)ζ?個表面的車銑、鏜孔、曲面的加工,實現(xiàn)對工件平面的銑削、鉆孔、攻絲等工序的復(fù)合式加工。使加工效率更高、精度更好,極大地提高了產(chǎn)品品質(zhì)和勞動效率。鏜銑加工中心機床結(jié)構(gòu)如圖1所示,機床分為兩個坐標(biāo)系:銑刀坐標(biāo)系與鏜刀坐標(biāo)系。銑刀垂直運動方向為Z1軸,水平運動方向為Y1軸。鏜刀水平運動方向為Z2軸,垂直運動方向為Y2與Y3軸,采用雙電動機同步控制。工作臺的運動為X軸方向,為兩個坐標(biāo)系共用。工作臺的旋轉(zhuǎn)采用液壓控制。加工時根據(jù)工藝要求選擇軸組,按照需要進行切換。
鏜銑加工中心電氣結(jié)構(gòu)如圖2所示。本系統(tǒng)采用Turbo PMAC-PCI型卡,卡自身可提供8通道軸接口。輸入與輸出模塊為PMAC提供的DTC-32IN與DTC-32OUT模塊。PMAC提供了位置轉(zhuǎn)接板ACC-8P,方便實現(xiàn)對PMAC板卡上的接口進行轉(zhuǎn)接。J7與J8是PMAC與機械驅(qū)動設(shè)備的接口,它是PMAC多軸運動控制器用來驅(qū)動伺服單元和獲取編碼器反饋信號等信息的專用接口。一個JMACH接口包含四組通道,每一組通道包括:模擬量輸出引腳、增量式脈沖編碼器反饋信號輸入引腳、相關(guān)的輸入/輸出的標(biāo)志引腳和電源引腳。該機床具有雙主軸,雙刀庫控制系統(tǒng),含6個坐標(biāo)軸,一個手搖脈沖發(fā)生器。Turbo PMAC-PCI自帶8通道軸接口,需進行擴展。ACC-24P是Delta Tau公司提供的4通道擴展附件,通過與PMAC卡上的JEXP接口及ACC-8P轉(zhuǎn)接板附件相連,可以實現(xiàn)4個軸口的擴展。
系統(tǒng)的軟件結(jié)構(gòu)以Windows為系統(tǒng)平臺,通過IPC的ISA總線插槽與PMAC連接,在VC++6.0編輯環(huán)境下調(diào)用Pcomm32.dll動態(tài)鏈接庫,分別編制不同任務(wù)的前端用戶界面程序,方便地構(gòu)造用戶操作界面,具有很大的靈活性和開放性[1]。Pcomm32.dll是Delta Tau公司提供的動態(tài)鏈接庫。包含了與PMAC進行通訊的各種方法,并將其主要函數(shù)進行分類、封裝,根據(jù)用戶需要而調(diào)用。不用直接對端口進行操作就可以完成對 PMAC硬件的操作。通過PEWIN32PRO軟件實現(xiàn)對PMAC的參數(shù)設(shè)置與調(diào)試,并且程序設(shè)計靈活迅速及可移植性好。系統(tǒng)軟件結(jié)構(gòu)如圖3所示。
鏜銑加工中心的人機界面程序主要是將數(shù)控系統(tǒng)的操作界面顯示在屏幕上,為操作者提供一個直觀的操作環(huán)境。如圖4所示,主界面設(shè)計包括程序編輯、打開程序、系統(tǒng)參數(shù)設(shè)置、手動操作、狀態(tài)顯示、自動循環(huán)、MDI模式,循環(huán)啟動與停止等。整個人機界面基于Windows環(huán)境,采用菜單式按鈕,具有很好的人機交互性[2]。
在VC程序中調(diào)用Pcomm32.dll動態(tài)鏈接庫就能完成上位機同PMAC之間的數(shù)據(jù)交換。在VC中用隱式調(diào)用的方法如下:
設(shè)定庫函數(shù)的鏈接路徑點擊菜單Project,而后點擊Setting。在彈出的窗口中找到Link分頁。在Object/library modules的欄中填寫lib文件所在的路徑默認是 C:windowssystem32pcomm32.lib。
在全局作用域中聲明導(dǎo)入函數(shù):extern“C”_declspec(dllimport)BOOL_stdcallOpenPmacDevice(DWOR-D dwDevice);函數(shù)原型:BOOL OpenPmac-Device(DWOR-D dwDevice);調(diào)用方式:OpenPmac-Device(0)。
在VC++環(huán)境中實現(xiàn)動態(tài)鏈接庫加載后,要實現(xiàn)人機界面與PMAC之間的通信,首先要在所編寫的界面初始化函數(shù)“BOOL CMyDlg::OnInitDialog()”中加入其通信函數(shù)“{OpenPmacDevice(0);}”(0代表第一塊PMAC卡),這樣就可以利用其鏈接庫的函數(shù)與PMAC進行通信。其中手動控制、參數(shù)設(shè)置等功能都可以通過函數(shù)“PmacGetResponseA(DeviceNumber,Response,255,“String”)”來實現(xiàn),只要改變 String 字符串的內(nèi)容發(fā)送不同的指令,如設(shè)置電動機1正轉(zhuǎn),將String替換為“#1J+”。若要設(shè)置PMAC參數(shù),可通過以下函數(shù)實現(xiàn):
String為需要改變的變量與賦值,當(dāng)PMAC中的變量值被改變后,需發(fā)送一個“SAVE”命令進行保存,否則重啟時變量的值將恢復(fù)之前的狀態(tài)。
位置與速度的實時顯示,這里利用了Timer定時器控件,同時將函數(shù) PmacGetResponseA(Device-Number,Response,255,“String”)添加到該定時器的WM-TIMER消息處理函數(shù)OnTimer()中,其中String為PMAC中地址寄存器Mxx66或速度寄存器Mxx61(xx為電動機號),將讀取到的數(shù)值經(jīng)過換算實時反饋到界面上,并定時更新。
PMAC提供了許多的在線指令供調(diào)試和控制,其中“LIST PE”指令為列出正在執(zhí)行的程序行。在Timer的定時器的WM-TIMER消息處理函數(shù)OnTimer()中加入“PmacGetResponseA(0,Response,255,“LIST PE”)”函數(shù)。定時從PMAC中傳回正在執(zhí)行的程序行并存儲在Response中,給編輯框添控件加變量m_edit,然后對編輯框進行行列索引,定義“int charIndex=m_edit.LineIndex- (row)+column;”。使用 if語句進行判斷,如果Response中的值與上一次不同,則令當(dāng)前行數(shù)row++,否則不變。通過函數(shù)“m_edit.SetSel(charIndex,charIndex);”改變光標(biāo)的位置,讓其指向當(dāng)前執(zhí)行的程序行,這樣就實現(xiàn)了程序跟蹤的功能。
該鏜銑加工中心為雙軸組系統(tǒng),每一個軸組都有一個獨立的坐標(biāo)系,在加工時我們要根據(jù)要求進行選擇。所以在PMAC中我們定義兩個坐標(biāo)系&1與&2(其中&為PMAC的坐標(biāo)系選址指令),將&1定義為鏜刀坐標(biāo)系,&2定義為銑刀坐標(biāo)系,將電動機分配到所對應(yīng)的軸上。其中工作臺的移動方向的電動機為兩坐標(biāo)系共用。在加工時先選擇坐標(biāo)系然后再編寫加工程序。在人機界面上,編寫程序前要先注明是T(鏜)還是X(銑)。如果為T,那么所編寫的程序?qū)⒈蛔詣颖4嬖冢?坐標(biāo)系下,為X將被保存在&2坐標(biāo)系下。在加工時自動執(zhí)行所選的坐標(biāo)系相對應(yīng)的程序。在兩軸組間增加互鎖功能,只有停止?fàn)顟B(tài)才能進行切換。
鏜銑加工中心的鏜刀升降機構(gòu)采用雙電動機驅(qū)動控制,所以在加工過程中要涉及電動機的同步功能的實現(xiàn)。由于升降機構(gòu)的的運動方式主要分為自動運行、點動運行、回零操作3種,每種運動方式各有其特殊性,所以在實現(xiàn)電動機同步過程中采用不同的方法。
將兩臺電動機分配給同一個軸,這樣在程序中單個軸的運動將給復(fù)合的電動機以完全相同命令,用這種方式協(xié)調(diào)并行的電動機來實現(xiàn)鏜刀升降機構(gòu)的電動機的同步控制,這時候的同步誤差為兩個軸的定位精度之和。
點動運行有兩種實現(xiàn)方式:一種是先設(shè)置一個虛擬軸,然后采用兩軸跟隨一個虛擬軸的方式,當(dāng)用戶啟動點動命令時,發(fā)出虛擬軸運動命令,釋放點動按鈕時,終止虛擬軸運動,這樣既可實現(xiàn)兩臺電動機的同步點動功能[3]。另一種可以通過PLC程序設(shè)置當(dāng)該軸的電動按鈕被按下時,向PMAC發(fā)送在線指令“COMMAND‘#1J+#2J+’”,此時兩臺電動機將同時向正向移動。當(dāng)按鈕被釋放時,向PMAC發(fā)送在線指令“COMMAND^A”,兩臺電動機將同時停止運動。
回零控制在機床操作中比較重要。在回零過程中,可先將其中一臺電動機作為主電動機進行回零,從電動機進行跟隨運動,在主電動機回零完畢后,將主電動機作為從電動機,從電動機作為主電動機再進行二次回零。從而減小同步誤差,消除因從電動機滯后在兩臺電動機間產(chǎn)生的扭轉(zhuǎn)力矩,保證系統(tǒng)的同步性能。
由于兩臺電動機都是由單獨的伺服系統(tǒng)驅(qū)動,彼此之間是相互獨立的單元。在同步過程中極有可能因外部干擾等原因而引起的位置不同步現(xiàn)象,而造成伺服性能下降,機械結(jié)構(gòu)的損壞。為了避免該現(xiàn)象的發(fā)生,可通過電動機跟隨誤差限制來進行調(diào)整,若超出允許的誤差范圍則及時進行處理。
本文針對特定的鏜銑加工中心平臺,采用PMAC多軸可編程運動控制器,研制了開放式數(shù)控系統(tǒng)。以VC++6.0為平臺建立人機交互界面便于操作,實現(xiàn)通訊與控制功能,并根據(jù)機床的結(jié)構(gòu)要求實現(xiàn)軸組切換,電動機的同步控制功能。通過調(diào)整相應(yīng)參數(shù),確保了系統(tǒng)響應(yīng)速度與控制精度。
[1]白海清,彭玉海,何寧.基于PMAC的數(shù)控系統(tǒng)軟件開發(fā)研究[J].機床與液壓.2007,35(2):59-61.
[2]張冰蔚,黃彬,王佳.基于PMAC的活塞車床開放式數(shù)控系統(tǒng)[J].機電一體化,2006(1).
[3]王亞軍,陳東生,蒲潔,等.雙電動機驅(qū)動升降機構(gòu)運動實時同步控制技術(shù)[J].組合機床與自動化加工技術(shù).2009(9):60-62.
[4]馬永波,贠超,劉相權(quán),等.基于PMAC的自動化藥房出藥升降機的同步控制[J].機械工程與自動化,2008(3):122-124,128.
[5]PMAC用戶手冊[Z].北京鈞義志成科技發(fā)展有限責(zé)任公司.
[6]PMAC/PMAC2 Software Reference Manual[Z] .DEL TATAU Data Systems,Inc.2003.
[7]DELTA TAU Data Sys tem Inc.PMAC USER’S MANUAL[M].USA:DELTA TAU Data Sys temInc,1999.