沈 宏,張 偉,安艷濤
(1.河南科技學(xué)院,新鄉(xiāng) 453003;2.陜西江河水利水電土木勘測設(shè)計(jì)研究院,西安 710016)
水輪機(jī)可編程調(diào)速器(簡稱PLC調(diào)速器)自20世紀(jì)90年代初投運(yùn)于水電站以來,由于其面向工業(yè)現(xiàn)場具有可靠性高,易學(xué)易懂等優(yōu)點(diǎn),因而越來越受到用戶的歡迎,然而作為電氣-機(jī)械-液壓轉(zhuǎn)換部件的電液轉(zhuǎn)換器的抗油污能力較差,卻成為制約電液調(diào)速系統(tǒng)可靠性的致命因素[1]。針對這一棘手問題,相關(guān)單位陸續(xù)推出了一些采用步進(jìn)電機(jī)代替電液轉(zhuǎn)換器的步進(jìn)式可編程調(diào)速器并投入運(yùn)行,使得抗油污能力這一缺陷在一定程度上得到明顯改善,而且由于步進(jìn)式可編程調(diào)速器能夠方便地控制位移、速度、方向,配以滾珠絲桿后可達(dá)到極高控制精度,所以可以在較寬的范圍內(nèi)調(diào)速。并且在負(fù)載能力范圍內(nèi),其輸出轉(zhuǎn)角定位精度無積累誤差,故在水輪機(jī)調(diào)速器中已占有相當(dāng)?shù)姆蓊~[2]。
但步進(jìn)式可編程調(diào)速器在步進(jìn)電機(jī)的驅(qū)動(dòng)上依然存在一些問題,比如在目前的水輪機(jī)調(diào)節(jié)領(lǐng)域中,許多PLC調(diào)速器步進(jìn)電機(jī)采用簡單的直接啟動(dòng)方式,而對于水輪機(jī)調(diào)節(jié)系統(tǒng),系統(tǒng)的極限起動(dòng)頻率是比較低的,而要求的運(yùn)行速度往往較高。如果系統(tǒng)以要求的速度直接起動(dòng),則很有可能發(fā)生失步或根本不運(yùn)行的情況。不僅如此,系統(tǒng)運(yùn)行起來之后,如果到在到達(dá)終點(diǎn)時(shí)就立即停發(fā)脈沖,則會(huì)因?yàn)閼T性的原因,發(fā)生沖過終點(diǎn)的現(xiàn)象,使點(diǎn)-位控制發(fā)生偏差,從而使調(diào)速器不能正常運(yùn)行[3,4]。
所以,為保證步進(jìn)電機(jī)的控制精度,如何處理好其升、降速驅(qū)動(dòng)問題就顯得十分重要。因此要根據(jù)步進(jìn)電機(jī)的動(dòng)力學(xué)特性及矩頻特性來尋找最佳的升降速曲線,在數(shù)學(xué)上這種曲線是比較復(fù)雜的,人們很難找到一種硬件電路來模擬它,只能在一定頻段內(nèi)做近似的曲線擬合。有鑒于此,本文通過采用西門子S7-200PLC的高速脈沖輸出功能,向步進(jìn)電機(jī)發(fā)出進(jìn)給脈沖,通過軟件編程實(shí)現(xiàn)脈沖頻率的變化,從而精確地實(shí)現(xiàn)了步進(jìn)電機(jī)的加速-恒速-減速-低恒速-停止的過程[5]。并將此功能成功地應(yīng)用在水輪機(jī)調(diào)速器中,實(shí)現(xiàn)了對步進(jìn)電機(jī)的精確控制,使步進(jìn)式水輪機(jī)調(diào)速器控制性能大為改善。
西門子S7-200CPU224XP系列有兩路高頻率脈沖輸出,具有實(shí)時(shí)刷新技術(shù),其信號輸出頻率最高可達(dá)20KHz,可以用于控制步進(jìn)電機(jī)以實(shí)現(xiàn)精確定位任務(wù)。其硬件系統(tǒng)接線圖如圖1所示。
圖1 S7-200步進(jìn)電機(jī)調(diào)速器硬件接線圖
在步進(jìn)式水輪機(jī)調(diào)速器中,為提高工作效率,步進(jìn)電機(jī)控制系統(tǒng)的加速,減速特性非常重要,如果設(shè)計(jì)不合理,將會(huì)引起步進(jìn)電機(jī)堵轉(zhuǎn)、失步(運(yùn)行精度差)或升、降速過程慢(工作效率低)等問題。
圖2給出了步進(jìn)電機(jī)加速啟動(dòng)、恒速運(yùn)行和減速停止過程中脈沖頻率與時(shí)間的關(guān)系。
由于步進(jìn)電機(jī)不能直接接到工頻交流或直流電源上工作,所以必須使用專用的步進(jìn)電機(jī)驅(qū)動(dòng)器。步進(jìn)電機(jī)驅(qū)動(dòng)器主要由脈沖發(fā)生控制單元,功率驅(qū)動(dòng)單元等組成。本調(diào)速器將脈沖發(fā)生控制單元通過S7-200的高速脈沖指令來實(shí)現(xiàn),外加功率放大單元來替代專用步進(jìn)電機(jī)驅(qū)動(dòng)器,成本顯著降低[6]。
用可編程控制器對步進(jìn)電動(dòng)機(jī)進(jìn)行加減速控制時(shí),實(shí)際上就是改變高速脈沖輸出的時(shí)間間隔,升速時(shí)使脈沖串逐漸加密,減速時(shí)使脈沖串逐漸稀疏。用定時(shí)中斷方式來控制電動(dòng)機(jī)變速。升速時(shí)的起始速度應(yīng)等于或略小于系統(tǒng)的極限起動(dòng)頻率(速度),而不是從零開始。減速過程結(jié)束時(shí)的速度一般應(yīng)等于或低于啟動(dòng)速度,再經(jīng)數(shù)步低速運(yùn)行后停止。
系統(tǒng)在執(zhí)行升降速的控制過程中,對加減速過程的控制要準(zhǔn)備下列數(shù)據(jù):
1)加減速的斜率。在直線加速過程中,速度不是連續(xù)變化,而是分階段變化的,為與要求的升速斜率相逼近,可以采用階梯曲線來逼近加減速曲線,見圖3所示,采用離散法將加減速曲線離散化,離散化以后的速度是分檔上升的,而且必須確定每個(gè)速度臺(tái)階上運(yùn)行的時(shí)間,時(shí)間△t越小,升速越快,反之漸慢?!鱰的大小可由理論分析或?qū)嶒?yàn)確定,以升速最快而不丟步為原則。則每個(gè)臺(tái)階運(yùn)行的步數(shù)為NS=fs?△t =S?△N,其中fs為對應(yīng)每一檔的頻率,△N反映了每個(gè)速度臺(tái)階運(yùn)行步數(shù)與速度字S之間的關(guān)系。程序在執(zhí)行過程中,每次速度升一檔,都要計(jì)算這個(gè)臺(tái)階應(yīng)走的步數(shù),然后以遞減方式檢查,當(dāng)減至零時(shí)表示該檔速度運(yùn)行完畢,S=S+1,隨后升入又一檔速度。
圖3 階梯形加減速曲線
2)升速過程的總步數(shù)。電動(dòng)在機(jī)升速過程中,一直對這個(gè)總步數(shù)進(jìn)行遞減操作,當(dāng)減至零時(shí)表示升速過程完畢,轉(zhuǎn)入恒速運(yùn)行。
3)恒速運(yùn)行的總步數(shù)。電動(dòng)機(jī)在恒速運(yùn)行過程中,一直對這個(gè)總步數(shù)進(jìn)行遞減操作,當(dāng)減至零時(shí)表示恒速過程完畢,轉(zhuǎn)入減速運(yùn)行。
4)減速過程的總步數(shù)。這個(gè)步數(shù)可以取與升速過程總步數(shù)相同。減速過程的規(guī)律也與升速過程相同,只是按相反的順序進(jìn)行即可。
在上面的數(shù)據(jù)確定后,我們就可以編制一個(gè)完整的具有升減速過程的點(diǎn)-位控制運(yùn)行程序了。
高速脈沖指令可以使PLC的某些輸出端產(chǎn)生高速脈沖,用來驅(qū)動(dòng)負(fù)載實(shí)現(xiàn)精確控制。
S7-200有兩個(gè)PTO/PWM發(fā)生器[7],分別產(chǎn)生高速脈沖串和脈沖寬度可調(diào)的波形。PTO/PWM發(fā)生器的編號分配在數(shù)字輸出點(diǎn)Q0.0和Q0.1。
脈沖串(PTO)功能提供方波(50%占空比)輸出,并由用戶控制脈沖周期和脈沖數(shù);脈沖寬度調(diào)制(PWM)功能提供連續(xù)、占空比可調(diào)的脈沖輸出,并由用戶控制脈沖周期和脈沖寬度。
PTO/PWM發(fā)生器有一個(gè)8位的控制字節(jié),一個(gè)16位無符號的周期值,一個(gè)16位無符號的脈寬值(僅PWM有),和一個(gè)32位無符號的脈沖計(jì)數(shù)值(僅PTO有)。這些數(shù)值全部存儲(chǔ)在指定的特殊存儲(chǔ)器(SM)中,特殊存儲(chǔ)器的各位設(shè)置完畢后,即可執(zhí)行脈沖(PLS)指令。PLS指令使CPU讀取特殊存儲(chǔ)器中的位,并對相應(yīng)的PTO/PWM發(fā)生器進(jìn)行編程。修改特殊存儲(chǔ)器(SM)區(qū)(包括控制字節(jié)),并執(zhí)行PLS指令,可以改變PTO或PWM特性。當(dāng)PTO/PWM控制字節(jié)(SM67.7或SM77.7)的允許位被置為0,則禁止PTO或PWM的功能。
PLS指令從PTO/PWM控制寄存器中讀取數(shù)據(jù),使程序按控制寄存器中的值所對應(yīng)的功能來控制PTO/PWM發(fā)生器。因此在執(zhí)行PLS指令前,必須設(shè)置好控制寄存器。
PTO功能可以提供指定脈沖數(shù)和周期的方波(50%占空比)脈沖串。周期以微秒或毫秒為單位,周期的范圍是10~65535μs或2~65535ms。脈沖數(shù)的范圍是:1~4294967295。
如果周期時(shí)間小于最小值,就把周期默認(rèn)為最小值;如果指定脈沖數(shù)為0,就把脈沖數(shù)默認(rèn)為1個(gè)脈沖。
狀態(tài)字節(jié)中的PTO空閑位(SM66.7或SM76.7)為1時(shí),則表示脈沖串輸出完成??筛鶕?jù)脈沖串輸出的完成調(diào)用中斷子程序。
若要輸出多個(gè)脈沖串,PTO功能允許脈沖串的排隊(duì),形成管線。當(dāng)激活的脈沖串輸出完成后,立即開始輸出新的脈沖串。這保證了脈沖串順序輸出的連續(xù)性。
PTO發(fā)生器具有單段管線和多段管線兩種模式。其中PTO發(fā)生器的多段管線功能在對步進(jìn)電機(jī)的控制中非常有用。
2.3.1多段管線模式
多段管線模式中,CPU在變量(V)存儲(chǔ)區(qū)建立一個(gè)包絡(luò)表。包絡(luò)表中存儲(chǔ)各個(gè)脈沖串的控制參數(shù),多段管線用PLS指令啟動(dòng)。執(zhí)行指令時(shí),CPU自動(dòng)從包絡(luò)表中按順序讀出每個(gè)脈沖串的控制參數(shù),并實(shí)施脈沖串輸出。當(dāng)執(zhí)行PLS指令時(shí),包絡(luò)內(nèi)容不可改變。
在包絡(luò)表中周期增量可以選擇微秒或毫秒,但在同一個(gè)包絡(luò)表中的所有周期值必須使用同一個(gè)時(shí)間基準(zhǔn)。
如果在輸出若干個(gè)脈沖后指定的周期增量值導(dǎo)致非法周期值,就會(huì)產(chǎn)生溢出錯(cuò)誤, SM66.7或SM76.7被置為1,同時(shí)停止PTO功能,PLC的輸出變?yōu)橥ㄓ霉δ堋A硗?,狀態(tài)字節(jié)中的增量計(jì)算錯(cuò)誤位(SM66.7或SM76.7)被置為1。
如果要人為地終止一個(gè)正進(jìn)行中的PTO包絡(luò),只需要把狀態(tài)字節(jié)中的用戶終止位(SM66.7或SM76.7)置為1即可。
2.3.2包絡(luò)表參數(shù)的計(jì)算
本文以接力器運(yùn)行100%全行程為例,設(shè)對應(yīng)的步進(jìn)電機(jī)為3000步,按照圖2所示原理,若步進(jìn)電機(jī)的運(yùn)行控制分為3段(啟動(dòng),運(yùn)行,減速),則共需要3000個(gè)脈沖[8,9]。啟動(dòng)和減速的脈沖頻率是16Hz,最大脈沖頻率是1KHz。由于包絡(luò)表中的值是用周期表示的,而不是用頻率,所以需要把給定的頻率值轉(zhuǎn)換成周期值。啟動(dòng)和減速的周期是62500μs,最大脈沖頻率對應(yīng)的周期是1000μs。
要求加速部分在125個(gè)脈沖內(nèi)達(dá)到最大脈沖頻率(1KHz),減速部分在250個(gè)脈沖內(nèi)完成。
PTO發(fā)生器用來調(diào)整給定段脈沖周期的周期增量為:
周期增量=(ECT-ICT)/Q
式中:ECT為該段結(jié)束周期;ICT為該段初始周期;Q為該段脈沖數(shù)。
計(jì)算得出:加速部分(第一段)的周期增量是-492;減速部分(第三段)的周期增量是246。第二段是恒速控制,該段的周期增量是0。
同理,當(dāng)接力器從0走到75%、50%、25%全行程時(shí)的運(yùn)動(dòng)控制也可以分為3段(啟動(dòng),運(yùn)行,減速),此時(shí)分別需要脈沖2250、1500、750個(gè)。
假定包絡(luò)表存放在從VB500開始的V存儲(chǔ)器區(qū),以接力器行程為0~100%為例,相應(yīng)的包絡(luò)表參數(shù)如表1所示。
該表的值可以通過用戶程序中的指令放在變量(V)存儲(chǔ)器中。
1)利用第一掃描內(nèi)存位(SM0.1)復(fù)位輸出為0,并調(diào)用所要的子程序進(jìn)行初始化操作。這樣可節(jié)約掃描執(zhí)行時(shí)間,并使程序結(jié)構(gòu)化更強(qiáng)。
表1 包絡(luò)表值
2)在初始化子程序內(nèi),以微秒為遞增單位把PTO數(shù)值16#A0存入SMB67。這些數(shù)值設(shè)定控制字節(jié)的目的是:啟動(dòng)PTO/PWM功能,選擇PTO多段操作,并選擇微秒或毫秒為遞增單位,本文根據(jù)要求頻率計(jì)算選用微秒為單位。
3)用包絡(luò)表的起始V內(nèi)存偏移量存入SMW168。
4)設(shè)定包絡(luò)表內(nèi)的段數(shù)值,保證段數(shù)目數(shù)值正確。
5)執(zhí)行PLS指令,S7-200為PTO/PWM生成器編程。
6)退出子程序。
圖4 S7-200控制器輸出的驅(qū)動(dòng)程序流程圖
這種以S7-200PLC 224XP為硬件主體,采用軟件編程實(shí)現(xiàn)對步進(jìn)電機(jī)的加減速控制,靈活易變,抗噪性能強(qiáng),既經(jīng)濟(jì)又節(jié)約空間,克服了以往PLC調(diào)速器步進(jìn)電機(jī)采用簡單的直接啟動(dòng)方式的不足, 可以通過對包絡(luò)表中相應(yīng)的控制字做出修改來調(diào)節(jié)步進(jìn)電機(jī)的運(yùn)行參數(shù),使PLC調(diào)速器對步進(jìn)電機(jī)的控制精度更加精確[10],驅(qū)動(dòng)功能更加完善,大大減少了CPU的占用時(shí)間,提高了系統(tǒng)的響應(yīng)速度,具有較強(qiáng)的實(shí)用性。
[1] 吳羅盛,金向丹.水輪機(jī)調(diào)速器的自動(dòng)化及其發(fā)展前景[J].機(jī)電技術(shù).2006 (4):63-65.
[2] 王德意,南海鵬,張江濱,等.水輪機(jī)步進(jìn)式微機(jī)調(diào)速器應(yīng)用研究[J].水利水電技術(shù).2002,32(5):24-27.
[3] 劉寶廷.程樹康,等.步進(jìn)電動(dòng)機(jī)及其驅(qū)動(dòng)控制系統(tǒng)[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1984:33-36.
[4] 商國才,梁旭,李晉民.步進(jìn)式全數(shù)字水輪機(jī)微機(jī)調(diào)速器的研究[J].華北電力大學(xué)學(xué)報(bào).1995,22(1):8-13
[5] 蔡行健.深入淺出西門子S7-200PLC[M].北京:北京航空航天大學(xué)出版社,2003:201-211.
[6] 劉毅力.基于S7-200水輪機(jī)微機(jī)調(diào)速器的開發(fā)與研究[D].西安:西安理工大學(xué),2004,3:54-56.
[7] Simatic S7-200系統(tǒng)手冊[M].SIEMENS.2004,9:94-96.
[8] Hiden Dohmeki. New pentagon drive method for 5-phase step motors.IMCSD.1992:289-295.
[9] 王友軍.五相混合式步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)技術(shù)[J].儀表技術(shù).2004(4):42-43.
[10] 劉志水.淺析步進(jìn)電機(jī)的PLC控制技術(shù)與發(fā)展趨勢[J].工業(yè)技術(shù).2006(27):24.