一種直接采用計(jì)算機(jī)串行口控制步進(jìn)電機(jī)的新方法
由圖4所示的電機(jī)運(yùn)行過(guò)程可知,在電機(jī)運(yùn)行過(guò)程中,控制脈沖的頻率f應(yīng)隨時(shí)變化以滿足電機(jī)低速起停及高速運(yùn)行的需要。脈沖頻率由發(fā)送數(shù)據(jù)的波特率(B)決定,每發(fā)出一個(gè)脈沖需用兩個(gè)二進(jìn)制位1和0來(lái)構(gòu)成其高、低電平,所以f=B/2,通過(guò)調(diào)整發(fā)送數(shù)據(jù)的波特率可改變所發(fā)出的控制脈沖的頻率。按常規(guī)則波特率系列發(fā)送數(shù)據(jù)時(shí)所產(chǎn)生的控制脈沖頻率變化較大,不能滿足電機(jī)正常起停及調(diào)速的要求,為此計(jì)算機(jī)需按非標(biāo)準(zhǔn)的濾特率發(fā)送數(shù)據(jù)以產(chǎn)生任意頻率的控制脈沖。一般在電機(jī)起動(dòng)及停止階段(Ⅰ、Ⅲ)每發(fā)送一個(gè)字節(jié)調(diào)整一次波特率,以使電機(jī)起停得盡量平滑。
Ⅰ、Ⅲ階段頻率的調(diào)整量Δf1、Δf2分別為:
Δf1=(FH-FL)/n1 (1)
Δf2=(FH-FL)/n3+1 (2)
相應(yīng)的波特率的調(diào)整量ΔB1、ΔB2分別為:
ΔB1=(BH-BL)/n1=(2FH-2FL)/n1 (3)
ΔB2=(BH-BL)/(n3+1)=(2FH-2FL)/(n3+1) (4)
發(fā)送第i個(gè)字節(jié)的波特率Bi為:
用串行口直接控制步進(jìn)電機(jī)的控制軟件流程圖如圖5所示。
4 高級(jí)控制功能
對(duì)步進(jìn)電機(jī)的高級(jí)控制,主要是指自動(dòng)找零及多機(jī)聯(lián)動(dòng)差補(bǔ)。
找零功能是指控制步進(jìn)電機(jī)驅(qū)動(dòng)運(yùn)行機(jī)構(gòu),完成定位的過(guò)程。在找零時(shí),電機(jī)一般以低速運(yùn)行,當(dāng)測(cè)到ORG信號(hào)進(jìn)電機(jī)停止。由于運(yùn)行速度低,為簡(jiǎn)化程序設(shè)計(jì),每發(fā)送一個(gè)字節(jié),在TXD端可以只輸出一個(gè)脈沖,測(cè)到ORG信號(hào)則停止發(fā)送。為保證輸出脈沖的占空比為50%,發(fā)送字節(jié)定為16#F0。找零程序的設(shè)計(jì)可參照?qǐng)D5所示。
差補(bǔ)是指控制兩臺(tái)或兩臺(tái)以上電機(jī)按規(guī)定的速比運(yùn)行,進(jìn)而控制執(zhí)行機(jī)構(gòu)沿規(guī)定的軌跡運(yùn)行。由于一般計(jì)算機(jī)只有兩個(gè)串行口,這種方法只適用于二維差補(bǔ)控制。通常兩個(gè)串行口用相同的波特率進(jìn)行發(fā)送,通過(guò)調(diào)整發(fā)送的字節(jié)數(shù)及發(fā)送每個(gè)字節(jié)所產(chǎn)生的脈沖個(gè)數(shù)的不同來(lái)調(diào)整兩個(gè)電機(jī)的運(yùn)行速度和位置。
實(shí)際運(yùn)行證明,用串行口設(shè)備的步進(jìn)電機(jī)控制器具有使用方便、性能穩(wěn)定、成本低、可移植性好、不需安裝硬件設(shè)備驅(qū)動(dòng)程序等優(yōu)點(diǎn)。
直接采用計(jì)算機(jī)串行口設(shè)計(jì)的步進(jìn)電機(jī)控制器適用于對(duì)全數(shù)字式伺服電機(jī)進(jìn)行控制。
本文對(duì)計(jì)算機(jī)串行口、并行口資源的二次開(kāi)發(fā)應(yīng)用起到了一定的借鑒應(yīng)用。
評(píng)論