摘 要:敘述了基于PC/104和步進(jìn)電機(jī)的三軸轉(zhuǎn)臺控制器的設(shè)計和實現(xiàn)。該控制器采用PC/104作為中央處理器,系統(tǒng)兼容性好、擴(kuò)展能力強、軟件開發(fā)周期短;用48路強驅(qū)動數(shù)字輸出板(HSM-3221/3222)為I/O板設(shè)計接口電路,大多數(shù)邏輯均在PC/104內(nèi)實現(xiàn),可靠性高、抗干擾能力強;對步進(jìn)電機(jī)的控制主要采用軟件控制的方式,控制簡單方便,節(jié)省資源。
關(guān)鍵詞:步進(jìn)電機(jī); PC/104; 轉(zhuǎn)臺控制器
1 前言
步進(jìn)電機(jī)是機(jī)電設(shè)備中廣泛使用的一種電機(jī),以控制、驅(qū)動裝置構(gòu)成的步進(jìn)電機(jī)伺服系統(tǒng)在經(jīng)濟(jì)型數(shù)控機(jī)床、機(jī)器人、工業(yè)過程控制及儀器儀表等領(lǐng)域得到了廣泛的應(yīng)用。過去由純電路設(shè)計的步進(jìn)電機(jī)控制和驅(qū)動電路,往往電路結(jié)構(gòu)復(fù)雜,使用元器件多而成本高且通用性差。如果采用微型計算技術(shù),以及軟件編程的方法,將會避免復(fù)雜電路的設(shè)計,降低元器件的成本,使步進(jìn)電機(jī)控制更具有通用性和靈活性。
我們本次設(shè)計的控制器是以PC/104作為步進(jìn)電機(jī)控制的一套系統(tǒng),從而實現(xiàn)對三軸轉(zhuǎn)臺的轉(zhuǎn)向、轉(zhuǎn)速及轉(zhuǎn)角的有效控制。因此根據(jù)實際應(yīng)用的情況,我們將主要精力放在控制軟件的設(shè)計上。
2 系統(tǒng)硬件實現(xiàn)
嵌入式計算機(jī)PC/104是近年來發(fā)展起來的一種新型計算機(jī),由于使用方便,在各種控制系統(tǒng)中得到越來越多的應(yīng)用。它將一臺計算機(jī)集成為一塊體積很小的線路 板模塊,包括CPU、內(nèi)存、兩個RS-232串口,1個并口104總線;支持CRT/LCD顯示,以實時顯示系統(tǒng)運行狀態(tài);具有硬盤及軟驅(qū)接口;帶一定容量的Flash電子盤,存儲控制軟件及相關(guān)數(shù)據(jù);可方便地進(jìn)行高級語言編程由于高度集成化,大大簡化了控制系統(tǒng)的硬件設(shè)計,提高了可靠性;裝備了操作系統(tǒng),方便了軟件開發(fā);處理速度快,控制系統(tǒng)的實時性明顯優(yōu)于傳統(tǒng)的微處理器;另外可根據(jù)系統(tǒng)需要,方便地擴(kuò)展不同的接口板如A/D、D/A、I/O、Timer等,具有良好的擴(kuò)展性。系統(tǒng)采用PC/104,電路簡單可靠,結(jié)構(gòu)緊湊。對于不同型號的步進(jìn)電機(jī)的控制,不需改變硬件電路,通過修改軟件,即能實現(xiàn)多種控制,靈活方便,通用性強,成本低,具有廣闊的應(yīng)用領(lǐng)域。
在接口電路中,我們采用48路強驅(qū)動數(shù)字輸出板 (HSM-3221/3222)作為I/O電路。HSM-3221/3222板是基于PC/104總線的48路強驅(qū)動數(shù)字輸出板。其輸出的最大電流達(dá)250mA。該48路數(shù)字I/O可分成兩組24路數(shù)字I/O,每組又分成三個8位接口。該板的核心芯片是82C55A。HSM-3222與HSM-3221不同之處在于其輸出端接有上拉電阻,電阻可根據(jù)實際需要選擇(如5.6K、10K等)。其軟件開發(fā)方式靈活方便,系統(tǒng)修改方便快捷,從而可以降低設(shè)計風(fēng)險。
本控制器是通過開環(huán)實現(xiàn)的,因此系統(tǒng)的硬件比較簡單,其總體結(jié)構(gòu)如圖1所示。整個系統(tǒng)由PC/104、顯示器、鍵盤、HSM-3221/3222以及步進(jìn)電機(jī)及其驅(qū)動器組成。
[align=center]
圖1 系統(tǒng)總體結(jié)構(gòu)圖[/align]
微機(jī)通過PC/104標(biāo)準(zhǔn)接口和接口電路連接,接口板由HSM-3221/3222和必要的外圍電路組成。它接受CPU發(fā)送的動作指令,并將這些指令轉(zhuǎn)換成對應(yīng)的脈沖、方向信號,通過步進(jìn)電機(jī)驅(qū)動器指揮步進(jìn)電機(jī)動作,從而完成帶動三軸轉(zhuǎn)臺轉(zhuǎn)動所要求的角度的任務(wù)。在此,計算機(jī)的操作系統(tǒng)我們選用DOS6.22,軟件開發(fā)環(huán)境使用TurboC2.0,它們占用的存儲空間都比較小。
在系統(tǒng)的控制上,采用主要由軟件來控制。在這種控制方式中,微機(jī)只需要向接口電路發(fā)送脈沖數(shù)、脈沖方向指令,并由接口電路轉(zhuǎn)發(fā)至步進(jìn)電機(jī)的驅(qū)動器,來控制多臺步進(jìn)電機(jī)的運動控制。從而實現(xiàn)對三軸轉(zhuǎn)臺三個軸運動的控制。
3 系統(tǒng)軟件實現(xiàn)
由于本控制器采用的是主要由軟件來控制的方式,因此這部分是此次設(shè)計的重點。進(jìn)行軟件控制的方式好處是易于修改,出現(xiàn)問題后易于發(fā)現(xiàn)與解決。從而具有較高的應(yīng)用前景。系統(tǒng)的軟件流程如圖2 所示。
整個程序主要由三個部分,即控制步進(jìn)電機(jī)的單向轉(zhuǎn)動,往返轉(zhuǎn)動以及歸零來控制轉(zhuǎn)臺的工作。在初始化中,由鍵盤輸入轉(zhuǎn)臺需要轉(zhuǎn)動的角度和速度,然后仍由鍵盤控制轉(zhuǎn)臺的轉(zhuǎn)動方式。值得注意的是在往返運動中,“取原脈沖數(shù)*2”是因為往返運動指的是在初始化中所輸入的角度的正負(fù)值之間進(jìn)行往返運動。
[align=center]
圖2 系統(tǒng)軟件流程圖[/align]
以下是在DOS環(huán)境下用TurboC2.0所編的源程序的主要部分:
以其中一軸為例,程序如下:
/*————————計算步進(jìn)脈沖數(shù):——————-*/
phy_num=(phy_yz-phy_dq)*113;
if(phy_num<0)
?。?
phy_right=0;
phy_num= - phy_num;
?。?
else phy_right=1;
/*————————-送脈沖數(shù):————————-*/
for(;;)
?。?
if(phy_num>0)
?。?
if(phy_right==1) phy|=0x02;
else phy&=0xfd;
phy|=0x01;
outportb(base+0,phy);
?。?
delay(phy_sl);
if(phy_num>0)
?。?
phy&=0xfe;
outportb(base+0,phy);
phy_num——;
if(phy_right==1)
phy_dq=phy_dq+1.0/113;
else phy_dq=phy_dq-1.0/113;
?。?
/*——————————-按任意鍵暫?!?*/
if(kbhit()) break;
/*————————計數(shù)到零,停止工作————————-*/
if(phy_num==0)
break;
}
經(jīng)過運行確定此控制器工作良好,達(dá)到設(shè)計要求。
4 結(jié)束語
本文介紹了一種采用PC/104和HSM-3221/3222為核心設(shè)計接口電路以及步進(jìn)電機(jī)的三軸轉(zhuǎn)臺控制器,系統(tǒng)結(jié)構(gòu)小巧緊湊,性能穩(wěn)定可靠,控制簡單高效,人機(jī)界面友好。該控制器在三軸轉(zhuǎn)臺的運動控制系統(tǒng)中使用,效果良好。
參考文獻(xiàn):
[1] 陳云,等?;贗SA總線的步進(jìn)電機(jī)控制器軟硬件實現(xiàn) 組合機(jī)床與自動化加工技術(shù) 2002(7)。
[2] 霍迎輝,陳宇翔。步進(jìn)電機(jī)的微機(jī)和單片機(jī)控制[J]。電機(jī)電器技術(shù),2003(3)。
[3] 楊樹國,等。多臺步進(jìn)電機(jī)的計算機(jī)控制及運動規(guī)劃[J]。哈爾濱理工大學(xué)學(xué)報,2000(3)。
[4] 侯書銘。HSM-3221/3222使用說明書。
基于PC/104和步進(jìn)電機(jī)的三軸轉(zhuǎn)臺控制器設(shè)計資料下載