高 聰
(黃河水利職業(yè)技術(shù)學(xué)院,河南 開封 475000)
隨著智能制造業(yè)的發(fā)展,傳統(tǒng)意義上的運動控制系統(tǒng)難以滿足當(dāng)今數(shù)控加工行業(yè)的發(fā)展要求[1]。
傳統(tǒng)的數(shù)控加工系統(tǒng)通常采用固定式的控制模式,并且控制系統(tǒng)穩(wěn)定性差、出錯率高、控制精度較低,一旦控制系統(tǒng)出現(xiàn)故障,難以維護,嚴(yán)重影響生產(chǎn)效率[2]。因此,研發(fā)一套具有高精度、高穩(wěn)定性、高可靠性的伺服控制系統(tǒng)對智能制造領(lǐng)域具有重要的意義。
隨著微電子技術(shù)和計算機技術(shù)的快速發(fā)展,運動控制系統(tǒng)逐漸趨于智能化、微型化、標(biāo)準(zhǔn)化等方向發(fā)展[3]。由于工業(yè)生產(chǎn)領(lǐng)域的自動化程度越來越高,采用專用運動控制芯片的微型化控制系統(tǒng)逐漸成為新的發(fā)展趨勢。通過專用運動控制芯片發(fā)出控制脈沖,經(jīng)過驅(qū)動器進行處理后送至伺服電機,完成伺服運動控制。這種微型化的運動控制模式已經(jīng)在智能制造領(lǐng)域占據(jù)主導(dǎo)地位[4]。針對工業(yè)制造領(lǐng)域中傳統(tǒng)運動控制系統(tǒng)穩(wěn)定性差,控制精度低等問題,這里設(shè)計一種基于單片機+專用運動控制芯片的四軸伺服控制器。STM32 單片機采用STM32F412RE,專用運動控制芯片采用Kyopal 公司研發(fā)的X7043[5-6]。
運動控制系統(tǒng)結(jié)構(gòu)主要圍繞STM32 單片機和四軸伺服運動控制芯片X7043 進行設(shè)計。其中,上位機可與STM32單片機進行直接通信,由上位機對STM32 處理器進行初始化設(shè)置和程序設(shè)計。STM32 單片機對運動控制芯片X7043的D0~D7 寄存器進行控制。運動控制芯片X7043 輸出控制脈沖,并送至伺服驅(qū)動器。經(jīng)過伺服驅(qū)動器處理過的控制脈沖送至伺服電機。伺服電機工作過程中通過位置檢測部件將運動數(shù)據(jù)信號反饋至伺服驅(qū)動器,再由伺服驅(qū)動器送至運動控制芯片。這樣就形成了一個閉環(huán)運動控制系統(tǒng)[7]。運動控制系統(tǒng)結(jié)構(gòu)圖如圖1所示。
圖1 運動控制系統(tǒng)結(jié)構(gòu)圖
運動控制系統(tǒng)STM32 處理器與運動控制芯片X7043 總線接口設(shè)計中,微處理器WR 引腳與X7043 芯片WR 引腳相連,實現(xiàn)STM32 處理器對X7043 芯片的參數(shù)設(shè)置功能;微處理器RD 引腳與X7043 芯片RD 引腳相連,實現(xiàn)STM32處理器對X7043 芯片的數(shù)據(jù)讀取功能;微處理器A0~A4引腳與X7043 芯片A0~A4 引腳相連,實現(xiàn)STM32 處理器訪問X7043 芯片各個地址對應(yīng)的寄存器;微處理器D0~D7引腳與X7043 芯片D0~D7 引腳相連,實現(xiàn)STM32 處理器與X7043 芯片各種數(shù)據(jù)交換;微處理器RESET 引腳與X7043 芯片RESET 引腳相連,實現(xiàn)伺服控制器復(fù)位功能。STM32 單片機與X7043 總線接口設(shè)計如圖2所示。
圖2 STM32 單片機與X7043 總線接口設(shè)計
通過微控制器STM32 對X7043 的內(nèi)部寄存器進行讀寫操作,可以實現(xiàn)四軸伺服運動控制。運動控制芯片X7043 控制脈沖輸出引腳POUT 與驅(qū)動器CW/PULSE 引腳相連,實現(xiàn)控制脈沖驅(qū)動功能;X7043 引腳PDIR 與驅(qū)動器CCW/DIR引腳相連,實現(xiàn)伺服電機運動方向控制功能;X7043 引腳SON 與驅(qū)動器Servo ON 引腳相連,實現(xiàn)伺服使能控制功能;X7043 引腳CLR 與驅(qū)動器Reset 引腳相連,實現(xiàn)數(shù)據(jù)清零功能;X7043引腳INP與驅(qū)動器Positioning complete引腳相連,實現(xiàn)伺服定位功能;X7043 引腳ALM 與驅(qū)動器Alarm 引腳相連,實現(xiàn)伺服報警功能;X7043 引腳EA、EB、EZ 與驅(qū)動器Phase A、Phase B、Phase Z 引腳相連,實現(xiàn)伺服電機運動數(shù)據(jù)編碼反饋功能。X7043 信號驅(qū)動電路設(shè)計框圖如圖3所示。
圖3 X7043 信號驅(qū)動電路設(shè)計框圖
電路中主要用到的電源為5 V 和3.3 V。采用LM2596S-5 芯片提供5 V 電源,通過SPX1117M3-3.3 芯片提供3.3 V 電源。電源電路基本工作原理是首先對24 V 電源電壓進行穩(wěn)壓處理。處理方式經(jīng)過共模抑制電感電路進行穩(wěn)壓。輸出的24 V 穩(wěn)壓電源通過LM2596S-5 芯片將24 V 電源轉(zhuǎn)換為5 V 電源;然后再由SPX1117M3-3.3 芯片將5 V 電源轉(zhuǎn)換成3.3 V 電源。電壓電路原理圖如圖4所示。
圖4 電壓電路原理圖
微處理器通過對運動控制芯片X7043 內(nèi)部寄存器進行讀寫操作,以控制X7043 輸出控制脈沖,然后經(jīng)由伺服驅(qū)動器放大后送至伺服電機。在這一控制信號傳遞過程中,為了實現(xiàn)電路安全可靠,在驅(qū)動器與伺服電機之間設(shè)計了光耦隔離電路和差分電路。伺服電機在運動過程中不斷地將運動數(shù)據(jù)經(jīng)過差分電路、光耦隔離電路送至運動控制芯片X7043 中。運動控制芯片X7043 在與外圍電路的信號傳遞過程中均設(shè)置光耦隔離電路,以實現(xiàn)運動控制芯片的安全防護。
減速停止/立即停止信號主要為了完成伺服電機的減速和停止功能。其中專用運動控制芯片X7043 減速停止或立即停止信號輸入引腳為+SLD、-SLD。減速停止/立即停止信號輸入電路如圖5所示。
圖5 減速停止/立即停止信號輸入電路
因為專用運動控制芯片X7043 的引腳中并沒有專用急停信號輸入引腳,這里采用另一種設(shè)計方案。在X7043 輸出驅(qū)動脈沖信號后,會將驅(qū)動脈沖信號送至數(shù)字隔離電路,然后經(jīng)過差分電路分兩路送至伺服驅(qū)動器。因此在這個信號流程中的任何位置截斷信號的傳送即可實現(xiàn)急停的效果。本次急停電路將采用在差分芯片AM26LS31 處進行設(shè)計,即在其使能端引出信號,由控制使能端來實現(xiàn)脈沖的中斷控制。急停信號輸入接口電路如圖6所示。
圖6 急停信號輸入接口電路
伺服控制器正常工作之前,要進行運行模式設(shè)置。首先對控制器進行上電操作,檢查硬件電路是否正常工作。如果硬件電路出現(xiàn)故障,停止初始化設(shè)置;如果硬件電路正常,則依次對操作控制模式、計數(shù)器A/B 控制模式、CLR 輸出控制模式、調(diào)用減速停止命令字、比較寄存器控制模式進行設(shè)置。運行模式設(shè)置流程圖如圖7所示。
圖7 運行模式設(shè)置流程
控制器的參數(shù)設(shè)置主要是針對寄存器R1~R8 進行初始化設(shè)置。其中寄存器R1 為輸出脈沖寄存器,用來設(shè)置輸出的脈沖個數(shù)。該寄存器通常與預(yù)設(shè)計數(shù)器C 一起使用。如果輸出脈沖中斷,則剩余脈沖將寄存于計數(shù)器C 中,不需要重新設(shè)置輸出脈沖寄存器。寄存器R2 為減速點寄存器,用來設(shè)置減速點,該功能支持手動模式。如果執(zhí)行手動模式,則計數(shù)操作無效。寄存器R3 為啟動頻率寄存器,用來設(shè)置脈沖開始輸出時頻率參數(shù)和脈沖輸出結(jié)束時頻率參數(shù)。寄存器R4 為最大頻率寄存器,用來設(shè)置脈沖最大頻率。該寄存器支持多種運行模式下的脈沖最大頻率設(shè)置,例如:線性運動速率變化、S 型運動速率變化和減速點速率變化等。寄存器模式包括自動模式和手動模式。寄存器R5 和寄存器R6 分別為加速率寄存器和減速率寄存器,用來設(shè)置加速率和減速率。通常情況下,寄存器R5 和寄存器R6 一起設(shè)置。該寄存器支持自動模式和手動模式,在減速點自動模式時,加速率和減速率應(yīng)相同。寄存器R7 為S 型加/減速寄存器,該寄存器可根據(jù)實際情況決定是否設(shè)置。如果程序設(shè)計中不需要該功能,則不用設(shè)置;需要該功能時,在上電后予以設(shè)置。寄存器R8 為線性插補寄存器,用來設(shè)置多軸線性插補控制。該寄存器可根據(jù)程序功能決定是否設(shè)置,如果程序設(shè)計中不需要線性插補則不用設(shè)置;需要該功能時,則根據(jù)寄存器R1的值來設(shè)置寄存器R8 的值。
參數(shù)設(shè)置時,依次對倍頻率、啟動頻率、最大頻率、S 型加/減速、加速率、減速率進行設(shè)置。參數(shù)設(shè)置流程如圖8所示。
圖8 參數(shù)設(shè)置流程
指數(shù)驅(qū)動設(shè)置首先進行初始化設(shè)置、控制模式設(shè)置、參數(shù)設(shè)置和輸出脈沖數(shù)設(shè)置。初始化設(shè)置內(nèi)容主要包括:輸出脈沖、編碼器、計數(shù)器、輸入/輸出、輸入/輸出邏輯電平、以及靈敏度等;控制模式設(shè)置內(nèi)容主要包括:操作模式、計數(shù)器模式、CLR 模式、減速停止命令字、比較寄存器等;參數(shù)設(shè)置內(nèi)容主要包括:倍頻率、啟動頻率、最大頻率、S 型加/減速、加速率、減速率等;輸出脈沖數(shù)設(shè)置可根據(jù)程序功能進行設(shè)置。執(zhí)行指數(shù)驅(qū)動過程中不斷地讀取運行狀態(tài),根據(jù)寄存器的操作完成標(biāo)志位來判斷下一步的操作。如果操作完成標(biāo)志位為1,則重置操作完成標(biāo)志位后,寫入正方向驅(qū)動命令;如果操作完成標(biāo)志位為0,則寫入正方向驅(qū)動命令后重置操作完成標(biāo)志位,直至指數(shù)驅(qū)動操作完成。指數(shù)驅(qū)動設(shè)置流程如圖9所示。
圖9 指數(shù)驅(qū)動設(shè)置流程
在伺服運動控制過程中往往會用到連續(xù)插補,連續(xù)插補設(shè)置是實現(xiàn)插補運動的基本操作。在連續(xù)插補過程中,通常采用順序執(zhí)行模式,例如:在連續(xù)插補設(shè)置時,首先寫入第1節(jié)點數(shù)據(jù)和插補指令;然后判斷寄存器RR0/D9 的數(shù)值,如果為1,則寫入第2 節(jié)點數(shù)據(jù)和插補指令,以此類推。當(dāng)有錯誤時,結(jié)束插補指令。連續(xù)插補設(shè)置流程如圖10所示。
圖10 連續(xù)插補設(shè)置流程
在該伺服運動控制器設(shè)計中,運動控制芯片選用Kyopal公司研發(fā)的X7043,它是一種四軸伺服運動控制專用芯片。本文設(shè)計以STM32F412RE 作為主控制芯片,以X7043 為運動控制處理芯片的微型伺服控制器。通過STM32 單片機對專用運動控制芯片X7043 進行讀寫操作,從而實現(xiàn)四軸伺服控制器設(shè)計。