摘 要:小激光器實(shí)驗(yàn)系統(tǒng)有多臺(tái)混合式
步進(jìn)電機(jī)和反應(yīng)式步進(jìn)電機(jī)需要控制,無論是靶丸的空間位置調(diào)節(jié),還是光路中波片的調(diào)節(jié)都離不開步進(jìn)電機(jī)的精確控制。通過PCL839運(yùn)動(dòng)控制卡以及自行研制的電機(jī)控制切換器和控制軟件,不僅能實(shí)現(xiàn)步進(jìn)電機(jī)的精確運(yùn)動(dòng)控制,還能滿足靶場(chǎng)的特殊控制要求,實(shí)現(xiàn)實(shí)時(shí)在線控制。
關(guān)鍵詞:小激光器;步進(jìn)電機(jī);運(yùn)動(dòng)控制
Abstract:Small laser experiment system is made of many stepping motors.Wheher adjusting space position of target bolus,or glass patch in the ray road,is impossible without accurate controling stepping motor.By PCL839 control and motor control switch developed ourself, accurate and real-time control of stepping motor can be implemented.
Keywords: small laser; stepping motor; athletics control
1 引言
小激光器實(shí)驗(yàn)系統(tǒng)需要控制的設(shè)備有:一臺(tái)同步系統(tǒng)、兩臺(tái)300J電源、4臺(tái)20KJ電源、1個(gè)二極管電源、一套液晶光閥及三路步進(jìn)電機(jī)控制;在靶場(chǎng)中有4路CCD圖象采集、19路步進(jìn)電機(jī)控制、真空度顯示等。根據(jù)用戶需求,小激光器計(jì)算機(jī)控制系統(tǒng)分為器件控制系統(tǒng)和靶場(chǎng)控制系統(tǒng)。光路準(zhǔn)直、光斑圖象移動(dòng)、鏡片轉(zhuǎn)動(dòng)等操作都離不開步進(jìn)電機(jī)的轉(zhuǎn)動(dòng),而如何對(duì)步進(jìn)電機(jī)實(shí)現(xiàn)高精確的定位控制,是靶場(chǎng)控制系統(tǒng)的難點(diǎn)。采用
工控機(jī)、PCL839運(yùn)動(dòng)控制卡與控制切換器等相結(jié)合組成的控制系統(tǒng),不僅能滿足靶場(chǎng)對(duì)電機(jī)轉(zhuǎn)動(dòng)的高精度要求,還能實(shí)現(xiàn)實(shí)時(shí)在線控制。
2 控制系統(tǒng)結(jié)構(gòu)及功能
靶場(chǎng)控制系統(tǒng)實(shí)現(xiàn)對(duì)真空靶室真空抽取、靶丸的移動(dòng)的控制,并實(shí)現(xiàn)光路的調(diào)整。靶室內(nèi)有4臺(tái)混合式電機(jī),完成靶丸的移動(dòng)操作。光路上有15臺(tái)反應(yīng)式電機(jī),實(shí)現(xiàn)激光光束的傳輸。
圖1 靶場(chǎng)控制系統(tǒng)結(jié)構(gòu)圖
靶場(chǎng)控制計(jì)算機(jī)通過PCL839運(yùn)動(dòng)控制卡將控制信號(hào)分解,傳輸給電機(jī)控制切換器(自行研制),電機(jī)控制切換器細(xì)分控制信號(hào)(地址信號(hào)和脈沖數(shù)),然后將電平信號(hào)以及相應(yīng)的脈沖數(shù)送到目的電機(jī),以驅(qū)動(dòng)電機(jī)。
3 PCL839卡
PCL839卡是研華公司提供的
步進(jìn)電機(jī)控制卡,能提供精確的控制脈沖,滿足對(duì)步進(jìn)電機(jī)的高精度和實(shí)時(shí)控制。
該卡主要有以下性能特點(diǎn):
能同時(shí)獨(dú)立對(duì)三軸步進(jìn)電機(jī)進(jìn)行控制,提供控制每軸的步進(jìn)脈沖和轉(zhuǎn)向信號(hào);
電機(jī)控制信號(hào)輸出與開關(guān)信號(hào)輸入全部采用光電隔離;
提供16路輸入輸出TTL通道;全部功能與運(yùn)動(dòng)控制可由軟件實(shí)現(xiàn);
中斷輸入可由跳接插頭選擇。
4 步進(jìn)電機(jī)驅(qū)動(dòng)設(shè)計(jì)
4.1物理結(jié)構(gòu)
電機(jī)驅(qū)動(dòng)器硬件信號(hào)邏輯如下:
最多30個(gè)電機(jī)復(fù)用驅(qū)動(dòng)通道1,包括:PULSE, DIR, EL+, EL-, ORG, FREE。
4.2 驅(qū)動(dòng)控制軟件設(shè)計(jì)
電機(jī)對(duì)象類之間的關(guān)系如圖2。MotionController:對(duì)PCL839卡封裝;StepMotor:同MotionController是多對(duì)一的Client/Service關(guān)系。MotionController
提供服務(wù)隊(duì)列,緩存StepMotor提交的命令申請(qǐng);命令完成或報(bào)警發(fā)生時(shí),MotionController調(diào)用StepMotor提供的報(bào)警方法。通過這種方式,StepMotor可以實(shí)現(xiàn)異步的服務(wù)請(qǐng)求。PCL839Service:StepMotor提交的命令申請(qǐng)被封裝為PCL839Service。
圖2 電機(jī)對(duì)象類調(diào)用關(guān)系
以下是3個(gè)重要類對(duì)象的設(shè)計(jì):
(1)PCL839Service。
PCL839Service表示一個(gè)電機(jī)請(qǐng)求命令。StepMotor產(chǎn)生該對(duì)象實(shí)例,在MotionController中保存,當(dāng)任務(wù)完成后,StepMotor負(fù)責(zé)清除。
在MotionController中,使用STL deque保存PCL839Service。
(2)MotionController。
MotionController有以下運(yùn)行參數(shù):
提供以下報(bào)警:
l Enabled返回false;表示設(shè)備可能故障;
l bool返回值false; 表示設(shè)備可能故障;
l Busy返回true; 表示電機(jī)在運(yùn)行。
MotionController沒有控制參數(shù)。MotionController沒有實(shí)驗(yàn)數(shù)據(jù)。
MoveAsStep()的處理流程:
1. StepMotor發(fā)出MoveAsStep請(qǐng)求,
2. PCL839將請(qǐng)求排入隊(duì)列;
3. PCL839開始處理該請(qǐng)求,首先調(diào)用StepMotor.SetReady();
4. StepMotor.SetReady先設(shè)置運(yùn)轉(zhuǎn)參數(shù),令電機(jī)Online, 再令電機(jī)開始運(yùn)轉(zhuǎn);
5. PCL839發(fā)現(xiàn)電機(jī)停轉(zhuǎn)后,令電機(jī)Offline, 再調(diào)用StepMotor.StepOver();
6. PCL839從請(qǐng)求隊(duì)列中刪除該請(qǐng)求。
Hold()的處理流程:
1. StepMotor發(fā)出Hold請(qǐng)求,
2. PCL839將請(qǐng)求排入隊(duì)列;
3. PCL839開始處理該請(qǐng)求,首先調(diào)用StepMotor.SetReady();
4. StepMotor.SetReady先設(shè)置運(yùn)轉(zhuǎn)參數(shù),令電機(jī)Online;
5. StepMotor發(fā)出Release()后,PCL839令電機(jī)Offline;
6. PCL839從請(qǐng)求隊(duì)列中刪除該請(qǐng)求。
(3)class StepMotor
異步命令將產(chǎn)生PCL839Service, 交由PCL839排隊(duì)處理。如果完成PCL839將調(diào)用StepMotor的事件處理函數(shù)。
5 系統(tǒng)軟件設(shè)計(jì)
軟件操作的簡(jiǎn)易可靠、界面的美觀是軟件設(shè)計(jì)的基本原則。步進(jìn)電機(jī)控制系統(tǒng)分為電機(jī)參數(shù)設(shè)置、電機(jī)選擇、移動(dòng)步數(shù)設(shè)置、前進(jìn)/后退/停止四個(gè)步驟,為實(shí)現(xiàn)控制操作的直觀便捷,將整個(gè)靶場(chǎng)電機(jī)排布圖提供給用戶,用戶操作時(shí)直接點(diǎn)擊需控制的電機(jī),使得用戶操作更加直觀便捷,圖3為控制操作界面。
圖3 步進(jìn)電機(jī)控制系統(tǒng)軟件
步進(jìn)電機(jī)在剛開始轉(zhuǎn)動(dòng)時(shí),轉(zhuǎn)動(dòng)速度較慢,經(jīng)過幾個(gè)時(shí)間脈沖才能達(dá)到正常速度,因此要控制電機(jī)的轉(zhuǎn)動(dòng)速度,必須設(shè)置兩個(gè)速度值:最低FL和最高FH。
工程運(yùn)用中,無論是靶丸的空間位置調(diào)節(jié),還是光路的調(diào)節(jié),都應(yīng)該將步進(jìn)電機(jī)當(dāng)前轉(zhuǎn)動(dòng)步數(shù)(剩余步數(shù))實(shí)時(shí)地反饋給用戶,便于用戶隨時(shí)都可以根據(jù)靶丸和光路的情況對(duì)電機(jī)進(jìn)行調(diào)節(jié)操作(前進(jìn)/后退/停止)。研華PCL839步進(jìn)電機(jī)驅(qū)動(dòng)應(yīng)用程序提供電機(jī)剩余脈沖數(shù)(步數(shù))的查詢接口,但經(jīng)過測(cè)試發(fā)現(xiàn)反饋數(shù)值誤差較大,通過多次實(shí)驗(yàn),最終將類MotionController的狀態(tài)反饋函數(shù)做了如下修改,主要代碼:
unsigned int r0;
int status = Out_byte(0, 0x80);
r0 = In_byte(1) & 0xFF;
r0 = (In_byte(2) & 0xFF) * 256 + r0;
r0 = (In_byte(3) & 0x3) * 65536 + r0;
6 結(jié)論
小激光器實(shí)驗(yàn)系統(tǒng)有多臺(tái)不同種類的步進(jìn)電機(jī)需要控制。由工控機(jī)、PCL839
運(yùn)動(dòng)控制卡以及自行研制的控制切換器相結(jié)合組成了硬件控制系統(tǒng),針對(duì)小激光器實(shí)驗(yàn)系統(tǒng)的具體要求,研制了特殊功能的控制軟件,不僅能實(shí)現(xiàn)各種高精度定位、限位、自動(dòng)軌跡等運(yùn)動(dòng)控制,還能滿足靶場(chǎng)對(duì)步進(jìn)電機(jī)的特殊控制要求,實(shí)現(xiàn)實(shí)時(shí)在線控制。
參考文獻(xiàn)(References):
[1] Taksshi Kenjo and Akira Sugawara, “Stepping Motors and Their Microprocessor Controls”, Second Edition, Oxford University Press, 1994
[2] F. Betin, M. Deloizy, and C. Goeldel, “Closed loop control of stepping motor drive: Comparison between PID control, self tuning regulation and fuzzy logic control,” Eur. Power Electron. J., vol. 8, no. 1–2, pp.33–39, June 1999.
[3]胡金明,侯石柱等.電磁調(diào)速電機(jī)控制系統(tǒng)的優(yōu)化及維護(hù)應(yīng)用.微計(jì)算機(jī)信息,2002(6):41~43.
[4]劉少克,袁海洲,陸勝旺.步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)的計(jì)算機(jī)控制方法[J].電氣傳動(dòng)自動(dòng)化,2000(4):40-42.
[5]L. J. Lagin et al., “The Overview of the National Ignition Facility Distributed Computer Control System”, ICALEPCS 2001.
[6]P. VanArsdall B. Reed, R. Bettenhausen J. Spann, F. Holloway J. Wiedwald, M. Miller, “INTEGRATED COMPUTER CONTROL SYSTEM”, UCRL-LR-105821-97-3.
[7] S.M. Yang and E.L. Kuo. “Damping conml of two-phase hybrid stepping motors”, IEEE Trammtiom on Power Electronics, Vol. 18, No. 3, May 2003.