專利名稱:Acs運(yùn)動控制器實(shí)時(shí)暫停的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及 一種ACS運(yùn)動控制器的控制方法,尤其是一種ACS運(yùn)動控制器實(shí)時(shí)暫停的實(shí)現(xiàn)方法。
背景技術(shù):
ACS運(yùn)動控制器擁有強(qiáng)大的運(yùn)動控制指令,能實(shí)現(xiàn)點(diǎn)對點(diǎn)、點(diǎn)動、區(qū)間運(yùn)動、主從運(yùn)動、隨意指定路徑等多種形式的運(yùn)動;具有豐富的數(shù)學(xué)函數(shù),能實(shí)現(xiàn)復(fù)雜的數(shù)學(xué)表達(dá)式,具有64位浮點(diǎn)運(yùn)算精度;支持一維和二維數(shù)組,數(shù)組最大容量為10萬;具有類似C語言的高級編程語言,擁有豐富的指令集;具有10個(gè)程序區(qū),可以10個(gè)程序同時(shí)運(yùn)行。在專用機(jī)械設(shè)備控制領(lǐng)域,ACS的靈活性、開放性和高性能高可靠性使之能勝任各類專機(jī)數(shù)控系統(tǒng)的工作。但ACS的數(shù)控功能相較于專業(yè)的數(shù)控系統(tǒng)還有很多的不足,將ACS 控制器用于通用的數(shù)控機(jī)床上不大現(xiàn)實(shí)。ACS運(yùn)動控制系統(tǒng)采用主從結(jié)構(gòu),主處理器(MPU)執(zhí)行高等級任務(wù),負(fù)責(zé)輪廓軌跡生成,與主機(jī)和從處理器通信,給定值計(jì)算,安全控制,接口信號采集與處理,硬件位置觸發(fā)處理,主機(jī)即時(shí)命令執(zhí)行,程序運(yùn)行與管理,系統(tǒng)診斷等,從處理器(SPii)以20KHZ的伺服更新率執(zhí)行實(shí)時(shí)的位置環(huán)速度環(huán)運(yùn)動控制算法,接受并處理編碼器反饋信號,發(fā)送驅(qū)動命令,每個(gè)從處理器控制兩個(gè)軸。ACS運(yùn)動控制器可以同時(shí)裝載10個(gè)程序,并能多任務(wù)并行執(zhí)行。程序啟動后,主處理器(MPU)負(fù)責(zé)解釋管理和執(zhí)行程序,如果程序中沒有需要等待的條件判斷語句,程序執(zhí)行的速度非常快,而不是執(zhí)行一條運(yùn)動命令,等待其執(zhí)行完畢之后再執(zhí)行下一條。有關(guān)各軸運(yùn)動控制的命令行瞬間就被MPU送入SPii從處理器的運(yùn)動命令隊(duì)列中,各軸的運(yùn)動命令隊(duì)列最大可容納50條命令行,這樣在SPii從處理器處理伺服運(yùn)動命令時(shí),MPU有足夠的響應(yīng)時(shí)間處理更高等級的任務(wù)。在用ACS運(yùn)動控制器開發(fā)的卷簧機(jī)數(shù)控系統(tǒng)中,運(yùn)動程序必須具備實(shí)時(shí)暫停功能。卷簧機(jī)數(shù)控系統(tǒng)有一項(xiàng)功能是要求用手輪控制卷簧加工程序的運(yùn)行,彈簧加工試制之前,需要調(diào)機(jī)檢驗(yàn),對彈簧的加工程序進(jìn)行修正。系統(tǒng)進(jìn)入檢驗(yàn)工作模式時(shí),程序的運(yùn)行可通過搖手輪控制,手輪快則運(yùn)轉(zhuǎn)速度快,手輪停則運(yùn)動立即暫停,手輪起運(yùn)動繼續(xù),這樣在調(diào)機(jī)時(shí)就可以通過搖手輪緩緩的將一個(gè)彈簧卷出來,中途可以根據(jù)卷的情況實(shí)時(shí)暫停下來,情況觀察清楚后程序可在斷點(diǎn)處繼續(xù)運(yùn)行。在ACS控制器提供的幾種運(yùn)動停止命令中,halt,kill,disable,break雖然都可以停止各軸的運(yùn)動,但停止后運(yùn)動程序不可繼續(xù),在程序管理命令中Stop,pause命令可以停止程序,但都不能立即停止當(dāng)前的運(yùn)動,要等到已進(jìn)入運(yùn)動指令隊(duì)列的所有命令執(zhí)行完畢才能停止。Pause命令生效后指定緩沖區(qū)中的程序可以掛起,但運(yùn)動可能會繼續(xù),因?yàn)檫\(yùn)動指令已下載到從處理器的指令隊(duì)列中,等到Pause命令前從處理器中運(yùn)動指令隊(duì)列里的命令行完全執(zhí)行完畢,隊(duì)列空間徹底清空時(shí)才能停止所有運(yùn)動。因此Pause命令只能掛起緩沖區(qū)中運(yùn)行的程序,卻并不能讓已加載到從處理器隊(duì)列中的命令行暫停執(zhí)行。如何實(shí)現(xiàn)運(yùn)動程序立即暫停,且暫停后程序可繼續(xù)運(yùn)行,是困擾ACS運(yùn)動控制器用戶的一個(gè)關(guān)鍵問題。
發(fā)明內(nèi)容
本發(fā)明的目的是為了解決上述技術(shù)的不足而設(shè)計(jì)的一種可實(shí)現(xiàn)運(yùn)動程序立即暫停,且暫停后程序可繼續(xù)運(yùn)行的ACS運(yùn)動控制器實(shí)時(shí)暫停的實(shí)現(xiàn)方法。本發(fā)明所設(shè)計(jì)的ACS運(yùn)動控制器實(shí)時(shí)暫停的實(shí)現(xiàn)方法,包括將軌跡段指令載入到從處理器中的步驟,在前述步驟中包含如下措施將大的軌跡段指令細(xì)分成細(xì)小的軌跡指令,然后控制軌跡指令逐條載入到從處理器的隊(duì)列中,同時(shí)使軌跡指令逐條執(zhí)行,一條執(zhí)行完再繼續(xù)裝入下一條。優(yōu)選的,通過在軌跡指令之間設(shè)置條件控制指令的方式控制軌跡指令逐條載入到從處理器的隊(duì)列中。優(yōu)選的,將大的軌跡段指令細(xì)分成細(xì)小的軌跡指 令包括如下措施a、確定細(xì)分間隔時(shí)間;b、按照不超過各軸最大速度的原則計(jì)算出各軌跡段指令的最快運(yùn)行時(shí)間,將最快運(yùn)行時(shí)間除以細(xì)分間隔時(shí)間得到細(xì)分?jǐn)?shù)量,余數(shù)即為細(xì)分后剩余時(shí)間;C、將細(xì)分間隔時(shí)間除以最快運(yùn)行時(shí)間得到時(shí)長比例因子α,將α乘以該軌跡段指令中各軸相對坐標(biāo),得到細(xì)分間隔時(shí)間段對應(yīng)的細(xì)小軌跡指令;將細(xì)分后剩余時(shí)間除以最快運(yùn)行時(shí)間得到時(shí)長比例因子β,將β乘以該軌跡段指令中各軸相對坐標(biāo),得到剩余時(shí)間段對應(yīng)的細(xì)小軌跡指令,前述兩個(gè)時(shí)間段對應(yīng)的細(xì)小軌跡指令共同構(gòu)成最終的軌跡指令。優(yōu)選的,當(dāng)軌跡段指令最快運(yùn)行時(shí)間大于細(xì)分間隔時(shí)間,則將軌跡段指令細(xì)分成軌跡指令;當(dāng)軌跡段指令最快運(yùn)行時(shí)間小于細(xì)分間隔時(shí)間,則直接執(zhí)行該軌跡段指令。優(yōu)選的,所述細(xì)分間隔時(shí)間為20ms。本發(fā)明所得的ACS運(yùn)動控制器實(shí)時(shí)暫停的實(shí)現(xiàn)方法,通過將大的程序段按時(shí)間細(xì)分成小時(shí)間段的軌跡程序,然后在各細(xì)小段軌跡運(yùn)動程序之間加入條件控制語句,使得各細(xì)小程序段逐條載入到運(yùn)動命令隊(duì)列中,從而有效地控制了整個(gè)程序的運(yùn)行,實(shí)現(xiàn)了 ACS 運(yùn)動控制器運(yùn)行過程中的實(shí)時(shí)暫停功能,且暫停后程序可繼續(xù)運(yùn)行,解決了困擾ACS運(yùn)動控制器用戶的一個(gè)關(guān)鍵問題。本發(fā)明可在基于ACS運(yùn)動控制器的卷簧機(jī)數(shù)控系統(tǒng)中得到了應(yīng)用,將程序中各段軌跡細(xì)分后沒有造成運(yùn)動的不連續(xù),運(yùn)動實(shí)時(shí)暫停的效果非常理想,64位的浮點(diǎn)運(yùn)算非常精確,設(shè)備在最高速連續(xù)加工幾百個(gè)彈簧時(shí)也沒有出現(xiàn)明顯的累積誤差。該方法可以應(yīng)用于各種ACS控制器開發(fā)的各類運(yùn)動控制系統(tǒng)中,彌補(bǔ)了 ACS控制器作為一款高性能運(yùn)動控制器數(shù)控功能的不足。
圖1實(shí)施例1運(yùn)動指令處理方法示意圖;圖2是實(shí)施例1的控制流程圖;圖3是實(shí)施例1的軌跡段按時(shí)間細(xì)分示例;圖中細(xì)小軌跡指令1、條件控制語句2。
具體實(shí)施例方式下面通過實(shí)施例結(jié)合附圖對本發(fā)明作進(jìn)一步的描述。實(shí)施例1 如圖1、2所示,本實(shí)施例所描述的ACS運(yùn)動控制器實(shí)時(shí)暫停的實(shí)現(xiàn)方法,包括將軌跡段指令載入到從處理器中的步驟,在前述步驟中包含如下措施將大的軌跡段指令細(xì)分成細(xì)小的軌跡指令,然后通過在軌跡指令之間設(shè)置條件控制指令的方式控制軌跡指令逐條載入到從處理器的隊(duì)列中,同時(shí)使軌跡指令逐條執(zhí)行,一條執(zhí)行完再繼續(xù)裝入下一條。其中,將大的軌跡段指令細(xì)分成細(xì)小的軌跡指令包括如下措施a、確定細(xì)分間隔時(shí)間(本實(shí)施例中細(xì)分間隔時(shí)間為20ms);b、按照不超過各軸最大速度的原則計(jì)算出各軌跡段指令的最快運(yùn)行時(shí)間,將最快運(yùn)行時(shí)間除以細(xì)分間隔時(shí)間得到細(xì)分?jǐn)?shù)量,余數(shù)即為細(xì)分后剩余時(shí)間;C、將細(xì)分間隔時(shí)間除以最快運(yùn)行時(shí)間得到時(shí)長比例因子α,將α乘以該軌跡段指令中各軸相對坐標(biāo),得到細(xì)分間隔時(shí)間段對應(yīng)的細(xì)小軌跡指令;將細(xì)分后剩余時(shí)間除以最快運(yùn)行時(shí)間得到時(shí)長比例因子β,將β乘以該軌跡段指令中各軸相對坐標(biāo),得到剩余時(shí)間段對應(yīng)的細(xì)小軌跡指令,前述兩個(gè)時(shí)間段對應(yīng)的細(xì)小軌跡指令共同構(gòu)成最終的軌跡指令。當(dāng)軌跡段指令最快運(yùn)行時(shí)間大于細(xì)分間隔時(shí)間,則將軌跡段指令細(xì)分成軌跡指令;當(dāng)軌跡段指令最快運(yùn)行時(shí)間小于細(xì)分間隔時(shí)間,則直接執(zhí)行該軌跡段指令。如在用ACS運(yùn)動控制器開發(fā)的數(shù)控卷簧機(jī)彈簧加工程序中,選取三段軌跡,軌跡程序中X為變徑切刀凸輪軸,Y為送絲軸,Z為推距軸。三段軌跡的運(yùn)行時(shí)間都是按照不超過各軸最大速度計(jì)算出的最快運(yùn)行時(shí)間,選取的第一段軌跡為X20Y30Z11. 5,按各軸的最快速度計(jì)算出段運(yùn)行時(shí)間,按Z軸的最快速度134imits/s計(jì)算(T = 11. 5/134),算得的時(shí)間最長,為85. 82ms,取整數(shù)86ms,按此時(shí)間運(yùn)行該段程序時(shí),Z軸達(dá)到最高速,XY軸都不會超過各自最高速度。同樣第二段軌跡按照X軸最高速度400imits/s計(jì)算出的時(shí)間最長,為 75ms,第三段按照Y軸最高速度600imitS/S計(jì)算出的時(shí)間最長,為183ms。三段軌跡按時(shí)間細(xì)分如圖3所示。本例中各段軌跡按照本段運(yùn)行時(shí)間細(xì)分成許多20ms的時(shí)間塊,將各段時(shí)間除以 20,取商即得各段細(xì)分成20ms細(xì)小片段的段數(shù),余數(shù)即是各段細(xì)分后的剩余時(shí)間,細(xì)分后計(jì)算各段細(xì)小軌跡相對于細(xì)分前該段軌跡的比例因子,將該比例因子乘以該段軌跡各軸的指令相對坐標(biāo),即可得出細(xì)分后的軌跡指令。以第一段“X20Y30Z11. 5”為例,細(xì)分后20ms時(shí)間段的細(xì)小軌跡指令為
20 20 20POINT ΧΥΖ, -χ20, -χ30, &χ11.5,20.其中XYZ后面的四個(gè)參數(shù)分別為各軸的
指令相對坐標(biāo),最后一個(gè)20是該段時(shí)間(毫秒單位)。細(xì)分剩余時(shí)間段的軌跡指令為POINT ΧΥΖ, ^χ 20, ^χ 30, ^x 11.5,6 .其中四個(gè)參數(shù)為剩余段各軸指令相對坐
標(biāo)和剩余時(shí)間(毫秒)。 細(xì)分間隔時(shí)間的確定,也是需要討論的問題。間隔時(shí)間過長會出現(xiàn)過沖現(xiàn)象,使
得運(yùn)動暫停不及時(shí),過短又會加大MPU負(fù)擔(dān),讓MPU與上位機(jī)的人機(jī)交互反應(yīng)遲鈍。人的
反應(yīng)時(shí)間一般在0. 15 0. 4S之間,最快反應(yīng)時(shí)間為0. 03S,即在0. IS以內(nèi),人一般感覺
不到延遲。但當(dāng)卷簧機(jī)按照上面三段程序的軌跡指令高速運(yùn)行時(shí),每一段軌跡在很短的
時(shí)間內(nèi)(不到0. 1S),坐標(biāo)值最大就走過了 40imits,雖然暫停的響應(yīng)速度很快,基本感覺
不到延遲,但較大的過沖行程使得暫停的效果欠佳。經(jīng)試驗(yàn)反復(fù)調(diào)試,最終確定間隔時(shí)間
為20ms,MPU每隔20ms取一條細(xì)分運(yùn)動軌跡載入到SPii從處理器的命令隊(duì)列中,20ms
內(nèi)MPU還有充足的時(shí)間執(zhí)行其他重要的任務(wù),不至于負(fù)擔(dān)過大造成系統(tǒng)反應(yīng)遲鈍。在上
述的三段軌跡中,暫停過沖最大的是送絲軸Y,因?yàn)樵撦S速度最快,最大的過沖坐標(biāo)值為 20
110xT^" = 12022 在最高速運(yùn)轉(zhuǎn)時(shí)獲得這樣的暫??刂菩Ч钊藵M意。 Units,
權(quán)利要求
1.一種ACS運(yùn)動控制器實(shí)時(shí)暫停的實(shí)現(xiàn)方法,包括將軌跡段指令載入到從處理器中的步驟,其特征是在前述步驟中包含如下措施將大的軌跡段指令細(xì)分成細(xì)小的軌跡指令,然后控制軌跡指令逐條載入到從處理器的隊(duì)列中,同時(shí)使軌跡指令逐條執(zhí)行,一條執(zhí)行完再繼續(xù)裝入下一條。
2.根據(jù)權(quán)利要求1所述的ACS運(yùn)動控制器實(shí)時(shí)暫停的實(shí)現(xiàn)方法,其特征是通過在軌跡指令之間設(shè)置條件控制指令的方式控制軌跡指令逐條載入到從處理器的隊(duì)列中。
3.根據(jù)權(quán)利要求1或2所述的ACS運(yùn)動控制器實(shí)時(shí)暫停的實(shí)現(xiàn)方法,其特征是將大的軌跡段指令細(xì)分成細(xì)小的軌跡指令包括如下措施a、確定細(xì)分間隔時(shí)間;b、按照不超過各軸最大速度的原則計(jì)算出各軌跡段指令的最快運(yùn)行時(shí)間,將最快運(yùn)行時(shí)間除以細(xì)分間隔時(shí)間得到細(xì)分?jǐn)?shù)量,余數(shù)即為細(xì)分后剩余時(shí)間;C、將細(xì)分間隔時(shí)間除以最快運(yùn)行時(shí)間得到時(shí)長比例因子α,將α乘以該軌跡段指令中各軸相對坐標(biāo),得到細(xì)分間隔時(shí)間段對應(yīng)的細(xì)小軌跡指令;將細(xì)分后剩余時(shí)間除以最快運(yùn)行時(shí)間得到時(shí)長比例因子β,將β乘以該軌跡段指令中各軸相對坐標(biāo),得到剩余時(shí)間段對應(yīng)的細(xì)小軌跡指令,前述兩個(gè)時(shí)間段對應(yīng)的細(xì)小軌跡指令共同構(gòu)成最終的軌跡指令。
4.根據(jù)權(quán)利要求3所述的ACS運(yùn)動控制器實(shí)時(shí)暫停的實(shí)現(xiàn)方法,其特征是當(dāng)軌跡段指令最快運(yùn)行時(shí)間大于細(xì)分間隔時(shí)間,則將軌跡段指令細(xì)分成軌跡指令;當(dāng)軌跡段指令最快運(yùn)行時(shí)間小于細(xì)分間隔時(shí)間,則直接執(zhí)行該軌跡段指令。
5.根據(jù)權(quán)利要求4所述的ACS運(yùn)動控制器實(shí)時(shí)暫停的實(shí)現(xiàn)方法,其特征是所述細(xì)分間隔時(shí)間為20ms。
全文摘要
本發(fā)明公開的ACS運(yùn)動控制器實(shí)時(shí)暫停的實(shí)現(xiàn)方法,包括將軌跡段指令載入到從處理器中的步驟,在前述步驟中包含如下措施將大的軌跡段指令細(xì)分成細(xì)小的軌跡指令,然后控制軌跡指令逐條載入到從處理器的隊(duì)列中,同時(shí)使軌跡指令逐條執(zhí)行,一條執(zhí)行完再繼續(xù)裝入下一條。本發(fā)明所得的ACS運(yùn)動控制器實(shí)時(shí)暫停的實(shí)現(xiàn)方法,實(shí)現(xiàn)了ACS運(yùn)動控制器運(yùn)行過程中的實(shí)時(shí)暫停功能,且暫停后程序可繼續(xù)運(yùn)行,解決了困擾ACS運(yùn)動控制器用戶的一個(gè)關(guān)鍵問題。
文檔編號G05B19/414GK102183922SQ20111006740
公開日2011年9月14日 申請日期2011年3月21日 優(yōu)先權(quán)日2011年3月21日
發(fā)明者周貴子, 張耀, 王曉虎, 程文峰, 葛惠民, 黃文廣 申請人:浙江機(jī)電職業(yè)技術(shù)學(xué)院