韓亮
(山西機(jī)電職業(yè)技術(shù)學(xué)院電子電氣工程系,山西長治046011)
步進(jìn)電機(jī)的開環(huán)定位控制系統(tǒng)設(shè)計
韓亮
(山西機(jī)電職業(yè)技術(shù)學(xué)院電子電氣工程系,山西長治046011)
運(yùn)用PLC和步進(jìn)電機(jī)控制技術(shù),設(shè)計了步進(jìn)電機(jī)的開環(huán)定位控制系統(tǒng)。選擇PLC作為控制器,通過PLC的脈沖輸出功能指令,發(fā)送一定數(shù)量的脈沖給步進(jìn)驅(qū)動器,由步進(jìn)驅(qū)動器驅(qū)動步進(jìn)電機(jī),實(shí)現(xiàn)步進(jìn)電機(jī)的方向控制、速度控制與定位控制。重點(diǎn)考慮控制系統(tǒng)的硬件設(shè)計與軟件設(shè)計以及脈沖輸出功能指令的應(yīng)用。
步進(jìn)電機(jī);PLC;脈沖輸出;定位控制
Abstract:An open-loop positioning control system of stepper motor is designed by using PLC and stepper motor control technology.The pulse output function of PLC is used in this system.The stepper motor is driven by stepper actuator.PLC sends a certain number of pulses to the stepper actuator so that the control system can realize the direction control,speed control and positioning control of the stepper motor.In this control system,the emphasis is on hardware design,software design and application of pulse output function.
Key words:stepper motor;programmable logic controller;pulse output;positioning control
在開環(huán)定位控制領(lǐng)域,步進(jìn)電機(jī)因其結(jié)構(gòu)簡單、易于控制等特點(diǎn),廣泛地應(yīng)用于立體倉庫、數(shù)控機(jī)床等控制場合[1]。步進(jìn)電機(jī)是一種將電脈沖信號轉(zhuǎn)換成角位移的執(zhí)行機(jī)構(gòu),通常由步進(jìn)驅(qū)動器驅(qū)動。當(dāng)步進(jìn)驅(qū)動器接收到1個脈沖信號,它就驅(qū)動步進(jìn)電機(jī)按設(shè)定的方向旋轉(zhuǎn)1個固定的角度(步距角),故可以通過控制脈沖的數(shù)量來控制步進(jìn)電機(jī)的角位移,從而達(dá)到準(zhǔn)確定位的目的[2]。
文獻(xiàn)[3]提出了一種以單片機(jī)為控制器,以FPGA芯片來實(shí)現(xiàn)驅(qū)動,完成步進(jìn)電機(jī)的定位控制功能。其中,F(xiàn)PGA模塊是該系統(tǒng)的設(shè)計重點(diǎn),通過VHDL編程,利用FPGA芯片接收來自單片機(jī)的控制數(shù)據(jù),實(shí)現(xiàn)步進(jìn)電機(jī)的定位。
本文提出以PLC為控制器,結(jié)合步進(jìn)驅(qū)動器,實(shí)現(xiàn)步進(jìn)電機(jī)定位控制的設(shè)計方案。通過PLC的脈沖輸出功能,實(shí)現(xiàn)步進(jìn)電機(jī)的方向控制、速度控制與定位控制。通過步進(jìn)驅(qū)動器驅(qū)動步進(jìn)電機(jī),并且通過對步進(jìn)驅(qū)動器細(xì)分精度的設(shè)定,提高步進(jìn)電機(jī)的定位精度。本設(shè)計方案與文獻(xiàn)[3]提出的方法相比,軟硬件設(shè)計更加靈活方便且系統(tǒng)的穩(wěn)定性更高。
1.1 控制系統(tǒng)結(jié)構(gòu)
步進(jìn)電機(jī)控制系統(tǒng)由步進(jìn)電機(jī)、步進(jìn)驅(qū)動器、PLC、滾珠絲杠(以下簡稱絲杠)、工作臺、定位鐵片、接近開關(guān)等部件組成。控制系統(tǒng)結(jié)構(gòu)圖如圖1所示。
圖1 控制系統(tǒng)結(jié)構(gòu)圖
接近開關(guān)2的位置作為原點(diǎn),接近開關(guān)1和5分別作為左、右極限。無論工作臺處于何種工作狀態(tài),遇到左、右極限時都必須停止且不可向超限的方向運(yùn)行。
1.2 控制系統(tǒng)功能
當(dāng)工作臺不在原點(diǎn)位置時,按下復(fù)位按鈕使其回到原點(diǎn)。復(fù)位后,按下啟動按鈕,工作臺裝料,3 s后向原點(diǎn)左側(cè)的工位1處運(yùn)送,工位1距離原點(diǎn)50 mm。運(yùn)送至工位1處開始卸料,5 s后返回原點(diǎn)。在原點(diǎn)處繼續(xù)裝料,3 s后向原點(diǎn)右側(cè)的工位2處運(yùn)送,工位2距離原點(diǎn)100 mm。運(yùn)送至工位2處開始卸料,5 s后返回原點(diǎn)。至此,1個循環(huán)完成,并開始下1個循環(huán)。循環(huán)過程中如果按下停止按鈕,工作臺完成本次循環(huán)并回到原點(diǎn)位置后停止運(yùn)行。
為使工作臺精確回原點(diǎn),調(diào)用原點(diǎn)回歸指令ZRN,使工作臺精確定位到原點(diǎn)右側(cè)。
系統(tǒng)啟動后,給工作臺裝料,然后運(yùn)送到2個不同的位置卸料。這就需要對工作臺進(jìn)行定位控制。按照圖1所示,步進(jìn)電機(jī)旋轉(zhuǎn)1周,絲杠也旋轉(zhuǎn)1周,工作臺水平移動1個絲距(5 mm)。這樣,步進(jìn)電機(jī)的圓周運(yùn)動就可以轉(zhuǎn)化為工作臺的直線運(yùn)動,故對工作臺的定位控制也就是對步進(jìn)電機(jī)的定位控制。
為實(shí)現(xiàn)步進(jìn)電機(jī)的定位,選擇PLC控制器,利用PLC的脈沖輸出指令,發(fā)送脈沖給步進(jìn)驅(qū)動器,由步進(jìn)驅(qū)動器驅(qū)動步進(jìn)電機(jī),來完成對步進(jìn)電機(jī)的定位控制。步進(jìn)電機(jī)的角位移與PLC發(fā)送的脈沖數(shù)、步進(jìn)驅(qū)動器設(shè)置的細(xì)分精度有關(guān)。因此,設(shè)置好細(xì)分精度后,通過PLC發(fā)送的脈沖數(shù)量,就能控制步進(jìn)電機(jī)的角位移,從而間接地控制工作臺的直線位移。
由于工位1和工位2在原點(diǎn)的2個方向,所以采用脈沖加方向的控制模式,使工作臺可以在原點(diǎn)的兩側(cè)做直線運(yùn)動,以達(dá)到系統(tǒng)的控制要求。
硬件設(shè)計重點(diǎn)考慮PLC控制模塊與步進(jìn)驅(qū)動模塊,系統(tǒng)硬件結(jié)構(gòu)圖如圖2所示。圖中PLC上的輸入點(diǎn)X1、X2、X3分別接收啟、停、復(fù)位信號;X4、X5、X7分別接收右、左限位和原點(diǎn)位置接近開關(guān)的信號;輸出點(diǎn)Y0、Y1作為PLC的脈沖輸出口與方向口;Y3、Y4分別控制工作臺的裝料、卸料;PUL-、DIR-作為步進(jìn)驅(qū)動器脈沖與方向的控制端口。
圖2 系統(tǒng)硬件結(jié)構(gòu)圖
3.1 PLC控制模塊選型
PLC的控制模塊選擇其電氣公司生產(chǎn)的XC3系列CPU,型號XC3-32RT-E。該型號PLC的輸入、輸出點(diǎn)數(shù)為32個(數(shù)字量輸入點(diǎn)有18個,數(shù)字量輸出點(diǎn)有14個),輸入輸出點(diǎn)數(shù)滿足設(shè)計要求(詳見《XC系列可編程序控制器用戶手冊(指令篇)》)。XC系列PLC具有多種脈沖輸出指令,即單向定量脈沖輸出、相對位置單段/多段脈沖控制、絕對位置單段/多段脈沖控制等,每種指令有16位和32位2種形式。
考慮到本設(shè)計PLC需發(fā)出的脈沖數(shù)量及軟件設(shè)計要求,使用16位的相對位置單段脈沖控制功能指令(DRVI)。通過該指令指定脈沖輸出端口為Y0,脈沖輸出方向端口為Y1,并且指定輸出的脈沖數(shù)和脈沖頻率,其中脈沖頻率決定了步進(jìn)電機(jī)的轉(zhuǎn)速,脈沖數(shù)量決定了步進(jìn)電機(jī)的角位移。
3.2 步進(jìn)驅(qū)動模塊
步進(jìn)驅(qū)動模塊由步進(jìn)驅(qū)動器和步進(jìn)電機(jī)組成,該模塊驅(qū)動工作臺在絲杠上做直線運(yùn)動。
選用DP-304步進(jìn)驅(qū)動器,該型號驅(qū)動器供電電壓可達(dá)40 V,輸出電流有效值可達(dá)2.5 A,具有體積小、噪音低、高性能等特點(diǎn),廣泛地應(yīng)用于各種中小型自動化設(shè)備(詳見《DP-304、DP-304L細(xì)分驅(qū)動器用戶手冊》)。在使用步進(jìn)驅(qū)動器之前,需要考慮其細(xì)分精度的設(shè)定。在不設(shè)定細(xì)分精度的情況下,每200個脈沖控制步進(jìn)電機(jī)旋轉(zhuǎn)1周,即步距角為1.8°。DP-304步進(jìn)驅(qū)動器提供8種形式的細(xì)分設(shè)定(見表1),每種設(shè)定對應(yīng)的步進(jìn)電機(jī)的步距角均不相同。
表1 DP-304步進(jìn)驅(qū)動器細(xì)分設(shè)定表
細(xì)分設(shè)定越高,步距角越小,定位精度也就越高。考慮到本設(shè)計的定位精度,選擇細(xì)分設(shè)定為400。PLC每發(fā)送400個脈沖,驅(qū)動步進(jìn)電機(jī)運(yùn)行1周,對應(yīng)步距角為0.9°。細(xì)分精度可通過步進(jìn)驅(qū)動器的SW1、SW2、SW3 3位撥碼開關(guān)控制。
步進(jìn)驅(qū)動器的脈沖控制端口(PUL-)接收PLC發(fā)出的脈沖信號,脈沖信號的數(shù)量決定了步進(jìn)電機(jī)的角位移;方向控制端口(DIR-)接收PLC發(fā)出的方向控制信號,方向控制信號決定了步進(jìn)電機(jī)的運(yùn)動方向。
步進(jìn)電機(jī)選擇某電機(jī)公司生產(chǎn)的57BYGH系列,型號57BYGH301。
按照定位控制要求,本次設(shè)計共有1個主程序、1個子程序、4個流程。首先介紹I/O分配列表,然后詳細(xì)介紹各部分程序的設(shè)計過程并給出程序流程圖。
4.1 PLC的 I/O分配列表
PLC的I/O分配列表如表2所示。
表2 I/O分配列表
4.2 主程序設(shè)計
主程序設(shè)計不采用順序控制方式,而是采用按流程編寫的方式。按流程編的特點(diǎn)是流程不打開、不掃描,這樣有利于脈沖輸出指令的應(yīng)用。
在主程序中,通過調(diào)用子程序1來完成工作臺的復(fù)位,通過流程來實(shí)現(xiàn)工作臺的定位。
首先調(diào)用子程序1使工作臺復(fù)位,然后等待啟動信號。系統(tǒng)啟動后將完成2部分控制任務(wù):第1部分,工作臺在原點(diǎn)處裝料,運(yùn)行至工位1(距原點(diǎn)50 mm)卸料并返回原點(diǎn);第2部分,工作臺在原點(diǎn)處裝料,運(yùn)行至工位2(距原點(diǎn)100 mm)卸料并返回原點(diǎn)。
按下啟動按鈕,工作臺裝料,3 s后打開流程1。在流程1里控制工作臺左移,當(dāng)定位到工作臺左移至工位1(原點(diǎn)左側(cè)),關(guān)閉流程1。然后開始卸料,5 s后打開流程2。在流程2里控制工作臺右移,當(dāng)定位到工作臺右移至原點(diǎn)位置,關(guān)閉流程2。這就完成了第1部分的控制任務(wù)。
第2部分的控制任務(wù)與第1部分一樣,只是工位2(原點(diǎn)右側(cè))距離原點(diǎn)的距離為100 mm,因此流程3、4與流程1、2的程序結(jié)構(gòu)完全相同,只需要設(shè)定不同的脈沖數(shù)量并且控制工作臺的運(yùn)行方向即可。主程序的流程圖如圖3所示。
圖3 主程序流程圖
4.3 子程序1設(shè)計
在子程序1中,完成工作臺的復(fù)位任務(wù)。
由于卸料位置分布在原點(diǎn)的兩側(cè),所以工作臺的起始位置可能在原點(diǎn)的任意一側(cè)。因此,首先通過調(diào)用PLSF指令,控制步進(jìn)電機(jī)帶動工作臺向右運(yùn)行。PLSF是可變頻定量脈沖輸出(加方向)指令,使用該指令可以通過更改脈沖頻率值的正負(fù)來決定脈沖方向(詳見《XC系列可編程序控制器用戶手冊(指令篇)》)。設(shè)定脈沖頻率為-400(向右運(yùn)動),指定Y0為脈沖輸出端口,Y1為方向輸出端口。
當(dāng)工作臺運(yùn)行到右限位開關(guān)位置時,右限位開關(guān)發(fā)出接通信號,此時調(diào)用原點(diǎn)回歸指令ZRN,使工作臺精確定位到原點(diǎn)右側(cè)。子程序1的流程圖如圖4所示。
圖4 子程序1流程圖
4.4 流程
在主程序中,需要調(diào)用4個流程,在流程中完成對工作臺的定位控制。流程1完成工作臺向左運(yùn)行至工位1;流程2完成工作臺向右運(yùn)行至原點(diǎn);流程3完成工作臺向右運(yùn)行至工位2;流程4完成工作臺向左運(yùn)行至原點(diǎn)。
步進(jìn)電機(jī)旋轉(zhuǎn)1周,工作臺在絲杠上移動1個絲距5 mm。50 mm的位移,需要步進(jìn)電機(jī)旋轉(zhuǎn)10周。按照前面設(shè)定的步進(jìn)驅(qū)動器的細(xì)分?jǐn)?shù)400,流程1中PLC需要發(fā)送4 000(400×10)個脈沖,即可實(shí)現(xiàn)工作臺在工位1的定位。
打開流程1,調(diào)用相對位置單段脈沖控制功能指令DRVI,控制步進(jìn)電機(jī)帶動工作臺左移50 mm。設(shè)定PLC輸出的脈沖數(shù)量為4 000,脈沖頻率為200,指定脈沖輸出端口為Y0,脈沖方向端口為Y1。當(dāng)PLC發(fā)送完4 000個脈沖,M8170(正在發(fā)出脈沖標(biāo)志)由ON置為OFF,即完成定位,關(guān)閉流程1。
通過打開流程2實(shí)現(xiàn)工作臺右移返回原點(diǎn)。在流程2中,工作臺的位移仍是50 mm,但運(yùn)行方向向右,所以在調(diào)用DRVI指令時,脈沖數(shù)設(shè)置為-4 000,即可控制工作臺返回原點(diǎn)。
流程3、4與流程1、2結(jié)構(gòu)完全一樣,只是工位2距離原點(diǎn)100 mm,通過更改脈沖數(shù)量為±8 000,就可實(shí)現(xiàn)工作臺在工位2的定位與返回。由于4個流程的結(jié)構(gòu)相同,故只給出流程1的程序流程圖,如圖5所示。
圖5 流程1的程序框圖
運(yùn)用PLC和步進(jìn)電機(jī)控制技術(shù),設(shè)計了步進(jìn)電機(jī)的開環(huán)定位控制系統(tǒng)。選擇PLC作為控制器,通過PLC的脈沖輸出功能指令,發(fā)送一定數(shù)量的脈沖給步進(jìn)驅(qū)動器,由步進(jìn)驅(qū)動器驅(qū)動步進(jìn)電機(jī),實(shí)現(xiàn)步進(jìn)電機(jī)的方向控制、速度控制與定位控制。實(shí)驗(yàn)表明,該系統(tǒng)運(yùn)行穩(wěn)定,效果良好。該設(shè)計方案可以應(yīng)用于工程實(shí)踐,解決某些工程實(shí)踐中步進(jìn)電機(jī)的定位控制問題。
[1]李庭貴.基于PLC和步進(jìn)電機(jī)的立體倉庫存儲系統(tǒng)精確定位控制設(shè)計[J].制造業(yè)自動化,2011,33(10):149-153.
[2]范超毅,范巍.步進(jìn)電機(jī)的選型與計算[J].機(jī)床與液壓,2008,36(5):310-313.
[3]王雁平.步進(jìn)電機(jī)定位控制系統(tǒng)的設(shè)計[J].現(xiàn)代電子技術(shù),2010(18):205-207.
責(zé)任編輯:陳 亮
Design of Open-loop Positioning Control System for Stepper Motor
HAN Liang
(Department of Electronic and Electrical Engineering,Shanxi Institute of Mechanical and Electrical Engineering,Changzhi 046011)
10.3969/j.issn.1671- 0436.2015.06.007
2015-11- 30
韓亮(1981— ),男,碩士,講師。
TM383.6
A
1671- 0436(2015)06- 0030- 05