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