摘 要:針對(duì)數(shù)控技術(shù)中的同步控制要求,設(shè)計(jì)了一種基于PC工控機(jī)的位置伺服同步控制系統(tǒng),并描述了其控制軟件的設(shè)計(jì)方法及關(guān)鍵技術(shù)。
關(guān)鍵詞:工控機(jī);位置控制;長(zhǎng)駐內(nèi)存;電流漂移
當(dāng)前,精密化、自動(dòng)化、智能化和柔性化是數(shù)控技術(shù)的發(fā)展方向。其關(guān)鍵技術(shù)之一的多軸聯(lián)動(dòng)數(shù)控技術(shù),日益引起國(guó)內(nèi)外有關(guān)學(xué)者的普遍重視和廣泛研究。但是如何更方便地實(shí)現(xiàn)高精度、高效率、高柔性的多軸聯(lián)動(dòng)還是一個(gè)有待繼續(xù)探索的課題。目前,多軸聯(lián)動(dòng)系統(tǒng)大多采用主從式結(jié)構(gòu),主機(jī)完成系統(tǒng)的管理和產(chǎn)生指令,而各軸控制則由各單獨(dú)從機(jī)控制單元完成[1,2]。以PC工控機(jī)為核心的控制系統(tǒng),集管理與控制為一體,運(yùn)用PCL833、PCL728兩塊功能板,可同時(shí)實(shí)現(xiàn)2臺(tái)伺服電機(jī)間同步傳動(dòng)的柔性化控制 ,使之滿足數(shù)控機(jī)床的多軸聯(lián)動(dòng)要求。
1系統(tǒng)整體結(jié)構(gòu)
系統(tǒng)整體結(jié)構(gòu)簡(jiǎn)圖,如圖1所示。本系統(tǒng)的控制回路分?jǐn)?shù)字和模擬部分2部分,數(shù)字部分由1臺(tái)PC工控機(jī)和兩塊硬件功能接口板組成。PC工控機(jī)主要完成2臺(tái)電機(jī)的位置控制調(diào)節(jié)運(yùn)算;硬件功能板1為計(jì)數(shù)器,實(shí)現(xiàn)對(duì)兩伺服電機(jī)反饋脈沖的檢測(cè)、倍頻辯相和計(jì)數(shù)功能;硬件功能板2為D/A板,實(shí)現(xiàn)對(duì)2臺(tái)伺服電機(jī)的控制。
2 硬件接口電路
PCL833是由研華公司生產(chǎn)的24位可逆計(jì)數(shù)器[3],是專為位置和速度控制設(shè)計(jì)的計(jì)數(shù)器接口板,能夠?qū)φ惠斎牒蛿?shù)字輸入進(jìn)行計(jì)數(shù),具有如下特點(diǎn):
(1) 3個(gè)24位可逆計(jì)數(shù)器;
(2) 最大脈沖輸入頻率2.4MHz;
(3) 計(jì)數(shù)方式為脈沖/方向計(jì)數(shù)和正反向計(jì)數(shù);
(4) *1、*2、*4 3種倍頻方式;
(5) 具有對(duì)9個(gè)不同中斷源中斷控制;
(6) 光電隔離最大能達(dá)到2500V;
(7) 4級(jí)數(shù)字濾波;
(8) 可編程中斷時(shí)間;
(9) 適合IBM PC/AT 和兼容機(jī)(ISA總線)。
3個(gè)24位可逆計(jì)數(shù)器既可單獨(dú)使用,也可級(jí)聯(lián)使用。最大可實(shí)現(xiàn)48位計(jì)數(shù)器方式。并可根據(jù)要求設(shè)置為增量式和絕對(duì)式。具有溢出中斷和溢出計(jì)數(shù)等功能。在本系統(tǒng)中,為保證計(jì)數(shù)器讀數(shù)準(zhǔn)確、不丟步,采用了24位計(jì)數(shù)方式,同時(shí)要求計(jì)數(shù)器進(jìn)行絕對(duì)式循環(huán)計(jì)數(shù)。接口板1占有計(jì)算機(jī)連續(xù)16個(gè)映射地址,根據(jù)PC計(jì)算機(jī)映射地址的分配情況,設(shè)置0X200~0X215連續(xù)16個(gè)映射地址給計(jì)數(shù)器。
PCL728是由研華公司生產(chǎn)的12位D/A轉(zhuǎn)換器[4],該轉(zhuǎn)換器針對(duì)惡劣的工況設(shè)計(jì)的12位雙通道D/A輸出卡。每一通道完全光電隔離,并且獨(dú)立于系統(tǒng)地,可設(shè)置為以下范圍輸出:0~5V、0~10V、±5V、±10V、4~20mA、0~20mA。根據(jù)伺服電機(jī)的控制要求,設(shè)置為雙極性±10V輸出。D/A輸出占有4個(gè)映射地址,分別為0x2c0、0x2c1、0x2c2和0x2c3 4個(gè)連續(xù)地址。
伺服電機(jī)及其驅(qū)動(dòng)系統(tǒng)采用日本安川公司的產(chǎn)品,電機(jī)型號(hào)為BMH0955N11A1L,光電編碼器為伺服電機(jī)隨機(jī)攜帶,3072脈沖/轉(zhuǎn)。
3 PC機(jī)實(shí)時(shí)控制算法軟件設(shè)計(jì)與實(shí)現(xiàn)
在本系統(tǒng)中實(shí)現(xiàn)2伺服電機(jī)同步跟蹤的控制。2電機(jī)分別定義為主電機(jī)和從電機(jī),由該工控機(jī)同時(shí)完成對(duì)2臺(tái)伺服電機(jī)的控制。
采用工控機(jī)中的8253零計(jì)數(shù)器來(lái)實(shí)現(xiàn)定時(shí)中斷,并通過(guò)其控制的0x1cH中斷相量中安裝中斷服務(wù)程序。8253零計(jì)數(shù)器的默認(rèn)設(shè)置為每秒產(chǎn)生18.2次中斷,即每發(fā)生一次中斷間隔周期為55ms。這樣,可根據(jù)公式interrupt——hige=sample——time×1193180%256000和interrupt——low=sample——time×1193180/256000獲得計(jì)數(shù)器預(yù)置數(shù),通過(guò)修改該計(jì)數(shù)器預(yù)置值,可獲得不同的中斷時(shí)間。
整個(gè)系統(tǒng)軟件由2個(gè)模塊組成:位置鎖定模塊和控制模塊。當(dāng)系統(tǒng)采用了數(shù)?;旌辖Y(jié)構(gòu)時(shí),即使沒有輸入,也會(huì)因各種干擾的存在,引起模擬電路中產(chǎn)生電流“零漂”,從而將影響到控制效果。位置鎖定模塊即為解決上述問(wèn)題而設(shè)計(jì),該模塊的中斷服務(wù)程序與控制模塊的中斷服務(wù)程序占有同一中斷相量,運(yùn)用TSR(Terminate and Resident ),即長(zhǎng)駐內(nèi)存技術(shù)[5],將其長(zhǎng)駐于內(nèi)存中。當(dāng)主控制模塊未運(yùn)行時(shí),該鎖定模塊通過(guò)定時(shí)中斷自動(dòng)激活,采用零輸入負(fù)反饋控制策略,實(shí)現(xiàn)對(duì)伺服電機(jī)零位置的鎖定。當(dāng)有任務(wù)時(shí),運(yùn)行主控制模塊,此時(shí)該模塊的中斷服務(wù)程序的入口地址將取代鎖定模塊中斷服務(wù)程序的入口地址,獲得對(duì)伺服電機(jī)的控制權(quán)。任務(wù)結(jié)束后,退出主控制模塊,位置鎖定模塊將重新收回其控制權(quán),從而使伺服電機(jī)始終處于閉環(huán),有效地保證了系統(tǒng)的工作性能。
實(shí)際設(shè)計(jì)中,鎖定模塊采用了C語(yǔ)言和匯編語(yǔ)言混合編程,控制方案采用簡(jiǎn)單的零輸入比例控制。該模塊流程圖,如圖2所示。比例系數(shù)Kp=0.4,中斷采樣時(shí)間與主控制模塊采用相同時(shí)間,均為4ms。整個(gè)程序僅占560bit,對(duì)主控制模塊或其他模塊的運(yùn)行幾乎沒有影響,但對(duì)伺服電機(jī)的位置漂移卻獲得了明顯的改善,位置偏差始終保持在±1脈沖內(nèi)。

控制模塊的主程序流程圖,如圖3(a)所示。中斷服務(wù)子程序流程圖,如圖3(b)所示。主程序完成寄存器、定時(shí)器初始化,定義控制變量,顯示輸入輸出,數(shù)據(jù)的存貯,打印等功能;中斷服務(wù)子程序則主要完成對(duì)2臺(tái)伺服電機(jī)的控制。在控制策略上對(duì)主電機(jī)采用簡(jiǎn)單的PI控制,而從動(dòng)電機(jī)采用了模糊-PID和前饋微分控制構(gòu)成的復(fù)合控制,運(yùn)用C語(yǔ)言和匯編語(yǔ)言混合編程。復(fù)合控制充分運(yùn)用模糊控制和傳統(tǒng)PID控制各自的優(yōu)點(diǎn),采用模糊控制和PID控制相結(jié)合的控制模式。通過(guò)查詢模糊控制表,根據(jù)系統(tǒng)處于不同狀態(tài)和對(duì)控制過(guò)程不同時(shí)刻的不同要求,得到比例\Kp、積分Kd、微分K\3系數(shù)及前饋微分系數(shù)K1,兼顧控制系統(tǒng)的動(dòng)、靜態(tài)等多項(xiàng)性能指標(biāo),達(dá)到預(yù)期目的。
軟件設(shè)計(jì)要點(diǎn)如下:
(1) 駐留函數(shù)。長(zhǎng)駐內(nèi)存函數(shù)keep(),將程序駐留在內(nèi)存中,并通過(guò)熱鍵或其它方式進(jìn)行激活。函數(shù)括號(hào)內(nèi)為該程序所需字節(jié)數(shù),如本軟件中的位置鎖定模塊,需560bit,這樣可寫為keep(560)。
(2) 在計(jì)數(shù)器采樣子程序和D/A輸出子程序的設(shè)計(jì)中,為了縮短運(yùn)行讀取計(jì)數(shù)器和輸出D/A數(shù)據(jù)時(shí)間,提高運(yùn)算效率,運(yùn)用了結(jié)構(gòu)體和公用體,如下所示:

(3) 溢出判斷子程序。為保證計(jì)數(shù)器的計(jì)數(shù)準(zhǔn)確,要求計(jì)數(shù)器進(jìn)行絕對(duì)式循環(huán)計(jì)數(shù),這樣必然會(huì)產(chǎn)生溢出現(xiàn)象。因此,在每次采樣后都要對(duì)計(jì)數(shù)器是否溢出進(jìn)行判斷。計(jì)數(shù)器由于采用24位計(jì)數(shù)方式,分3次進(jìn)行讀取,若將24位全讀出后再進(jìn)行判斷,則勢(shì)必增加中斷程序運(yùn)行時(shí)間。實(shí)際應(yīng)用中,采用了高八位判斷方式。由于采用的編碼器為4096脈沖/轉(zhuǎn),伺服電機(jī)的最高速度為600r/min,采樣時(shí)間為4ms。因此,最高位的2次采樣之差絕對(duì)值不可能大于255,否則,為溢出。若本次采樣高位值與前次采樣值之差為255,則說(shuō)明計(jì)數(shù)器下溢;若本次采樣高位值與前次采樣值之差為-255,則說(shuō)明計(jì)數(shù)器下溢。
主電機(jī)采用恒速控制,從動(dòng)電機(jī)進(jìn)行位置跟蹤時(shí),采用常規(guī)PID控制及復(fù)合控制跟蹤特性曲線的比較圖,如圖4所示。從圖中可以看出,與常規(guī)PID控制比較,復(fù)合控制具有響應(yīng)速度快等優(yōu)點(diǎn)。說(shuō)明該控制策略是不僅可用于伺服電機(jī)的位置同步控制,而且具有以上諸多優(yōu)點(diǎn)。
4結(jié)束語(yǔ)
基于工控機(jī)實(shí)現(xiàn)的位置同步控制系統(tǒng),具有系統(tǒng)可靠性高、結(jié)構(gòu)簡(jiǎn)單、編程靈活等優(yōu)點(diǎn),既可運(yùn)用高級(jí)軟件,又可運(yùn)用匯編語(yǔ)言,提高編程調(diào)試速度和程序的可讀性。在實(shí)現(xiàn)伺服電機(jī)控制的同時(shí),可直接對(duì)控制進(jìn)度、輸入、輸出等進(jìn)行觀察、分析、打印等處理。
參考文獻(xiàn)
[1] 許春全,胡洪國(guó),楊汝清.多伺服電機(jī)的串聯(lián)同步控制[J].電氣自動(dòng)化,2001,(4).
[2] 潘曉彬,李國(guó)平,俞岳平.伺服電機(jī)間同步傳動(dòng)的柔性化控制[J].機(jī)電工程,1999,(5).
[3] PCL833 3-axis Quadrature Encoder and Counter Card User‘s Manual[Z]. Advance Co. Ltd.,1998.
[4] PCL728 D/A Conveter Card User‘s Manual[Z].Advance Co. Ltd.,1998.
[5] IBM PC XT/AT 系列微機(jī)高級(jí)程序員編程指南[M].北京:中科院希望電腦技術(shù)公司,1987.