(中山市拓普康自控設備技術(shù)有限公司,廣東 528400)
本文基于ARM9TDMI+FPGA的嵌入式硬件平臺和eCOS嵌入式實時操作系統(tǒng)設計彈簧機控制器,實現(xiàn)彈簧機系統(tǒng)高精度的位置控制。比之于臺灣的基于工控PC板的系統(tǒng),成本更低,集成度更高,運行更穩(wěn)定可靠。
本設計系列化產(chǎn)品目前已經(jīng)產(chǎn)業(yè)化,以高精度、高可靠性、高性價比的巨大優(yōu)勢打破了臺灣彈簧機控制器在國內(nèi)彈簧機市場的壟斷格局,顯著提高了國產(chǎn)彈簧機械的市場競爭力,創(chuàng)造了顯著的經(jīng)濟效益和社會效益。
彈簧機控制器采用整體式結(jié)構(gòu),4軸伺服電機控制,總體結(jié)構(gòu)示意圖如圖1所示。
圖1 彈簧機系統(tǒng)組成
彈簧機控制器主機提供以下接口:
伺服驅(qū)動器控制接口:5個軸控制接口,提供包括脈沖+方向輸出、PC信號輸入、伺服報警信號輸入等;
I/O接口:24輸入/16輸出,輸入接口包括探針、急停、倍率開關(4個輸入)、送線架報警信號、啟動,輸出信號包括8個汽缸;
人機接口:按鍵輸入,LCD顯示,USB接口;
MPG接口:支持手持操作盒接入,包括手搖脈沖發(fā)生器信號接入和軸選、倍率等信號的接入。
控制器硬件部分分為如下主要部件:CPU模塊、FPGA模塊、IO接口、人機接口,結(jié)構(gòu)框圖如圖2所示。
圖2 硬件結(jié)構(gòu)框圖
CPU模塊采用ARM9TDMI為核心處理器,F(xiàn)PGA實現(xiàn)運動控制所需輸入信號解碼、輸出信號編碼,實現(xiàn)多軸聯(lián)動實時運動控制輸出。
IO接口提供信號調(diào)理功能:將CPU和FPGA的輸出信號調(diào)理成彈簧機各組件設備所能接受的信號、將設備的反饋信號調(diào)理使得FPGA和CPU可以處理。
人機接口為用戶提供操作使用系統(tǒng)的接口,顯示彈簧機實時運行狀態(tài)。
軟件平臺基于eCOS實時多任務操作系統(tǒng),由各功能模塊有機聯(lián)系而構(gòu)成。軟件結(jié)構(gòu)框圖如圖3所示。
圖3 軟件結(jié)構(gòu)框圖
底層驅(qū)動層為圖形系統(tǒng)和文件系統(tǒng)提供底層驅(qū)動,提供eCOS的任務調(diào)度管理,提供對USB、鍵盤等接口的驅(qū)動。通過eCOS實時多任務管理,將應用軟件層各模塊和硬件驅(qū)動層聯(lián)系起來,組成系統(tǒng)軟件。
應用軟件大致可分為三個主要任務,即人機界面、數(shù)據(jù)處理和實時控制。這三個任務的主要功能如下:
1)人機界面
人機界面作為系統(tǒng)和用戶的交互平臺,一方面接受用戶所編寫的程序和指令,另一方面將系統(tǒng)的加工信息反饋給用戶。人機界面采用類Windows界面的MiniGUI圖形庫。
人機界面的功能包括程序的編輯、顯示和管理,系統(tǒng)運行狀態(tài)的顯示,參數(shù)管理,系統(tǒng)權(quán)限管理,在線幫助,U盤操作和限時停機等功能。
2)數(shù)據(jù)處理
數(shù)據(jù)處理主要是將加工程序或指令進行解釋、歸一化的處理,為實時控制模塊提供可操作的數(shù)據(jù)。用戶通過指令式表格的形式編輯程序,支持順序指令、循環(huán)指令和跳轉(zhuǎn)指令,將解釋完成的數(shù)據(jù)傳送給實時任務。
程序的最大長度為500行,在執(zhí)行完成之后返回程序首行繼續(xù)執(zhí)行。數(shù)據(jù)處理任務采用一次性將文件內(nèi)容讀入緩沖的形式,在本執(zhí)行周期內(nèi)數(shù)據(jù)不會改變。在執(zhí)行過程中,若用戶修改程序,則在下個執(zhí)行周期有效。數(shù)據(jù)處理執(zhí)行流程如圖4所示。
圖4 數(shù)據(jù)處理流程圖
3)實時控制
實時控制作為系統(tǒng)的總控任務,是應用軟件中優(yōu)先級最高的任務。實時控制需要完成的功能包括:
(1)系統(tǒng)狀態(tài)和工作方式的處理,保證系統(tǒng)狀態(tài)的唯一性和確定性;
(2)自動方式下的加減速處理和插補計算;
(3)手動方式下的處理,包括手動進給的加減速;
(4)原點方式下的返回原點處理;
(5)測試方式下的運行處理;
(6)I/O端口的管理。
實時控制任務每4ms(或者2ms)調(diào)度執(zhí)行一次,且優(yōu)先級最高;數(shù)據(jù)處理任務每16ms調(diào)度執(zhí)行一次;人機界面作為主程序,不參與系統(tǒng)任務的調(diào)度,作為背景程序始終在空閑時間內(nèi)運行。這樣,系統(tǒng)的調(diào)度周期是確定的、固定的,每個任務按照設定的時間節(jié)拍運行。
系統(tǒng)的4ms定時中斷由硬件FPGA提供,不僅能夠保證任務運行節(jié)拍的一致性,而且時鐘中斷源保證唯一性。這樣,系統(tǒng)將不會在中斷程序中處理這些任務,只是在中斷服務程序中把這些任務喚醒,然后就退出中斷,既可以提高系統(tǒng)的響應能力,又可以從軟件方面保證系統(tǒng)的準確定時。
不同的彈簧機機型需要不同的軸控配置,二軸控制應用包括凸輪軸和送線軸,三軸控制包括凸輪軸、轉(zhuǎn)芯軸和送線軸,五軸控制是在三軸控制的基礎上增加卷取軸和夾耳軸,或者是上、下切刀軸。本設計最大支持5軸控制,根據(jù)具體的彈簧機機型需求,控制軸數(shù)可在1到5軸之間靈活設置,對應著運行不同的控制程序,以滿足具體的應用需求。
按照行業(yè)規(guī)范軸的指示代號有固定的約定:X軸表示凸輪軸、Y軸表示送線軸、Z軸表示轉(zhuǎn)芯軸、A軸表示卷取軸和B軸表示夾耳軸。如果不需要其中某軸參與運動,可直接通過面板按鈕禁止該軸。采用這種方法,機床的調(diào)試比較容易,不需要進行過多的參數(shù)設置。
彈簧機控制器的運動控制,每個軸可以單獨運動,也可以進行聯(lián)動。各軸之間的運動關系均為直線插補,在運動過程中根據(jù)具體彈簧成型控制的需求,需要檢測探針的信號。
程序運行時,先將整個程序讀入緩沖,順序解釋指令并將數(shù)據(jù)填充到插補緩沖區(qū),在數(shù)據(jù)處理的過程中需要注意以下四個問題:
1)運動指令的區(qū)分,是進行聯(lián)動還是順序運動,那么需要一個標志給插補;
2)遇到條件跳轉(zhuǎn)指令時,需要等待插補的運行結(jié)果再決定處理順序;
3)遇到循環(huán)指令時,直接將指令解釋后送給插補緩沖區(qū);
4)當運行過程中修改程序時,待整個程序執(zhí)行完之后將文件重新載入。
實時控制部分取得數(shù)據(jù)之后,根據(jù)軸的運動關系進行插補。插補過程中有兩種形式:一種是聯(lián)動,相關軸進行直線插補;另一種是順序運動,即某個軸先直線運動,待運動完成之后再執(zhí)行其他軸的運動。在有些過程中,需要檢測探針的信號,如果探針信號檢測到,則跳到下一行執(zhí)行;如果探針信號未檢測到,則給出記錄探針失敗次數(shù),達到探針失敗設定最大值時報警。運動控制采用前直線加減速方式,段和段之間需要準??刂疲徊捎们罢疤幚?。在運動過程中,可以通過手輪實時修改倍率,倍率范圍是0~300%。
控制器的數(shù)據(jù)處理過程大致可分為4部分,如圖5所示。
1)文件信息
文件信息主要是人機界面將數(shù)據(jù)傳送給數(shù)據(jù)處理,主要包括文件名稱,數(shù)據(jù)處理任務在得到文件名稱之后,讀取文件內(nèi)容,開始進行數(shù)據(jù)處理。
如果在運行過程中,用戶修改了程序內(nèi)容,那么待收到修改完成信號之后,人機界面將該標志傳給數(shù)據(jù)處理,數(shù)據(jù)處理在整個程序執(zhí)行完后,重新讀取文件內(nèi)容。
圖5 數(shù)據(jù)處理模塊圖
系統(tǒng)不支持從文件任意行啟動,每次按下“啟動”按鈕之后,數(shù)據(jù)處理任務從文件首行開始進行處理。
2)程序數(shù)據(jù)
程序數(shù)據(jù)是數(shù)據(jù)處理任務將文件內(nèi)容進行處理之后的數(shù)據(jù),并且傳送給實時控制任務。數(shù)據(jù)處理在將探針檢測信號送給實時控制時,需要等待運行結(jié)果;另一個需要實時控制任務給出程序啟動標志,這個數(shù)據(jù)結(jié)構(gòu)比較簡單,還可以使用函數(shù)調(diào)用的方式實現(xiàn),這里就不再列出了。
3)非易失數(shù)據(jù)
數(shù)據(jù)用來保存一些需要掉電記憶的數(shù)據(jù),比如設定的零件數(shù)和已完成的零件數(shù),當前載入的文件名稱,數(shù)據(jù)量應該比較少。這部分數(shù)據(jù)實時寫入NVRAM中,掉電不會丟失。
4)實時信息
這部分數(shù)據(jù)是實時運行過程中的信息,其數(shù)據(jù)結(jié)構(gòu)如下所示:
5)其他數(shù)據(jù)
彈簧機控制器不需要進行刀偏和刀補,所以這方面的數(shù)據(jù)文件可以不用考慮。參數(shù)以數(shù)據(jù)文件的形式進行存儲,上電后系統(tǒng)對參數(shù)文件進行校驗。
由于該系統(tǒng)指令相對比較簡單,面對用戶的指令為表格式編程指令,而后臺程序指令格式可描述為:每行的程序使用字母加數(shù)值的方式組成指令字、指令字間有空格分割,每行由換行符號分割,文件結(jié)束標志代表程序的結(jié)束。
本文設計的彈簧機控制器,采用了嵌入式平臺,經(jīng)實際驗證,比市場上原來的主流產(chǎn)品工作更加穩(wěn)定,且成本更低,有效推動了行業(yè)的發(fā)展,使得國內(nèi)彈簧加工行業(yè)降低了總體設備開銷,更具競爭力。同時該系列產(chǎn)品也為公司帶來良好的經(jīng)濟效益。
[1]周永強.三軸數(shù)控彈簧機電氣控制系統(tǒng)的設計[J].機電工程技術(shù)2014(9):114-117.
[2]羅文彪,丘雨斌.數(shù)控彈簧機控制系統(tǒng)的設計[J].工業(yè)控制計算機,2006(5):67-68.
[3]深圳市研控自動化科技有限公司. 研控伺服驅(qū)動器在數(shù)控彈簧機上的應用[J].伺服控制,2012(3):37-38.
[4]常躍軍.基于一種新型數(shù)控熱卷彈簧機的成形設計[J].新技術(shù)新工藝,2013(6):91-94.
[5]曹輝榮,謝云臣.NC彈簧機的發(fā)展動向[J].內(nèi)燃機燃油噴射和控制,1996(3):5-8.