一種步進(jìn)電機(jī)控制器及其控制方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種電機(jī)控制技術(shù)領(lǐng)域,特別涉及一種步進(jìn)電機(jī)控制器及其控制方 法。
【背景技術(shù)】
[0002] 步進(jìn)電機(jī)是將電脈沖信號(hào)轉(zhuǎn)換為角位移或線(xiàn)位移的開(kāi)環(huán)控制元件,在工業(yè)生產(chǎn) 中,步進(jìn)電機(jī)被廣泛用于各種精密運(yùn)動(dòng)機(jī)構(gòu)中,完成系統(tǒng)的位置控制功能。步進(jìn)電機(jī)運(yùn)行過(guò) 程中面臨的主要問(wèn)題有振動(dòng)、過(guò)熱和失步等,需要通過(guò)控制器采用細(xì)分、電流衰減、閉環(huán)控 制等技術(shù)手段來(lái)解決。對(duì)步進(jìn)電機(jī)的控制和驅(qū)動(dòng),目前大多采用單片機(jī)結(jié)合專(zhuān)用驅(qū)動(dòng)芯片 的方式,或者采用DSP芯片結(jié)合專(zhuān)用驅(qū)動(dòng)芯片方式,或者采用FPGA結(jié)合專(zhuān)用驅(qū)動(dòng)芯片的方 式。
[0003] 公告號(hào)為03129924. 5,名稱(chēng)為"全數(shù)字細(xì)分型高精度步進(jìn)電機(jī)控制器"的發(fā)明專(zhuān) 利,使用美國(guó)TI公司的DSP作為主控芯片,配合使用大量的濾波、模數(shù)轉(zhuǎn)換等1C,很明顯方 案成本太高不適合普及使用。另外,該發(fā)明專(zhuān)利的通訊單元上也沒(méi)有設(shè)計(jì)相關(guān)的配置接口, 無(wú)法實(shí)現(xiàn)工業(yè)級(jí)的多地址串聯(lián)控制。
[0004] 申請(qǐng)?zhí)枮?01010280597. 1,名稱(chēng)為"步進(jìn)電機(jī)驅(qū)動(dòng)器"的發(fā)明專(zhuān)利,使用單片機(jī)作 為主控芯片,配合使用美國(guó)Allegro公司的A3977電機(jī)驅(qū)動(dòng)芯片,同樣具有方案成本高的缺 陷,而且沒(méi)有電流自動(dòng)衰減、過(guò)熱保護(hù)、閉環(huán)控制等功能。
[0005] 公告號(hào)為00253539,名稱(chēng)為"小型步進(jìn)電機(jī)控制器"的實(shí)用新型專(zhuān)利,使用單片機(jī) 作為主控芯片,具有網(wǎng)絡(luò)通訊接口,但是控制方案太過(guò)于簡(jiǎn)單,缺乏閉環(huán)控制、電流衰減、過(guò) 熱保護(hù)等功能;電機(jī)驅(qū)動(dòng)電路采用光耦、M0SFET、串聯(lián)電阻實(shí)現(xiàn),驅(qū)動(dòng)能力較弱,控制器也沒(méi) 有提供動(dòng)態(tài)參數(shù)配置接口。
[0006] 申請(qǐng)?zhí)枮?00920213892. 8的"一種步進(jìn)電機(jī)控制器"實(shí)用新型專(zhuān)利,采用FPGA作 為主控芯片,配合使用比較器驅(qū)動(dòng)步進(jìn)電機(jī),不難看出該方案具有成本高,靈活性差,驅(qū)動(dòng) 能力小等缺陷,而且該方案采用按鍵方式控制,沒(méi)有網(wǎng)絡(luò)通訊接口及配置接口,不適合工業(yè) 級(jí)用途。
[0007]綜上所述,有必要設(shè)計(jì)一種低成本、不依賴(lài)進(jìn)口驅(qū)動(dòng)芯片、具備多種通訊接口、可 動(dòng)態(tài)實(shí)時(shí)配置、具備電流閉環(huán)控制、位置閉環(huán)控制、可存儲(chǔ)執(zhí)行用戶(hù)自定義程序等功能的細(xì) 分步進(jìn)電機(jī)控制器,以解決上述問(wèn)題。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明是為了克服現(xiàn)有技術(shù)的不足,滿(mǎn)足各種工業(yè)應(yīng)用需求,提出一種步進(jìn)電機(jī) 控制器及其控制方法,具備豐富的通訊接口,體積小和成本低,能實(shí)現(xiàn)步進(jìn)電機(jī)自動(dòng)勻加速 或勻減速的功能。
[0009] 本發(fā)明通過(guò)以下技術(shù)方案解決上述問(wèn)題:
[0010] 本發(fā)明提供了 一種步進(jìn)電機(jī)控制器,包括
[0011] 電源隔離模塊,用于隔離電源和各個(gè)模塊;
[0012] 通訊與命令處理模塊,包括選擇器、通訊接口和命令處理模塊,通過(guò)通訊接口實(shí)現(xiàn) 上位機(jī)與數(shù)字控制模塊的通信,并對(duì)上位機(jī)的命令進(jìn)行配置處理;
[0013] 數(shù)字控制模塊,包括EEPR0M和MCU,用于對(duì)上位機(jī)的命令進(jìn)行處理后控制步進(jìn)電 機(jī)動(dòng)作;
[0014] 信號(hào)隔離模塊,用于消除所述通訊接口信號(hào)、電源功率電路和步進(jìn)電機(jī)對(duì)所述數(shù) 字控制模塊的干擾;
[0015] 功率放大模塊,用于實(shí)現(xiàn)對(duì)所述數(shù)字控制模塊輸出的調(diào)制信號(hào)進(jìn)行功率放大,輸 出設(shè)定的電流值到電機(jī)繞組。
[0016] 進(jìn)一步,所述功率放大模塊包括輸入電路、電流反饋電路和H橋電路,所述輸入電 路與H橋電路連接,所述H橋電路與電流反饋電路連接。
[0017] 進(jìn)一步,所述功率放大模塊包括輸入電路、電流反饋電路和H橋電路,所述H橋電 路包括第一三極管、第二三極管、第三三極管、第四三極管、第一快速二極管、第二快速二極 管、第三快速二極管、第四快速二極管,所述第一三極管和第二三極管為NPN型晶體管,所 述第三三極管和第四三極管為PNP型晶體管,所述第一三極管的集電極分別與第三快速二 極管的陰極、第二快速二極管的陰極和第二三極管的集電極連接并與電源正極連接,所述 第一三極管的發(fā)射極分別與第三快速二極管的陽(yáng)極、第三三極管的發(fā)射極和第四快速二極 管的陰極連接,所述第二三極管的發(fā)射極分別與第二快速二極管的陽(yáng)極、第四三極管的發(fā) 射極和第一快速二極管的陰極連接,所述第三三極管的集電極與第四三極管的集電極之間 連接步進(jìn)電機(jī)的一相繞組。
[0018] 進(jìn)一步,H橋電路包括第一 NM0S管、第二NM0S管、第三NM0S管、第四NM0S管、第一 快速二極管、第二快速二極管、第三快速二極管和第四快速二極管,所述第一 NM0S管的漏 極連接電源正極,所述第一 NM0S管柵極連接H橋驅(qū)動(dòng)電路的輸出端,所述第一 NM0S管源極 連接第三快速二極管的陽(yáng)極,所述第二NM0S管的漏極連接電源正極,所述第二NM0S管的柵 極連接H橋驅(qū)動(dòng)電路的輸出端,所述第二NM0S管源極連接第二快速二極管的陽(yáng)極,所述第 三NM0S管的漏極分別與第一 NM0S管的源極和第四快速二極管的陰極連接,所述第三NM0S 管柵極連接H橋驅(qū)動(dòng)電路輸出端,所述第四NM0S管漏極分別與第二NM0S管的源極和第一 快速二極管的陰極連接,所述第四NM0S管柵極連接H橋驅(qū)動(dòng)電路輸出端,所述第四NM0S管 的源極與第一 NM0S管的源極之間連接步進(jìn)電機(jī)的一相繞組。
[0019]進(jìn)一步,所述通訊接 口包括 RS232、RS485/CAN、RS422、I2C、SPI、PULSE、兩個(gè)緊急 停車(chē)輸入接口和四個(gè)通用輸入輸出口形成開(kāi)環(huán)模式下的上下限位控制及閉環(huán)模式下的編 碼器位置反饋輸入,所述上位機(jī)實(shí)時(shí)配置每個(gè)端口方向和電平值。
[0020] 本發(fā)明還包括一種步進(jìn)電機(jī)控制器的控制方法,包括以下步驟:
[0021] 步驟一,步進(jìn)電機(jī)控制器上電后檢測(cè)通訊接口的選擇設(shè)置;
[0022] 步驟二,根據(jù)所述通訊接口的設(shè)置進(jìn)行初始化變量和初始I/O 口;
[0023] 步驟三,等待上位機(jī)發(fā)出配置命令或步進(jìn)命令,發(fā)出配置命令則執(zhí)行步驟四,發(fā)出 步進(jìn)命令則執(zhí)行步驟五;
[0024] 步驟四,數(shù)字控制模塊進(jìn)入配置子程序,對(duì)控制參數(shù)進(jìn)行修改并寫(xiě)入EEPR0M ;
[0025] 步驟五,數(shù)字控制模塊進(jìn)入步進(jìn)命令,配置PWM參數(shù);
[0026] 步驟六,根據(jù)所述配置PWM參數(shù),數(shù)字控制模塊檢測(cè)步進(jìn)電機(jī)當(dāng)前的位置信息,執(zhí) 行動(dòng)態(tài)實(shí)時(shí)配置的勻加速或勻減速控制步驟。
[0027] 進(jìn)一步,所述步驟四中的配置命令包括用戶(hù)自定義指令程序,所述用戶(hù)自定義指 令程序通過(guò)所述通訊與命令處理模塊寫(xiě)入EEPR0M中,所述步進(jìn)電機(jī)控制器在開(kāi)機(jī)時(shí)自動(dòng) 選擇自動(dòng)執(zhí)行用戶(hù)自定義指令程序,實(shí)現(xiàn)步進(jìn)電機(jī)控制器脫離上位機(jī)自動(dòng)執(zhí)行用戶(hù)自定義 指令程序,具體步驟包括:
[0028] S401 :所述步進(jìn)電機(jī)控制器在開(kāi)機(jī)時(shí)自動(dòng)選擇一種接口與上位機(jī)通訊;
[0029] S402:用戶(hù)通過(guò)自定義指令集中的命令向所述步進(jìn)電機(jī)控制器寫(xiě)入自定義指令程 序;
[0030] S403 :所述步進(jìn)電機(jī)控制器將用戶(hù)自定義指令程序存儲(chǔ)在EEPR0M中;
[0031] S404 :所述步進(jìn)電機(jī)控制器再次開(kāi)機(jī),自動(dòng)選擇執(zhí)行用戶(hù)自定義指令程序模式;
[0032] S405 :所述步進(jìn)電機(jī)控制器自動(dòng)執(zhí)行用戶(hù)自定義指令程序,所述用戶(hù)自定義程序 包含步進(jìn)電機(jī)控制器配置參數(shù)、10端口讀寫(xiě)和步進(jìn)電機(jī)運(yùn)動(dòng)控制程序。
[0033] 進(jìn)一步,所述步驟六中的動(dòng)態(tài)實(shí)時(shí)配置的勻加速或勻減速的控制過(guò)程,具體步 驟:
[0034] S601 :設(shè)定步進(jìn)電機(jī)的運(yùn)動(dòng)速度,將步進(jìn)電機(jī)的每個(gè)步進(jìn)位置或細(xì)分位置設(shè) 為速度參考點(diǎn),設(shè)轉(zhuǎn)動(dòng)第一步時(shí)的速度為%,線(xiàn)性加速比率為a,則第n步時(shí)的速度v n= a(Iri)*v0;
[0035] S602 :設(shè)定步進(jìn)電機(jī)的步進(jìn)數(shù)steps,則從0加速到vmax所需要的步進(jìn)數(shù)為 stepsmax, stepsmax= log a(vmax/v〇)+1 ;
[0036] S603 :判斷所述速度增大所需要的步進(jìn)數(shù)stepsmax與設(shè)定步進(jìn)電機(jī)步進(jìn)數(shù)steps 的大小,若 stepsmax小于 steps,則當(dāng) steps max= 0? 5*steps,初始化計(jì)數(shù)器 v ent;當(dāng) steps max 大于steps,則初始化計(jì)數(shù)器vcnt;
[0037] S604