數(shù)控系統(tǒng)中基于CPLD的步進(jìn)電機(jī)驅(qū)動模塊的設(shè)計
程序的結(jié)構(gòu)體部分由3部分組成:說明部分,主控時序進(jìn)程,主控組合進(jìn)程。在說明部分中定義相關(guān)的信號及常數(shù);在主控時序進(jìn)程中負(fù)責(zé)把計算好的次態(tài)的信息送入初態(tài),并負(fù)責(zé)最后的輸出;在主控組合進(jìn)程中負(fù)責(zé)相關(guān)的計算,比如判斷啟動和停止,正轉(zhuǎn)和反轉(zhuǎn),以及在正反轉(zhuǎn)狀態(tài)下如何取下一個狀態(tài)。下面這段程序就是結(jié)構(gòu)體里主控組合進(jìn)程中,如何判斷電機(jī)正反轉(zhuǎn)和下一步電機(jī)將如何動作的程序段。
3.3 系統(tǒng)仿真結(jié)果
整個控制程序的軟件波形仿真如下:本文引用地址:http://m.butianyuan.cn/article/190792.htm
從圖2中可以看到,在模擬步進(jìn)電機(jī)啟動、停止、正反轉(zhuǎn)時電機(jī)的狀態(tài)。比如在復(fù)位后當(dāng)START=‘1’時,如果這時DIR=‘1’表示電機(jī)是正轉(zhuǎn),則電機(jī)的通電狀態(tài)是A—AB—B—BC—C—CD—D—AD,對應(yīng)的CPLD的輸出狀態(tài)就為S0~S7。當(dāng)DIR=‘0’時表示電機(jī)是反轉(zhuǎn),就圖2的截圖來說在CLK的上升沿時,輸出是狀態(tài)S2,因為它的前一個狀態(tài)從圖上我們可以看出是S1。
4 結(jié)束語
在數(shù)控系統(tǒng)中我們希望達(dá)到準(zhǔn)確、高效、經(jīng)濟(jì)的控制,在運(yùn)動機(jī)構(gòu)的控制這一環(huán)節(jié),通過CPLD可以起到很好的效果,首先可以簡化硬件電路,提高電路的可靠性,其次可以通過對器件進(jìn)行編程來改變器件的結(jié)構(gòu),達(dá)到我們預(yù)期的功能,并且通過ISP在系統(tǒng)可編程的方法把程序加載到器件上。
通過CPLD可控制步進(jìn)電機(jī)的啟動、停止、以及正反轉(zhuǎn),本文通過軟件仿真,驗證了方案的正確性。本文所列舉的電機(jī)是四相的,如果是三相或是五相電機(jī),都可按本文的方法實現(xiàn),如果對電機(jī)采用的單相通電的方法,也可按本文的方法實現(xiàn),同樣只須稍微修改參數(shù)即可。
評論