黃建軍 邵中魁 陶仁和 姜耀林
(浙江省機(jī)電設(shè)計(jì)研究院有限公司 杭州 310051)
在實(shí)際工業(yè)生產(chǎn)中,由于零件尺寸一致性差、傳動機(jī)構(gòu)熱變形、機(jī)械磨損等原因,導(dǎo)致許多復(fù)雜傳動機(jī)構(gòu)的相關(guān)重要節(jié)點(diǎn)位置需要實(shí)時(shí)動態(tài)精確調(diào)節(jié)。以高速壓力機(jī)滑塊下死點(diǎn)位置為例,高速壓力機(jī)加工的工件多種多樣,每種沖壓件的形狀厚度也不一樣,每更換一種沖壓件,壓力機(jī)滑塊下死點(diǎn)位置得重新調(diào)節(jié);另外,高速壓力機(jī)在高速沖壓過程中機(jī)身及運(yùn)動部件產(chǎn)生的熱變形、運(yùn)動關(guān)節(jié)之間的間隙等將導(dǎo)致滑塊下死點(diǎn)位置逐漸改變。因此,如何精確地實(shí)現(xiàn)滑塊下死點(diǎn)位置調(diào)節(jié)是高速壓力機(jī)必不可少的一項(xiàng)關(guān)鍵技術(shù)。
位置調(diào)節(jié)裝置一般采用伺服電機(jī)作為動力輸出源,通過一系列的傳動機(jī)構(gòu)最終實(shí)現(xiàn)重要節(jié)點(diǎn)位置實(shí)時(shí)調(diào)節(jié)。比如,高速壓力機(jī)的滑塊下死點(diǎn)位置調(diào)節(jié)裝置采用伺服電機(jī)、滾珠絲杠等驅(qū)動滑塊上下運(yùn)動,實(shí)現(xiàn)滑塊下死點(diǎn)位置精調(diào)[1-2]。
據(jù)此,本文研制了一套基于單片機(jī)的位置實(shí)時(shí)精調(diào)閉環(huán)伺服控制系統(tǒng),該控制系統(tǒng)采用嵌入式控制系統(tǒng)方案,以嵌入式CPU為核心,在此基礎(chǔ)上配以相應(yīng)的外圍硬件電路,共同組成功能完善的閉環(huán)控制系統(tǒng)。該控制系統(tǒng)體積小,結(jié)構(gòu)緊湊,易于實(shí)現(xiàn)機(jī)構(gòu)重要節(jié)點(diǎn)位置實(shí)時(shí)精確調(diào)節(jié),具有很強(qiáng)的通用性。
本文設(shè)計(jì)的位置實(shí)時(shí)精調(diào)閉環(huán)伺服控制系統(tǒng)原理如圖1所示,主要包括控制系統(tǒng)CPU、電機(jī)驅(qū)動系統(tǒng)、機(jī)械傳動機(jī)構(gòu)及位置檢測模塊等。上位機(jī)實(shí)時(shí)發(fā)送位置控制信號給控制系統(tǒng)CPU(即嵌入式處理器),同時(shí)機(jī)械傳動機(jī)構(gòu)上安裝的位置檢測裝置也實(shí)時(shí)發(fā)送位置反饋信號給CPU,CPU根據(jù)上位機(jī)控制信號與實(shí)際位置反饋之差實(shí)時(shí)動態(tài)控制電機(jī)驅(qū)動系統(tǒng)以調(diào)整機(jī)械傳動機(jī)構(gòu)實(shí)際位置,從而實(shí)現(xiàn)位置實(shí)時(shí)閉環(huán)控制。
圖1 伺服控制系統(tǒng)原理示意圖
目前嵌入式處理器多種多樣,其中應(yīng)用最普遍的主要有單片機(jī)、DSP、ARM等微處理器芯片。本文采用STC12C5A60S2芯片作為微處理器。該芯片是一款多功能單片機(jī),它的計(jì)算速度高、運(yùn)行功率小、抗干擾能力強(qiáng)、穩(wěn)定性能好,特別適用于一些干擾狀況較惡劣的工業(yè)領(lǐng)域[3]。
根據(jù)上述原理示意圖,設(shè)計(jì)該位置實(shí)時(shí)精調(diào)閉環(huán)伺服控制系統(tǒng)詳細(xì)技術(shù)流程如圖2所示[4]。
圖2 伺服控制系統(tǒng)詳細(xì)技術(shù)流程
STC12C5A60S2單片機(jī)接收外界輸入的控制信號后,以設(shè)定的頻率發(fā)送指令脈沖,該脈沖信號經(jīng)AM26LS31分頻處理后輸入伺服驅(qū)動器,控制伺服電機(jī)運(yùn)轉(zhuǎn),最終帶動擬控制目標(biāo)節(jié)點(diǎn)位置運(yùn)動。在擬控制目標(biāo)節(jié)點(diǎn)位置上安裝有直線光柵尺,光柵尺產(chǎn)生脈沖信號,該脈沖信號經(jīng)AM26LS32處理后分兩路輸入單片機(jī),一路光柵脈沖信號作為方向判定信號輸入單片機(jī),另一路光柵脈沖信號作為脈沖計(jì)數(shù)信號輸入單片機(jī)[5]。單片機(jī)根據(jù)處理后的光柵脈沖信號調(diào)整給伺服電機(jī)發(fā)送的脈沖數(shù),構(gòu)成閉環(huán)控制系統(tǒng),以精確控制擬控制目標(biāo)節(jié)點(diǎn)位置。
另外,為了方便觀察該伺服控制系統(tǒng)的各個(gè)運(yùn)行參數(shù),采用LCD1602作為該系統(tǒng)的人機(jī)界面,并由STC12C5A60S2單片機(jī)控制該顯示屏的狀態(tài)。
基于Protel軟件平臺搭建位置實(shí)時(shí)精調(diào)閉環(huán)伺服控制系統(tǒng)硬件電路,如圖3所示。
圖3 伺服控制系統(tǒng)硬件電路
STC12C5A60S2單片機(jī)在其引腳 XTAL1與XTAL2之間外接一個(gè)24MHz晶振作為CPU的時(shí)鐘源。單片機(jī)的P1.0~P1.7引腳接顯示屏的第7~14位即 D0~D7共 8個(gè)數(shù)據(jù)引腳,用于雙向并行傳輸8位數(shù)據(jù)。單片機(jī)的 P2.0引腳接顯示屏的第 4位即RS數(shù)據(jù)/命令選擇引腳。當(dāng)RS為高電平時(shí)D0~D7傳輸數(shù)據(jù),當(dāng)RS為低電平時(shí)D0~D7傳輸指令。單片機(jī)的P2.1引腳接顯示屏的第5位即R/W讀/寫選擇引腳,當(dāng)R/W為高電平時(shí)對顯示屏進(jìn)行讀操作,當(dāng)R/W為低電平時(shí)對顯示屏進(jìn)行寫操作。單片機(jī)的P2.2引腳接顯示屏的第6位即E使能信號引腳,當(dāng)E引腳由高電平跳變成低電平時(shí)顯示屏執(zhí)行命令。
伺服電機(jī)采用位置控制方式,并且每接收一千個(gè)指令脈沖旋轉(zhuǎn)360°。STC12C5A60S2單片機(jī)的P2.3引腳用于發(fā)送控制伺服電機(jī)旋轉(zhuǎn)圈數(shù)的高低電平脈沖信號,該引腳接分頻芯片AM26LS31的第1位引腳,該脈沖信號由AM26LS31分頻處理后變成兩路脈沖信號puls+和puls-,經(jīng)AM26LS31的第2、3位引腳輸入伺服電機(jī)驅(qū)動器,以控制伺服電機(jī)的旋轉(zhuǎn)圈數(shù)。
單片機(jī)的 P2.4引腳用于控制伺服電機(jī)旋轉(zhuǎn)方向。該引腳接分頻芯片AM26LS31的第7位引腳,該脈沖信號由 AM26LS31分頻處理后變成兩路高低電平信號sign+和sign-,經(jīng)AM26LS31的第5、6位引腳輸入伺服電機(jī)驅(qū)動器,以控制伺服電機(jī)的旋轉(zhuǎn)方向(正轉(zhuǎn)或反轉(zhuǎn))。
光柵尺組件安裝在擬控制目標(biāo)節(jié)點(diǎn)位置上,光柵尺的分辨率為 10μm,當(dāng)擬控制目標(biāo)節(jié)點(diǎn)位置運(yùn)動時(shí)光柵尺共輸出 A+、A-、B+、B-、Z+、Z-共 6路高低電平脈沖信號,在此只取 A+、A-、B+、B-這 4路脈沖信號。其中 A+、A-兩路脈沖信號分別連接合頻芯片AM26LS32的第1、2位引腳,B+、B-兩路脈沖信號分別連接合頻芯片 AM26LS32的第6、7位引腳。
A+、A-兩路脈沖信號經(jīng) AM26LS32合頻處理后變成一路高低電平脈沖信號。并由AM26LS32的第3位引腳輸入單片機(jī)的P3.2引腳,用于引發(fā)單片機(jī)的外部中斷,每一次中斷脈沖數(shù)目加一。
B+、B-兩路脈沖信號經(jīng) AM26LS32合頻處理后變成一路高低電平脈沖信號。并由AM26LS32的第5位引腳輸入單片機(jī)的P2.5引腳,用于脈沖信號鑒相,由此判斷擬控制目標(biāo)節(jié)點(diǎn)位置運(yùn)動方向。
零位傳感器用于判斷擬控制目標(biāo)節(jié)點(diǎn)位置的絕對位置。當(dāng)擬控制目標(biāo)節(jié)點(diǎn)位置經(jīng)過零位傳感器時(shí)電平從1變成0。該下降沿信號直接輸入單片機(jī)的P3.3引腳,并引起單片機(jī)外部中斷,脈沖數(shù)目重新設(shè)置為0。
位置實(shí)時(shí)精調(diào)閉環(huán)伺服控制系統(tǒng)的控制程序流程如圖4所示。
圖4 伺服控制系統(tǒng)控制程序流程
控制系統(tǒng)啟動后先設(shè)置外部中斷1為下降沿觸發(fā)。然后開外部中斷1,進(jìn)入外部中斷1等待狀態(tài)。一旦擬控制目標(biāo)節(jié)點(diǎn)位置到達(dá)零位傳感器位置時(shí)從STC12C5A60S2單片機(jī)P3.3引腳輸入的下降沿信號將觸發(fā)外部中斷1并進(jìn)入外部中斷1處理程序。在外部中斷1處理程序中,設(shè)置外部中斷0為下降沿觸發(fā),脈沖計(jì)數(shù)清零,n=0,然后開外部中斷0,進(jìn)入外部中斷0等待狀態(tài)。
當(dāng)擬控制目標(biāo)節(jié)點(diǎn)位置運(yùn)動使光柵尺產(chǎn)生脈沖信號時(shí)從STC12C5A60S2單片機(jī)P3.2引腳輸入的A路脈沖信號下降沿將觸發(fā)外部中斷 0,并進(jìn)入外部中斷0處理程序。在外部中斷1處理程序中,結(jié)合此時(shí)從STC12C5A60S2單片機(jī)P2.5引腳輸入的B路脈沖信號的電平狀態(tài)判斷機(jī)構(gòu)節(jié)點(diǎn)的運(yùn)動方向,如果判定擬控制目標(biāo)節(jié)點(diǎn)位置此時(shí)往下運(yùn)動,則開始脈沖計(jì)數(shù),n=n+1,并重新進(jìn)入外部中斷 0等待狀態(tài),不斷進(jìn)行脈沖計(jì)數(shù)。
當(dāng)單片機(jī)P3.2引腳下降沿觸發(fā)外部中斷0時(shí)根據(jù)單片機(jī) P2.5引腳電平信號判定擬控制目標(biāo)節(jié)點(diǎn)位置開始往上運(yùn)動,則立即關(guān)閉外部中斷 0,并判定此時(shí)的脈沖計(jì)數(shù)結(jié)果n值。若此時(shí)n=0,則直接返回外部中斷1等待狀態(tài),重新等待限位中斷。若此時(shí)n值不等于0,則根據(jù)此時(shí)的脈沖計(jì)數(shù)結(jié)果 n值可計(jì)算出此時(shí)擬控制目標(biāo)節(jié)點(diǎn)位置的下死點(diǎn)位置,計(jì)算它與理想的擬控制目標(biāo)節(jié)點(diǎn)位置的差值,據(jù)此設(shè)置給伺服電機(jī)發(fā)送的指令脈沖數(shù),并控制伺服電機(jī)旋轉(zhuǎn)方向脈沖信號,實(shí)現(xiàn)擬控制目標(biāo)節(jié)點(diǎn)位置的精確調(diào)節(jié)。調(diào)節(jié)完伺服電機(jī)后程序重新返回外部中斷1等待狀態(tài)。
根據(jù)前述設(shè)計(jì)的伺服控制系統(tǒng)硬件電路圖,基于Protel軟件設(shè)計(jì)該伺服控制系統(tǒng)核心控制電路板布線圖如圖5所示。
圖5 伺服控制系統(tǒng)protel布線圖
在此基礎(chǔ)上,外協(xié)購置各種電子元器件,外協(xié)制造 PCB 印刷電路板,并完成電子元器件焊接(貼裝)工作。最終制造的伺服控制系統(tǒng)核心控制PCB電路板如圖6所示。
圖6 伺服控制系統(tǒng)PCB電路板
根據(jù)前述設(shè)計(jì)的伺服控制系統(tǒng)控制程序流程圖,基于MDK5(keil uvision5)軟件開發(fā)相應(yīng)的嵌入式控制程序。限于篇幅,本文僅簡要介紹編寫的主程序、伺服電機(jī)發(fā)指令脈沖子程序、外部中斷0中斷服務(wù)程序、外部中斷1中斷服務(wù)程序四大核心程序模塊,其余不再贅述。
(1)編寫主程序如下:
(2)編寫給伺服電機(jī)發(fā)指令脈沖子程序如下:
(3)編寫外部中斷0中斷服務(wù)程序如下:
(4)編寫外部中斷1中斷服務(wù)程序如下:
筆者所在團(tuán)隊(duì)曾開發(fā)了一種高速壓力機(jī)滑塊下死點(diǎn)調(diào)節(jié)機(jī)構(gòu),如圖7所示,其工作原理為:在高速壓力機(jī)高速運(yùn)轉(zhuǎn)過程中需要調(diào)節(jié)下死點(diǎn)高度時(shí),伺服電機(jī)作為動力輸出端輸出高速旋轉(zhuǎn)運(yùn)動,經(jīng)過減速機(jī)減速后驅(qū)動螺母正轉(zhuǎn)或者反轉(zhuǎn),螺母驅(qū)動滑動絲杠豎直向上或者豎直向下運(yùn)動,增大或減小下擺桿鉸鏈支座的高度,從而實(shí)現(xiàn)滑塊下死點(diǎn)高度位置自動調(diào)節(jié)。
圖7 滑塊下死點(diǎn)調(diào)節(jié)機(jī)構(gòu)結(jié)構(gòu)原理圖
將本文研制的位置實(shí)時(shí)精調(diào)閉環(huán)伺服控制系統(tǒng)應(yīng)用于該高速壓力機(jī)滑塊下死點(diǎn)調(diào)節(jié)機(jī)構(gòu),并在高速壓力機(jī)滑塊上安裝直線光柵尺,STC12C5A60S2單片機(jī)實(shí)時(shí)根據(jù)上位機(jī)指令控制伺服電機(jī)運(yùn)動,同時(shí)根據(jù)光柵尺反饋脈沖信號實(shí)時(shí)修正伺服電機(jī)運(yùn)動控制指令。通過多次反復(fù)試驗(yàn)驗(yàn)證,該閉環(huán)伺服控制系統(tǒng)在高速壓力機(jī)滑塊下死點(diǎn)位置調(diào)節(jié)機(jī)構(gòu)中的位置控制精度達(dá)±0.05mm、且動態(tài)響應(yīng)速度也較快,達(dá)到了很好的位置實(shí)時(shí)控制效果。
(1)本文研制的位置實(shí)時(shí)精調(diào)閉環(huán)伺服控制系統(tǒng)采用嵌入式控制方案,以STC12C5A60S2單片機(jī)作為核心微處理器,配以相應(yīng)的外圍硬件電路,共同組成功能完善的閉環(huán)控制系統(tǒng)。該控制系統(tǒng)體積小,結(jié)構(gòu)緊湊,易于實(shí)現(xiàn)擬控制目標(biāo)節(jié)點(diǎn)位置實(shí)時(shí)精確調(diào)節(jié),具有很強(qiáng)的通用性。
(2)基于Protel軟件平臺搭建了位置實(shí)時(shí)精調(diào)閉環(huán)伺服控制系統(tǒng)硬件電路。
(3)構(gòu)建了位置實(shí)時(shí)精調(diào)閉環(huán)伺服控制系統(tǒng)的控制程序流程。該伺服控制系統(tǒng)通過外部中斷的方式進(jìn)行光柵信號脈沖計(jì)數(shù),并根據(jù)脈沖計(jì)數(shù)結(jié)果計(jì)算擬控制目標(biāo)節(jié)點(diǎn)位置,計(jì)算與理想位置的差值并設(shè)置伺服電機(jī)發(fā)送的脈沖數(shù)進(jìn)行位置補(bǔ)償,如此構(gòu)成閉環(huán)控制系統(tǒng),實(shí)現(xiàn)了擬控制目標(biāo)節(jié)點(diǎn)位置的實(shí)時(shí)精確自動調(diào)節(jié)。
(4)研制了伺服控制系統(tǒng)核心控制PCB電路板,開發(fā)了相應(yīng)的嵌入式控制程序,并將該伺服控制系統(tǒng)成功應(yīng)用于高速壓力機(jī)滑塊下死點(diǎn)位置實(shí)時(shí)動態(tài)調(diào)節(jié),達(dá)到了很好的位置實(shí)時(shí)控制效果。