專利名稱:一種雙cpu組合形式的運(yùn)動(dòng)控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)控技術(shù)領(lǐng)域的運(yùn)動(dòng)控制器,具體是一種雙CPU組合形式的運(yùn)動(dòng)控制器。
背景技術(shù):
在數(shù)控技術(shù)領(lǐng)域中,運(yùn)動(dòng)控制器是其最基本、最核心的部分。目前數(shù)控領(lǐng)域中,大部分都是采用PC機(jī)與運(yùn)動(dòng)控制卡相結(jié)合的方式,運(yùn)動(dòng)控制卡通過PCI接口與PC機(jī)相連。 在PC機(jī)上實(shí)現(xiàn)人機(jī)的交互,包括設(shè)定運(yùn)動(dòng)軌跡及運(yùn)動(dòng)參數(shù)、監(jiān)控運(yùn)動(dòng)狀態(tài)等;運(yùn)動(dòng)控制卡根據(jù)設(shè)定的運(yùn)動(dòng)軌跡與運(yùn)動(dòng)參數(shù),控制電機(jī)運(yùn)動(dòng)。這種方式利用了PC機(jī)卓越的處理能力和友好的可視化界面,而且可以使用PC機(jī)本身帶有的豐富資源進(jìn)行開發(fā),可移植性好,為業(yè)內(nèi)人士所認(rèn)可,但這種控制方式不可避免的需要有PC機(jī)支持,無(wú)疑會(huì)增加設(shè)備的體積和成本,而且會(huì)影響設(shè)備的穩(wěn)定性,對(duì)設(shè)備現(xiàn)場(chǎng)的環(huán)境也提出了很高的要求。另外一種方式是基于單片機(jī)、專用芯片、FPGA的專用運(yùn)動(dòng)控制器。這類運(yùn)動(dòng)控制器結(jié)構(gòu)簡(jiǎn)單,成本低廉,性能穩(wěn)定,但由于單個(gè)CPU的硬件資源和處理能力有限,基本上只能實(shí)現(xiàn)簡(jiǎn)單的運(yùn)動(dòng)控制,很難實(shí)現(xiàn)復(fù)雜的邏輯控制、連續(xù)插補(bǔ)控制和多軸的同步控制,而且系統(tǒng)開發(fā)比較周期長(zhǎng)。發(fā)明目的
本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)的不足,提供一種體積小、成本低、功能強(qiáng)大、性能穩(wěn)定、 開放程度高的運(yùn)動(dòng)控制器,使其既能夠脫離PC機(jī)獨(dú)立運(yùn)行,又能夠?qū)崿F(xiàn)較復(fù)雜的運(yùn)動(dòng)控制算法與多軸的同步控制,而且開發(fā)方便,開發(fā)周期短。為了達(dá)到所述的目的,本發(fā)明提供了一種雙CPU組合形式的運(yùn)動(dòng)控制器,該運(yùn)動(dòng)控制器包括控制模塊、運(yùn)動(dòng)驅(qū)動(dòng)模塊、通信模塊、輸入輸出模塊、電源模塊。控制模塊為運(yùn)動(dòng)驅(qū)動(dòng)模塊、輸入輸出模塊提供控制信號(hào);通信模塊為控制模塊與外界通信提供接口 ;電源模塊為控制模塊、運(yùn)動(dòng)驅(qū)動(dòng)模塊、通信模塊、輸入輸出模塊提供穩(wěn)定的電流,保證各個(gè)模塊正常工作。所述的控制模塊由主CPU和從CPU組成,主CPU和從CPU之間通過握手的方式交互數(shù)據(jù)和命令;主CPU負(fù)責(zé)運(yùn)動(dòng)反饋與邏輯控制,從CPU負(fù)責(zé)運(yùn)動(dòng)控制輸出,主CPU和從CPU 協(xié)同合作,共同完成控制任務(wù);控制器采用雙閉環(huán)結(jié)構(gòu),保證對(duì)電機(jī)的控制精度;控制器的運(yùn)動(dòng)控制過程采用梯形圖進(jìn)行編程。本發(fā)明與現(xiàn)有的技術(shù)相比,由以下優(yōu)點(diǎn)
從CPU發(fā)脈沖與主CPU進(jìn)行計(jì)數(shù)形成閉環(huán),可以實(shí)現(xiàn)對(duì)PWM發(fā)送狀態(tài)的高速精確控制。從CPU獨(dú)立作為PWM輸出控制,可以將更多的資源用于多軸同步協(xié)調(diào)控制、實(shí)時(shí)插補(bǔ)運(yùn)算、軌跡運(yùn)算等,從而實(shí)現(xiàn)多軸的連續(xù)插補(bǔ)控制。通過IO的方式傳遞命令,實(shí)現(xiàn)主從之間命令的快速傳遞,使得從CPU可以快速響應(yīng)主CPU的命令。通過梯形圖內(nèi)嵌運(yùn)動(dòng)控制算法的方式進(jìn)行編程,利用圖形化編程,使程序簡(jiǎn)單易懂,可讀性強(qiáng),極大地提高系統(tǒng)的穩(wěn)定性。
圖I為雙CPU組合形式的多軸運(yùn)動(dòng)器的系統(tǒng)結(jié)構(gòu)示意圖2為雙CPU交互的示意圖3為本發(fā)明電機(jī)驅(qū)動(dòng)輸出示意圖4為本發(fā)明的通訊示意圖5為本發(fā)明程序的三層架構(gòu)示意圖6為本發(fā)明控制流程示意圖。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明的實(shí)施例作詳細(xì)說(shuō)明本實(shí)施例是以本發(fā)明的技術(shù)方案為前提進(jìn)行實(shí)施,以下給出了詳細(xì)的實(shí)施方案和具體的操作過程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施例。如圖I所示,本實(shí)施例包括控制模塊、運(yùn)動(dòng)驅(qū)動(dòng)模塊、通信模塊、輸入輸出模塊、電源模塊??刂颇K主要包括主CPU、從CPU及其外圍電路構(gòu)成,其中主從CPU均為 Cortex-M3微處理器,采用ST (意法半導(dǎo)體)公司的STM32F103ZCT6。其時(shí)鐘電路包括2部分HSE振蕩器時(shí)鐘(高速外部信號(hào)時(shí)鐘)和LSE時(shí)鐘(低速外部信號(hào)時(shí)鐘),HSE振蕩器時(shí)鐘為8Mhz的有源晶振,經(jīng)倍頻后,為系統(tǒng)提供72Mhz的時(shí)鐘;LSE時(shí)鐘為32. 768Khz的無(wú)源晶振,為系統(tǒng)的RTC(實(shí)時(shí)時(shí)鐘)提供時(shí)鐘信號(hào)。JTAG接口為系統(tǒng)的調(diào)試提供接口,可以實(shí)現(xiàn)下載程序和在線調(diào)試程序的功能。掉電保護(hù)電路包括紐扣電池和電壓選擇電路,可以保證系統(tǒng)在斷電的情況下,保證主從控制模塊中CPU的BKP區(qū)的正常工作,防止重要數(shù)據(jù)的丟失。其中主CPU實(shí)現(xiàn)運(yùn)動(dòng)反饋和邏輯控制,包括接收外部輸入信號(hào);處理邏輯關(guān)系, 進(jìn)行邏輯判斷;根據(jù)判斷結(jié)果,輸出信號(hào)給輸出模塊;處理與PC機(jī)的串口通訊數(shù)據(jù);處理與外接設(shè)備的CAN通訊數(shù)據(jù);發(fā)送命令給從CPU,控制從CPU發(fā)送PWM脈沖的狀態(tài);接收從 CPU發(fā)出的PWM脈沖;接收從運(yùn)動(dòng)設(shè)備發(fā)出的反饋信號(hào)。從CPU實(shí)現(xiàn)運(yùn)動(dòng)控制輸出,包括: 解析主CPU發(fā)出的命令和運(yùn)動(dòng)參數(shù);根據(jù)運(yùn)動(dòng)參數(shù)進(jìn)行插補(bǔ)運(yùn)算;根據(jù)運(yùn)算結(jié)果,輸出PWM 脈沖。輸入輸出模塊主要對(duì)外部IO設(shè)備與主從CPU之間的連接電平轉(zhuǎn)換和光電隔離;串口通訊模塊主要負(fù)責(zé)運(yùn)動(dòng)控制器與PC機(jī)的通訊,使實(shí)現(xiàn)PC機(jī)對(duì)運(yùn)動(dòng)控制器的控制;CAN通訊模塊為外接的CAN設(shè)備提供接口,方便擴(kuò)展CAN設(shè)備。運(yùn)動(dòng)驅(qū)動(dòng)模塊包括驅(qū)動(dòng)輸出電路和反饋電路。其中驅(qū)動(dòng)輸出電路負(fù)責(zé)將主從控制模塊發(fā)送的運(yùn)動(dòng)命令傳遞給電機(jī)驅(qū)動(dòng)器,反饋電路將電機(jī)驅(qū)動(dòng)器的反饋信號(hào)傳遞給主控制模塊;運(yùn)動(dòng)設(shè)備可以利用光柵尺等設(shè)備,對(duì)其運(yùn)動(dòng)位置進(jìn)行監(jiān)控,其信號(hào)通過反饋模塊進(jìn)行計(jì)數(shù),并將信號(hào)傳遞給主控制模塊,實(shí)現(xiàn)運(yùn)動(dòng)的閉環(huán)控制。如圖2所示,為雙CPU交互的示意圖。主CPU與從CPU之間的握手方式有三種單個(gè)IO傳遞命令、組合IO方式傳遞命令、通訊方式傳遞命令和參數(shù)。單個(gè)IO傳遞命令和組合IO方式傳遞命令是由主CPU通過IO 口發(fā)送命令,從CPU通過中斷的方式接收命令,根據(jù)已經(jīng)約定的格式確定主CPU發(fā)送的命令,通過這種方式可以快速的將主CPU的任務(wù)傳遞給從CPU ;通訊方式傳遞參數(shù)和命令是有主CPU發(fā)起傳參數(shù)和命令的通訊,從CPU接收后進(jìn)行校驗(yàn),并反饋返回幀,通過這種方式可以保證傳送數(shù)據(jù)的正確性,但速度比較慢。由于主控制模塊的硬件資源有限,所以利用從CPU的硬件IO資源擴(kuò)展輸入輸出端口,其狀態(tài)通過另一個(gè)串口傳遞。如圖3所示,為電機(jī)驅(qū)動(dòng)輸出的示意圖。主CPU將控制電機(jī)的方向信號(hào)傳遞給運(yùn)動(dòng)驅(qū)動(dòng)模塊,從CPU將控制電機(jī)的PWM信號(hào)和脈沖模式選擇信號(hào)傳遞給運(yùn)動(dòng)驅(qū)動(dòng)模塊。運(yùn)動(dòng)驅(qū)動(dòng)模塊根據(jù)脈沖模式選擇信號(hào),利用數(shù)據(jù)選擇器,將方向信號(hào)與PWM信號(hào)的輸出端口進(jìn)行重新分配,從而輸出指令脈沖+指令方向或者CW脈沖+CCW脈沖兩種類型的脈沖,所選的數(shù)據(jù)選擇器為74HC153。經(jīng)過數(shù)據(jù)選擇器后的信號(hào)經(jīng)過電平轉(zhuǎn)換,轉(zhuǎn)換為差分信號(hào)傳輸給電機(jī)驅(qū)動(dòng)器,驅(qū)動(dòng)電機(jī)運(yùn)動(dòng)。電機(jī)驅(qū)動(dòng)器發(fā)出的Z相反饋信號(hào)經(jīng)過運(yùn)動(dòng)驅(qū)動(dòng)模塊后,將差分信號(hào)轉(zhuǎn)換為TTL電平信號(hào)后,傳輸給主CPU,主CPU利用中斷接收Z(yǔ)相反饋信號(hào),用于電機(jī)的零點(diǎn)定位。電機(jī)驅(qū)動(dòng)器驅(qū)動(dòng)電機(jī)運(yùn)動(dòng)后,會(huì)有正交信號(hào)反饋給運(yùn)動(dòng)驅(qū)動(dòng)模塊中的反饋電路, 反饋電路根據(jù)接收到正交信號(hào)的相位差確定計(jì)數(shù)的加減。主控制模塊會(huì)根據(jù)需要發(fā)送命令給正交計(jì)數(shù)模塊清計(jì)數(shù)命令、讀當(dāng)前計(jì)數(shù)命令和設(shè)定比較值命令。反饋電路根據(jù)命令,反饋?lái)憫?yīng)的數(shù)據(jù)給主控制模塊。反饋電路通過CPLD實(shí)現(xiàn)正交計(jì)數(shù)和對(duì)主控制模塊的命令響應(yīng),所用的CPLD為Altera公司的EPM240。如圖4所示,本實(shí)施例與外部的通訊由兩部分組成串口通訊和CAN通訊。串口通訊主要實(shí)現(xiàn)上位機(jī)與控制器的通訊,通過Modbus協(xié)議實(shí)現(xiàn),其中上位機(jī)作為主機(jī),控制器作為從機(jī),上位機(jī)主動(dòng)發(fā)送命令幀,控制器根據(jù)接收到的命令幀,確定否需要改變某些變量的值,再構(gòu)造返回幀,并發(fā)送給上位機(jī)。通過串口通訊,可以實(shí)現(xiàn)上位機(jī)對(duì)控制器的控制,也可以通過人機(jī)界面實(shí)現(xiàn)對(duì)控制器的控制。本實(shí)施例中,主CPU信號(hào)輸出后,先經(jīng)過光耦將信號(hào)進(jìn)行隔離,再利用max232將TTL信號(hào)轉(zhuǎn)換為RS232信號(hào)。CAN通訊主要用于設(shè)備的擴(kuò)展或者控制器的級(jí)聯(lián)。本實(shí)施例所述輸入輸出模塊包含32個(gè)輸入點(diǎn)和20個(gè)輸出點(diǎn)。其中,輸出點(diǎn)有分為16個(gè)光I禹輸出點(diǎn)和4個(gè)繼電器輸出點(diǎn)。外部信號(hào)經(jīng)過光I禹隔離后,傳輸給主從CPU ;主 CPU的輸出信號(hào),先經(jīng)過ULN2003的電流放大后,驅(qū)動(dòng)光耦和繼電器輸出。如圖5所示,本設(shè)計(jì)采用梯形圖對(duì)運(yùn)動(dòng)控制過程進(jìn)行編程,其軟件由三層架構(gòu)組成Bootload、引擎與梯形圖。其中,Bootload用于引導(dǎo)引擎與梯形圖的下載,實(shí)現(xiàn)控制器的在線更新功能;引擎分為主CPU引擎與從CPU引擎,主CPU引擎負(fù)責(zé)實(shí)現(xiàn)梯形圖指令,并為梯形圖指令提供調(diào)用的接口,從CPU引擎負(fù)責(zé)實(shí)現(xiàn)運(yùn)動(dòng)控制的輸出;梯形圖是由用戶根據(jù)需要設(shè)計(jì),用以實(shí)現(xiàn)具體的邏輯控制功能與運(yùn)動(dòng)過程控制。如圖6所示,本實(shí)施例工作時(shí),上位機(jī)將運(yùn)動(dòng)命令通過串口通訊模塊,發(fā)送給主控制模塊,主控制模塊經(jīng)過命令解析后,計(jì)算運(yùn)動(dòng)控制所需的數(shù)據(jù),再發(fā)送運(yùn)動(dòng)參數(shù)給從控制模塊。發(fā)送完成后,給從控制模塊發(fā)送啟動(dòng)PWM發(fā)送命令同時(shí)給運(yùn)動(dòng)驅(qū)動(dòng)模塊發(fā)送電機(jī)運(yùn)動(dòng)方向信號(hào),同時(shí)主控制模塊接收從控制模塊發(fā)送的PWM信號(hào)進(jìn)行計(jì)數(shù),并根據(jù)計(jì)數(shù)值確定電機(jī)的運(yùn)動(dòng)狀態(tài)。電機(jī)開始運(yùn)動(dòng)后,將電機(jī)的位置值反饋給高速正交計(jì)數(shù)模塊進(jìn)行計(jì)數(shù), 高速正交計(jì)數(shù)模塊將計(jì)數(shù)值傳輸給主控制模塊,主控制模塊根據(jù)反饋的信息確定電機(jī)位置,并確定是否需要校正電機(jī)位置,并將反饋的信息反饋給上位機(jī),供用戶了解電機(jī)的運(yùn)行情況。
權(quán)利要求
1.一種雙CPU組合形式的運(yùn)動(dòng)控制器,包括控制模塊、運(yùn)動(dòng)驅(qū)動(dòng)模塊、通信模塊、輸入輸出模塊和電源模塊,其特征在于控制模塊為運(yùn)動(dòng)驅(qū)動(dòng)模塊、輸入輸出模塊提供控制信號(hào);通信模塊為控制模塊與外界通信提供接口 ;電源模塊為控制模塊、運(yùn)動(dòng)驅(qū)動(dòng)模塊、通信模塊、輸入輸出模塊提供穩(wěn)定的電流,保證各個(gè)模塊正常工作。
2.根據(jù)權(quán)利要求I所示的運(yùn)動(dòng)控制器,其特征在于所述的控制模塊由主CPU和從CPU 組成,主CPU和從CPU之間通過握手的方式交互數(shù)據(jù)和命令;主CPU負(fù)責(zé)運(yùn)動(dòng)反饋與邏輯控制,從CPU負(fù)責(zé)運(yùn)動(dòng)控制輸出,主CPU和從CPU協(xié)同合作,共同完成控制任務(wù);控制器采用雙閉環(huán)結(jié)構(gòu),保證對(duì)電機(jī)的控制精度;控制器的運(yùn)動(dòng)控制過程采用梯形圖進(jìn)行編程。
3.根據(jù)權(quán)利要求2所述的運(yùn)動(dòng)控制器,其特征在于主CPU和從CPU之間的握手方式包括單個(gè)IO命令快速傳遞、組合IO命令快速傳遞和通訊方式數(shù)據(jù)命令傳遞。
4.根據(jù)權(quán)利要求2所述的運(yùn)動(dòng)控制器,其特征在于主CPU主要負(fù)責(zé)以下任務(wù)A.對(duì)從CPU發(fā)出的脈沖進(jìn)行計(jì)數(shù),確定控制器發(fā)送脈沖的狀態(tài);B.接收電機(jī)的反饋信號(hào),進(jìn)行運(yùn)動(dòng)位置校正;C.給從CPU發(fā)送控制信號(hào)和參數(shù);D.接收外圍輸入模塊的信號(hào);E.處理邏輯關(guān)系,進(jìn)行邏輯判斷;F.根據(jù)邏輯判斷將輸出信號(hào)輸出到輸出模塊;G.負(fù)責(zé)與上位機(jī)或者外圍設(shè)備進(jìn)行通訊。
5.根據(jù)權(quán)利要求2所述的運(yùn)動(dòng)控制器,其特征在于從CPU主要負(fù)責(zé)以下任務(wù)a.接收主CPU的運(yùn)動(dòng)參數(shù)與命令;b.根據(jù)需要進(jìn)行插補(bǔ)運(yùn)算;c.輸出PWM控制信號(hào)。
6.根據(jù)權(quán)利要求2所述的運(yùn)動(dòng)控制器,其特征在于控制器采用雙閉環(huán)結(jié)構(gòu),從CPU的 PWM信號(hào)輸出與主CPU計(jì)數(shù)器計(jì)數(shù)形成閉環(huán),用于控制從CPU發(fā)送脈沖的狀態(tài)及發(fā)送脈沖的數(shù)量;電機(jī)驅(qū)動(dòng)器的反饋與主CPU位置信息采集形成閉環(huán),用于確定被控對(duì)象的運(yùn)動(dòng)精度。
7.根據(jù)權(quán)利要求2所述的運(yùn)動(dòng)控制器,其特征在于控制器采用梯形圖內(nèi)嵌運(yùn)動(dòng)控制算法,實(shí)現(xiàn)利用梯形圖對(duì)運(yùn)動(dòng)控制過程進(jìn)行編程,具體實(shí)現(xiàn)方法如下整個(gè)控制器的軟件由三層架構(gòu)組成=Bootload、引擎與梯形圖;所述的Bootload用于引導(dǎo)引擎與梯形圖的下載,實(shí)現(xiàn)控制器的在線更新功能;所述的引擎分為主CPU引擎與從CPU引擎,主CPU引擎負(fù)責(zé)實(shí)現(xiàn)梯形圖指令,并為梯形圖指令提供調(diào)用的接口,從CPU引擎負(fù)責(zé)實(shí)現(xiàn)運(yùn)動(dòng)控制的輸出;所述的梯形圖是由用戶根據(jù)需要設(shè)計(jì),用以實(shí)現(xiàn)具體的邏輯控制功能與運(yùn)動(dòng)過程控制。
8.根據(jù)權(quán)利要求2所述的運(yùn)動(dòng)控制器,其特征在于控制器的通信模塊由串口通信單元與CAN通信單元組成,串口通信單元用于更新程序與在線監(jiān)控,CAN通信單元用于擴(kuò)展外圍設(shè)備。
全文摘要
本發(fā)明提供工業(yè)數(shù)控領(lǐng)域的一種雙CPU組合形式的運(yùn)動(dòng)控制器,包括控制模塊、運(yùn)動(dòng)驅(qū)動(dòng)模塊、通信模塊、輸入輸出模塊、電源模塊。其中,控制模塊由主CPU和從CPU組成,主CPU負(fù)責(zé)邏輯控制及運(yùn)動(dòng)反饋,從CPU根據(jù)主控制模塊的命令,控制電機(jī)的運(yùn)動(dòng),實(shí)現(xiàn)運(yùn)動(dòng)控制中復(fù)雜的算法;主CPU與從CPU之間通過握手的方式交互數(shù)據(jù)與命令;本發(fā)明采用梯形圖內(nèi)嵌運(yùn)動(dòng)控制算法實(shí)現(xiàn)復(fù)雜的運(yùn)動(dòng)控制;本發(fā)明是一種可以由上位機(jī)控制,也可以脫離上位機(jī)獨(dú)立控制的運(yùn)動(dòng)控制器,具有穩(wěn)定性高、成本低等特點(diǎn),并可實(shí)現(xiàn)插補(bǔ)等復(fù)雜的運(yùn)動(dòng)控制算法和多軸同步控制。
文檔編號(hào)G05B19/18GK102591250SQ201210047399
公開日2012年7月18日 申請(qǐng)日期2012年2月28日 優(yōu)先權(quán)日2012年2月28日
發(fā)明者嚴(yán)義, 鄔惠峰 申請(qǐng)人:杭州電子科技大學(xué)