多軸插補(bǔ)控制方法與裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及運(yùn)動(dòng)控制的技術(shù)領(lǐng)域,尤其涉及一種多軸插補(bǔ)控制方法與裝置。
【背景技術(shù)】
[0002]目前,運(yùn)動(dòng)控制中涉及插補(bǔ)控制時(shí),主流的方案是在控制器中進(jìn)行插補(bǔ)計(jì)算,得到每個(gè)控制周期參與插補(bǔ)的各個(gè)軸需要運(yùn)行的位置增量,然后通過(guò)脈沖或者通訊總線周期性地將位置增量發(fā)送給電機(jī)驅(qū)動(dòng)器。
[0003]中國(guó)發(fā)明專利申請(qǐng)?zhí)峁┱f(shuō)明書(shū)CN101526808A提供了一種多軸插補(bǔ)方法,插補(bǔ)的算法由CPU和FPGA共同完成,具體的,由CPU周期性的計(jì)算各軸插補(bǔ)增量數(shù)據(jù),計(jì)算結(jié)果寫(xiě)入FPGA內(nèi)雙口 RAM,然后在時(shí)鐘管理單元的控制下,由各軸插補(bǔ)模塊轉(zhuǎn)化成脈沖發(fā)出,各軸電機(jī)驅(qū)動(dòng)器接收脈沖,根據(jù)脈沖控制電機(jī)運(yùn)動(dòng)。
[0004]中國(guó)發(fā)明專利申請(qǐng)?zhí)峁┱f(shuō)明書(shū)CN102081354B提供了一種多軸插補(bǔ)方法,使用高速現(xiàn)場(chǎng)總線作為控制器與電機(jī)驅(qū)動(dòng)器之間的接口。
[0005]中國(guó)發(fā)明專利申請(qǐng)?zhí)峁┱f(shuō)明書(shū)CN104181866A提供了一種伺服驅(qū)動(dòng)器插補(bǔ)方法,處于主控模式的伺服驅(qū)動(dòng)器通過(guò)內(nèi)嵌的插補(bǔ)程序模塊完成插補(bǔ)運(yùn)算,發(fā)出多路控制信號(hào)給處于非主控模式的伺服電機(jī)驅(qū)動(dòng)器,其本質(zhì)是將插補(bǔ)計(jì)算功能集成到伺服驅(qū)動(dòng)器中。
[0006]然而,在上述現(xiàn)有技術(shù)中,存在以下問(wèn)題:
[0007]本質(zhì)上都屬于集中控制,作為控制器的模塊需要進(jìn)行大量的插補(bǔ)計(jì)算,這種計(jì)算每個(gè)控制周期都要進(jìn)行,隨著參與插補(bǔ)的軸的增多,計(jì)算量成倍增加,最終超出控制器的處理能力;使用脈沖周期性通訊,控制器和每一臺(tái)電機(jī)驅(qū)動(dòng)器都要連接脈沖線,在現(xiàn)場(chǎng)很容易受到干擾,出現(xiàn)干擾時(shí)排查和解決都比較困難,電機(jī)軸數(shù)較多時(shí),接線數(shù)量也較多;使用高速現(xiàn)場(chǎng)總線周期性通訊,對(duì)總線的傳輸帶寬要求比較高,需要選擇高性能高成本的總線,實(shí)現(xiàn)方案復(fù)雜。
[0008]近年來(lái),隨著半導(dǎo)體技術(shù)的飛速發(fā)展,嵌入式CPU處理能力越來(lái)越強(qiáng),存儲(chǔ)空間越來(lái)越大,這使得電機(jī)驅(qū)動(dòng)器在完成電機(jī)控制相關(guān)計(jì)算的前提下有富余的資源。但是目前電機(jī)驅(qū)動(dòng)器富余的資源多用于增強(qiáng)電機(jī)的驅(qū)動(dòng)性能,從系統(tǒng)的角度來(lái)看,插補(bǔ)軸數(shù)增多時(shí)對(duì)控制器造成壓力依舊很大。
【發(fā)明內(nèi)容】
[0009]針對(duì)上述技術(shù)中存在的不足之處,本發(fā)明提供一種多軸插補(bǔ)控制方法與裝置,進(jìn)行插補(bǔ)控制時(shí),使用簡(jiǎn)單異步總線通訊來(lái)配置插補(bǔ)的參數(shù),控制器和電機(jī)驅(qū)動(dòng)器之間只需要一條虛擬主軸連接,參與插補(bǔ)軸的周期位置增量在各個(gè)電機(jī)控制器內(nèi)根據(jù)虛擬主軸和電子凸輪表計(jì)算生成。
[0010]為了達(dá)到上述目的,本發(fā)明一種多軸插補(bǔ)控制方法,包括:
[0011]步驟一:控制邏輯啟動(dòng)指令,計(jì)算參與插補(bǔ)軸的參數(shù);
[0012]步驟二:將這些參數(shù)傳遞給N個(gè)驅(qū)動(dòng)器通訊模塊;
[0013]步驟三:在插補(bǔ)運(yùn)行過(guò)程中,虛擬主軸模塊持續(xù)發(fā)出虛擬主軸,驅(qū)動(dòng)參與插補(bǔ)各軸的電子凸輪模塊運(yùn)行;
[0014]步驟四:驅(qū)動(dòng)器通訊模塊接收到有效參數(shù)后,對(duì)通訊數(shù)據(jù)進(jìn)行校驗(yàn),校驗(yàn)通過(guò)后將參數(shù)發(fā)送到電子凸輪模塊;
[0015]步驟五:電子凸輪模塊根據(jù)虛擬主軸及輸入的插補(bǔ)軸的參數(shù)進(jìn)行周期計(jì)算,得到每個(gè)周期的周期脈沖量,每個(gè)周期將周期脈沖量發(fā)送到電機(jī)控制模塊;
[0016]步驟六:電機(jī)控制模塊接收電子凸輪模塊輸出的周期脈沖,控制電機(jī)運(yùn)行。
[0017]其中,在步驟一中,所述控制邏輯在程序的控制下調(diào)用插補(bǔ)軸的參數(shù),所述的插補(bǔ)軸的參數(shù)包括插補(bǔ)電機(jī)軸號(hào)、插補(bǔ)模式、加速時(shí)間、減速時(shí)間這些插補(bǔ)相關(guān)的參數(shù),控制邏輯在插補(bǔ)軸的參數(shù)生效后將這些參數(shù)傳遞給N個(gè)驅(qū)動(dòng)器通訊模塊。
[0018]其中,在步驟一和步驟二之間,即在控制邏輯計(jì)算插補(bǔ)軸的參數(shù)并生效后,參數(shù)傳遞到控制器通訊模塊,該通訊控制模塊將插補(bǔ)軸的參數(shù)進(jìn)行打包,然后再發(fā)送到N個(gè)驅(qū)動(dòng)器通訊模塊中。
[0019]其中,在步驟五中的所述電子凸輪模塊包括參數(shù)緩沖區(qū)、曲線計(jì)算模塊、凸輪表、虛擬主軸接收模塊以及運(yùn)行控制模塊;插補(bǔ)軸的參數(shù)發(fā)送到參數(shù)緩沖區(qū)進(jìn)行保存,曲線計(jì)算模塊根據(jù)相關(guān)參數(shù)計(jì)算對(duì)應(yīng)的凸輪曲線保存到凸輪表中,虛擬主軸接收模塊接收每個(gè)周期傳遞過(guò)來(lái)的虛擬主軸,并計(jì)算主軸增量,最后,運(yùn)行控制模塊每個(gè)周期根據(jù)虛擬主軸和凸輪表計(jì)算本周期應(yīng)該發(fā)出的周期脈沖量,發(fā)送給電機(jī)控制模塊。
[0020]其中,經(jīng)過(guò)步驟六的電機(jī)控制模塊實(shí)現(xiàn)了電機(jī)的控制算法,根據(jù)周期脈沖量驅(qū)動(dòng)電機(jī)運(yùn)行,同時(shí)向控制器反饋電機(jī)的運(yùn)行狀態(tài)。
[0021]本發(fā)明還提供一種多軸插補(bǔ)控制裝置,包括控制器與N個(gè)電機(jī)驅(qū)動(dòng)器,所述控制器包括控制邏輯、控制器通訊模塊以及虛擬主軸模塊,所述電機(jī)驅(qū)動(dòng)器包括驅(qū)動(dòng)器通訊模塊、電子凸輪模塊以及電機(jī)控制模塊;控制邏輯啟動(dòng)指令,計(jì)算參與插補(bǔ)軸的參數(shù),并將這些參數(shù)傳遞給N個(gè)驅(qū)動(dòng)器通訊模塊;在插補(bǔ)運(yùn)行過(guò)程中,虛擬主軸模塊持續(xù)發(fā)出虛擬主軸,驅(qū)動(dòng)參與插補(bǔ)各軸的電子凸輪模塊運(yùn)行;驅(qū)動(dòng)器通訊模塊接收到有效參數(shù)后,對(duì)通訊數(shù)據(jù)進(jìn)行校驗(yàn),校驗(yàn)通過(guò)后將參數(shù)發(fā)送到電子凸輪模塊;電子凸輪模塊根據(jù)虛擬主軸及輸入插補(bǔ)軸的參數(shù)進(jìn)行周期計(jì)算,得到每個(gè)周期的周期脈沖量,每個(gè)周期將周期脈沖量發(fā)送到電機(jī)控制模塊;電機(jī)控制模塊接收電子凸輪模塊輸出的周期脈沖,控制電機(jī)運(yùn)行。
[0022]其中,所述控制邏輯在程序的控制下調(diào)用插補(bǔ)軸的參數(shù),所述的插補(bǔ)軸的參數(shù)包括插補(bǔ)電機(jī)軸號(hào)、插補(bǔ)模式、加速時(shí)間、減速時(shí)間這些插補(bǔ)相關(guān)的參數(shù),控制邏輯在插補(bǔ)軸的參數(shù)生效后將這些參數(shù)傳遞給N個(gè)驅(qū)動(dòng)器通訊模塊。
[0023]其中,在控制邏輯計(jì)算插補(bǔ)軸的參數(shù)并生效后,參數(shù)傳遞到控制器通訊模塊,該通訊控制模塊將插補(bǔ)軸的參數(shù)進(jìn)行打包,然后再發(fā)送到N個(gè)驅(qū)動(dòng)器通訊模塊中。
[0024]其中,所述電子凸輪模塊包括參數(shù)緩沖區(qū)、曲線計(jì)算模塊、凸輪表、虛擬主軸接收模塊以及運(yùn)行控制模塊;插補(bǔ)軸的參數(shù)發(fā)送到參數(shù)緩沖區(qū)進(jìn)行保存,曲線計(jì)算模塊根據(jù)相關(guān)參數(shù)計(jì)算對(duì)應(yīng)的凸輪曲線保存到凸輪表中,虛擬主軸接收模塊接收每個(gè)周期傳遞過(guò)來(lái)的虛擬主軸,并計(jì)算主軸增量,最后,運(yùn)行控制模塊每個(gè)周期根據(jù)虛擬主軸和凸輪表計(jì)算本周期應(yīng)該發(fā)出的周期脈沖量,發(fā)送給電機(jī)控制模塊。
[0025]其中,電機(jī)控制模塊實(shí)現(xiàn)了電機(jī)的控制算法,根據(jù)周期脈沖量驅(qū)動(dòng)電機(jī)運(yùn)行,同時(shí)向控制器反饋電機(jī)的運(yùn)行狀態(tài)。
[0026]本發(fā)明的有益效果是:
[0027]與現(xiàn)有技術(shù)相比,本發(fā)明的多軸插補(bǔ)控制方法,可以在參與插補(bǔ)的各軸電機(jī)驅(qū)動(dòng)器內(nèi)進(jìn)行插補(bǔ)的周期計(jì)算,充分利用電機(jī)驅(qū)動(dòng)器富余的計(jì)算資源,減小了控制器的壓力,控制器在相同的硬件資源下可以支持更多的軸數(shù);同時(shí),在進(jìn)行插補(bǔ)控制時(shí)只需要在啟動(dòng)插補(bǔ)時(shí)通過(guò)總線傳輸一組參數(shù),在插補(bǔ)過(guò)程中只需要發(fā)出虛擬主軸,不需要周期性的傳遞數(shù)據(jù),降低了對(duì)總線的帶寬需求。本發(fā)明的多軸插補(bǔ)控制裝置,只需要在控制器和電機(jī)驅(qū)動(dòng)器之間連接通訊線及虛擬主軸線,降低了布線和排查的難度,不易受到干擾。
【附圖說(shuō)明】
[0028]圖1是現(xiàn)有技術(shù)的插補(bǔ)控制方法的系統(tǒng)結(jié)構(gòu)圖;
[0029]圖2是本發(fā)明插補(bǔ)控制方法的系統(tǒng)結(jié)構(gòu)圖;
[0030]圖3是電子凸輪模塊的內(nèi)部框圖;
[0031]圖4是兩軸圓弧插補(bǔ)為例,參與插補(bǔ)兩軸的凸輪表及最后的合成插補(bǔ)軌跡;
[0032]圖5是三軸直線插補(bǔ)為例,參與插補(bǔ)三軸的凸輪表及最后的合成插補(bǔ)軌跡。
[0033]主要元件符號(hào)說(shuō)明:
[0034]10、控制器11、電機(jī)驅(qū)動(dòng)器
[0035]101、控制邏輯102、控制器通訊模塊
[0036]103、虛擬主軸模塊 111、驅(qū)動(dòng)器通訊模塊
[0037]112、電子凸輪模塊 113、電機(jī)控制模塊
[0038]1121、參數(shù)緩沖區(qū)1122、曲線計(jì)算模塊
[0039]1123、凸輪表1124、虛擬主軸接收模塊
[0040]1125、運(yùn)行控制模塊
【具體實(shí)施方式】
[0041]為了更清楚地表述本發(fā)明,下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地描述。請(qǐng)參閱圖1-2,對(duì)比現(xiàn)有技術(shù)與本發(fā)明一種多軸插補(bǔ)控制方法及裝置,本發(fā)明的方法包括以下步驟:
[0042]步驟一:控制邏輯101啟動(dòng)指令,計(jì)算參與插補(bǔ)軸的參數(shù);
[0043]步驟二:將這些參數(shù)傳遞給N個(gè)驅(qū)動(dòng)器通訊模塊111 ;
[0044]步驟三:在插補(bǔ)運(yùn)行過(guò)程中,虛擬主軸模塊103持續(xù)發(fā)出虛擬主軸,驅(qū)動(dòng)參與插補(bǔ)各軸的電子凸輪模塊112運(yùn)行;
[0045]步驟四:驅(qū)動(dòng)器通訊模塊111接收到有效參數(shù)后,對(duì)通訊數(shù)據(jù)進(jìn)行校驗(yàn),校驗(yàn)通過(guò)后將參數(shù)發(fā)送到電子凸輪模塊112 ;
[0046]步驟五:電子凸輪模塊112根據(jù)虛擬主軸及輸入插補(bǔ)軸的參數(shù)進(jìn)行周期計(jì)算,得到每個(gè)周期的周期脈沖量,每個(gè)周期將周期脈沖量發(fā)送到電機(jī)控制模塊113 ;
[0047]步驟六:電機(jī)控制模塊113接收電子凸輪模塊112輸出的周期脈沖,控制電機(jī)運(yùn)行。
[0048]相較于現(xiàn)有技術(shù),本發(fā)明的多軸插補(bǔ)控制方法,可以在參與插補(bǔ)的各軸電機(jī)驅(qū)動(dòng)器11內(nèi)進(jìn)行插補(bǔ)的周期計(jì)算,充分利用電機(jī)驅(qū)動(dòng)器11富余的計(jì)算資源,減小了控制器10的壓力,控制器10在相同的硬件資源下可以支持更多的軸數(shù);同時(shí),在進(jìn)行插補(bǔ)控制時(shí)只需要在啟動(dòng)插補(bǔ)時(shí)通過(guò)總線傳輸一組參數(shù),在插補(bǔ)過(guò)程中只需要發(fā)出虛擬主軸,不需要周期性的傳遞數(shù)據(jù),降低了對(duì)總線的帶寬需求。
[0049]在本實(shí)施例中,在步驟一中,控制邏輯101在程序的控制下調(diào)用插補(bǔ)軸的參數(shù),的插補(bǔ)軸的參數(shù)包括插補(bǔ)電機(jī)軸號(hào)、插補(bǔ)模式、加速時(shí)間、減速時(shí)