技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 基于運(yùn)動(dòng)控制卡的開(kāi)放式數(shù)控系統(tǒng)研制

基于運(yùn)動(dòng)控制卡的開(kāi)放式數(shù)控系統(tǒng)研制

時(shí)間:2006-11-15 15:31:00來(lái)源:lvjing

導(dǎo)語(yǔ):?實(shí)踐證明這種形式的系統(tǒng)具有很強(qiáng)的性能價(jià)格優(yōu)勢(shì)
摘要:對(duì)基于運(yùn)動(dòng)控制卡和PC的開(kāi)放式數(shù)控系統(tǒng)平臺(tái)結(jié)構(gòu)進(jìn)行了研究,介紹了硬件原理和基于COM的模塊式軟件結(jié)構(gòu),并在此基礎(chǔ)上針對(duì)GT400—SV運(yùn)動(dòng)控制卡開(kāi)發(fā)了一個(gè)數(shù)控系統(tǒng)。實(shí)踐證明這種形式的系統(tǒng)具有很強(qiáng)的性能價(jià)格優(yōu)勢(shì),實(shí)現(xiàn)了軟硬件的開(kāi)放性和數(shù)控模塊的二進(jìn)制復(fù)用。 1 引言 90年代以后,數(shù)控技術(shù)發(fā)展的一個(gè)重要方向是數(shù)控系統(tǒng)的開(kāi)放化。一方面,以往的數(shù)控系統(tǒng)由于其封閉性無(wú)法將計(jì)算機(jī)技術(shù)發(fā)展的最新成果運(yùn)用于數(shù)控系統(tǒng)中,嚴(yán)重地阻礙了數(shù)控技術(shù)的發(fā)展。另一方面,由于加工的多樣化、專(zhuān)業(yè)化,對(duì)加工“個(gè)性化”的要求越來(lái)越高。如何有效地利用PC機(jī)豐富的軟件資源,強(qiáng)大的運(yùn)算能力,統(tǒng)一的人機(jī)界面實(shí)現(xiàn)專(zhuān)業(yè)化、低價(jià)格、高精度、易擴(kuò)展升級(jí)的開(kāi)放式數(shù)控系統(tǒng)成為未來(lái)數(shù)控系統(tǒng)研究和發(fā)展的方向。在PC機(jī)的主流操作系統(tǒng)MS Windows下有兩種方法可以實(shí)現(xiàn)數(shù)字控制:一種是由一臺(tái)計(jì)算機(jī)和一些I/O模塊組成的單機(jī)模式,這種模式在硬件成本上是較為便宜的,但在軟件的編寫(xiě)上卻很復(fù)雜,需要對(duì)Windows加以改造(如內(nèi)嵌實(shí)時(shí)操作系統(tǒng))以保證系統(tǒng)的實(shí)時(shí)控制性能,這是未來(lái)數(shù)控系統(tǒng)的一個(gè)重要發(fā)展方向,但現(xiàn)階段Windows的非開(kāi)放源碼特性使之具有相當(dāng)?shù)碾y度,可行性較差。另一種是并行雙CPU上下位機(jī)通訊模式,相對(duì)而言該種模式具有很大的靈活性和可行性,是一種便于用戶(hù)化開(kāi)發(fā)的全方位的開(kāi)放式體系結(jié)構(gòu)。本文所討論的將GT400-SV運(yùn)動(dòng)控制卡插入PC機(jī)中所構(gòu)成的數(shù)控系統(tǒng),開(kāi)發(fā)周期短、運(yùn)行速度快、控制精度高、價(jià)格低廉,是第二種模式的一個(gè)代表。 2 硬件系統(tǒng)原理與結(jié)構(gòu) 2.1 固高GT400-SV運(yùn)動(dòng)控制卡的特點(diǎn) 固高公司生產(chǎn)的GT400—SV是高性能的伺服運(yùn)動(dòng)控制卡,它可以同步控制四個(gè)運(yùn)動(dòng)軸,實(shí)現(xiàn)復(fù)雜的多軸協(xié)調(diào)運(yùn)動(dòng)。其核心是ADSP2181數(shù)字信號(hào)處理器和FPGA,前者的哈佛結(jié)構(gòu)和MAC單元非常適合完成復(fù)雜的運(yùn)動(dòng)控制算法,后者實(shí)現(xiàn)譯碼、倍頻、脈沖分配、定時(shí)、計(jì)數(shù)等功能。運(yùn)動(dòng)控制卡采用ISA總線與PC相連,數(shù)據(jù)通過(guò)雙端口RAM在上下位機(jī)間傳送。雙端口RAM是一種特殊的隨機(jī)存儲(chǔ)器,它具有兩組數(shù)據(jù)總線和地址總線,在地址不沖突的情況下兩組總線可以在同一時(shí)間并行地訪問(wèn)不同的存儲(chǔ)器單元,雙端口RAM的這種特殊結(jié)構(gòu)使得上下位機(jī)可以快速地進(jìn)行大規(guī)模數(shù)據(jù)交換,大大提高了主機(jī)與DSP運(yùn)動(dòng)控制卡的并行處理能力,解除了以往主從式系統(tǒng)CPU間通訊的瓶頸。圖1是主從式微處理器通過(guò)雙端口RAM進(jìn)行數(shù)據(jù)交換的示意。 圖1 主從機(jī)數(shù)據(jù)交換示意 GT400-SV運(yùn)動(dòng)控制卡在雙端口RAM的基礎(chǔ)上提供了緩沖區(qū)命令機(jī)制,用戶(hù)能夠先將部分運(yùn)動(dòng)控制指令存放在運(yùn)動(dòng)控制器內(nèi)部開(kāi)辟的循環(huán)隊(duì)列命令緩沖區(qū)內(nèi),然后發(fā)出執(zhí)行命令。在運(yùn)動(dòng)控制器執(zhí)行緩沖區(qū)內(nèi)存放的運(yùn)動(dòng)指令的同時(shí),主機(jī)能夠繼續(xù)向緩沖區(qū)內(nèi)下載運(yùn)動(dòng)指令,這樣進(jìn)一步降低了對(duì)主機(jī)通訊的實(shí)時(shí)性要求,同時(shí)運(yùn)動(dòng)控制器通過(guò)預(yù)處理多段緩沖區(qū)內(nèi)的軌跡信息,能夠獲得良好的運(yùn)動(dòng)特性,使軌跡更連貫光滑。 2.2 試驗(yàn)平臺(tái)結(jié)構(gòu)(如圖2所示) 圖2 實(shí)驗(yàn)平臺(tái)結(jié)構(gòu) 3 軟件系統(tǒng)結(jié)構(gòu)規(guī)劃及實(shí)現(xiàn) 3.1 軟件總體層次[/B] 該數(shù)控系統(tǒng)能夠正常工作,其系統(tǒng)軟件包括上位機(jī)端的CNC用戶(hù)應(yīng)用程序、上下位機(jī)進(jìn)行通訊的通訊驅(qū)動(dòng)程序。其中通訊程序的開(kāi)發(fā)工作量最大、最困難、也最具有技巧性,需要對(duì)下位機(jī)的通訊結(jié)構(gòu)及微軟的WDM有充分了解。GT400-SV隨卡提供了win98/2000下的設(shè)備驅(qū)動(dòng)程序PHDIO.SYS,同時(shí)提供了面向運(yùn)動(dòng)控制卡的高級(jí)函數(shù)庫(kù)GTSVDLL.DLL,用戶(hù)通過(guò)主機(jī)程序調(diào)用相應(yīng)的庫(kù)函數(shù),將運(yùn)動(dòng)控制器相關(guān)參數(shù)和運(yùn)動(dòng)軌跡描述傳遞給運(yùn)動(dòng)控制器,也就是發(fā)出運(yùn)動(dòng)控制命令,運(yùn)動(dòng)控制器將根據(jù)主機(jī)的要求,自動(dòng)完成軌跡規(guī)劃、安全檢測(cè)、伺服刷新等復(fù)雜運(yùn)算,計(jì)算結(jié)果轉(zhuǎn)換成模擬電壓或脈沖控制電機(jī)運(yùn)動(dòng),用戶(hù)無(wú)須編寫(xiě)通訊程序,并從32位驅(qū)動(dòng)庫(kù)中解脫出來(lái),將全部精力用于定義和開(kāi)發(fā)自己的CNC系統(tǒng)應(yīng)用程序。本系統(tǒng)的軟件層次關(guān)系如圖3所示。 圖3 軟件總體層次 本系統(tǒng)的開(kāi)放性主要體現(xiàn)在兩個(gè)方面:一方面,控制卡核心對(duì)外開(kāi)放,系統(tǒng)開(kāi)發(fā)商可改進(jìn)運(yùn)動(dòng)控制卡中的運(yùn)動(dòng)控制算法,通過(guò)編程器和下載器下載到控制卡的K2ROM中,以針對(duì)具體的控制對(duì)象優(yōu)化算法,提高系統(tǒng)性能。另一方面,上位機(jī)數(shù)控平臺(tái)對(duì)控制卡、CAD/CAM系統(tǒng)、數(shù)控機(jī)床開(kāi)放。前者的開(kāi)放性主要體現(xiàn)在對(duì)運(yùn)動(dòng)控制卡底層性能特性的控制能力,是以控制卡的物理結(jié)構(gòu)(E2ROM)為基礎(chǔ)的。而后者的開(kāi)放性體現(xiàn)在數(shù)控平臺(tái)對(duì)硬件設(shè)備的兼容性、通用性、可定制性,對(duì)CAD/CAM軟件的銜接能力以及數(shù)控平臺(tái)各功能模塊的可復(fù)用性,這主要通過(guò)合理規(guī)劃軟件功能,選擇先進(jìn)的軟件體系結(jié)構(gòu)來(lái)實(shí)現(xiàn)。 微軟的COM及DCOM是目前比較成熟并已得到廣泛應(yīng)用的組件接口標(biāo)準(zhǔn),通過(guò)定義統(tǒng)一的操作規(guī)范,用戶(hù)不再直接和軟件模塊的功能函數(shù)接觸,COM規(guī)范作為中介,接口屏蔽了模塊內(nèi)部的特征,從而實(shí)現(xiàn)了模塊在二進(jìn)制級(jí)的交互。具體的講COM是通過(guò)定義的虛函數(shù)表(Vtable)以及雙重指針來(lái)實(shí)現(xiàn)的,這種方法具有優(yōu)異的二進(jìn)制級(jí)軟件可重用性,良好的語(yǔ)言無(wú)關(guān)性,可以實(shí)現(xiàn)組件跨進(jìn)程、跨平臺(tái)甚至網(wǎng)絡(luò)范圍內(nèi)的互操作。本文對(duì)使用COM規(guī)范定義開(kāi)發(fā)基于運(yùn)動(dòng)控控制卡的數(shù)控系統(tǒng)軟件模塊做了一些有益的嘗試,將COM作為軟件的底層結(jié)構(gòu)支持。軟件結(jié)構(gòu)如圖4所示。 圖4 軟件結(jié)構(gòu) 3.2 主要模塊間數(shù)據(jù)結(jié)構(gòu)的定義 3.2.1 數(shù)控代碼信息 定義了完整的數(shù)控信息,從數(shù)控程序段中提取的數(shù)控位置信息、運(yùn)動(dòng)信息、I/O被填入該結(jié)構(gòu)。 typedef struct{ CString title;//程序名稱(chēng) int Num;//程序段號(hào) int GG00;//00組G代碼 …… int GG15;//15組G代碼 int GM00;//00組M代碼 …… int GM10;//10組M代碼 int T;//刀具號(hào) double S;//主軸轉(zhuǎn)速 double F;//進(jìn)給速率 double R;//圓弧插補(bǔ)半徑,固定循環(huán)參數(shù) double Q;//固定循環(huán)參數(shù) double P;//固定循環(huán)參數(shù) double X;//基本尺寸 double Y; double Z; double I;//圓弧插補(bǔ)圓心坐標(biāo)(相對(duì)) double J; double K; }CODEINFO; 3.2.2 運(yùn)動(dòng)控制卡信息 主要定義了運(yùn)動(dòng)控制卡可配置部分的參數(shù)。 tvoedef struct { double RefPointX;//系統(tǒng)參考點(diǎn) double RefPointY; double RefPointZ; double RefPointA; double ServoCycle;//伺服周期 AxisMapX;//軸映射 AxisMapY; AxisMapZ; AxisMapA; unsigned short LimitSense;//限位電平 unsigned short DSns;//編碼器方向 unsigned long iN;//中斷號(hào) unsigned long PortBase; structAxislnfo//軸參數(shù) { double AxisMap[5]; unsignedshort Kx[5]; unsigned short ILmt; unsigned short MtrLmt; short MtrBias; unsigned short PosErr; double AccLnt; }Axis[4]; }CARDINFO。 3.2.3 數(shù)控系統(tǒng)信息主要定義了數(shù)控系統(tǒng)的結(jié)構(gòu)參數(shù),支持的數(shù)控代碼表,實(shí)際的驅(qū)動(dòng)能力。該結(jié)構(gòu)為譯碼模塊和控制卡函數(shù)調(diào)用模塊提供規(guī)則,譯碼模塊依據(jù)系統(tǒng)信息及譯碼規(guī)則填充數(shù)控代碼信息結(jié)構(gòu)并輸出錯(cuò)誤信息。 typedef struct { bool G00,G01,G02,G03,……,G99;//支持的G代碼 bool M00,M01,M02,M03,……,M99;//支持的M代碼 double Xmin,Xmax,Ymin,Ymax,Zmin,Zmax;//平臺(tái)結(jié)構(gòu)參數(shù)(軟限位) double Smin,Smax;//主軸轉(zhuǎn)速限制 double Fmin,F(xiàn)max;//進(jìn)給速率限制 double FF;//快速進(jìn)給限制 int plusEqual;//驅(qū)動(dòng)電機(jī)脈沖當(dāng)量 double synAcc;//合成運(yùn)動(dòng)速度限制 double ServoCycle;//伺服周期 int AxisNm;//軸數(shù) struct Tool//刀具參數(shù) { double Lenth; double Ratio; int index; } tool[20]; } CODEPERMIT; 3.2.4 錯(cuò)誤信息 typedef struct { Cstring title;//程序名稱(chēng) UINT line;//出錯(cuò)程序段 UINT ErrorType;//錯(cuò)誤號(hào) }ERROR;//傳遞數(shù)控代碼解釋過(guò)程中識(shí) 別的錯(cuò)誤 3.3 數(shù)控流程分析 限于篇幅各模塊的實(shí)現(xiàn)沒(méi)有一一列出,以下僅對(duì)主要數(shù)控程序流程及實(shí)現(xiàn)作大致說(shuō)明。 3.3.1 系統(tǒng)配置模塊 系統(tǒng)配置模塊包括運(yùn)動(dòng)控制卡參數(shù)配置和機(jī)床參數(shù)配置,前者包括控制卡的伺服濾波、軸映射、編碼器、限位、誤差限等參數(shù)的設(shè)置,這些參數(shù)位于底層,直接決定了系統(tǒng)的性能。后者定義的是機(jī)床的結(jié)構(gòu)參數(shù)、刀具參數(shù)和支持的數(shù)控指令集,包含了機(jī)床的全部特征,這部分參數(shù)主要影響了后續(xù)數(shù)控譯碼過(guò)程。用戶(hù)通過(guò)界面對(duì)上述參數(shù)進(jìn)行設(shè)置,形成配置文件card.ini和sys.ini保存于硬盤(pán),當(dāng)系統(tǒng)啟動(dòng)時(shí)自動(dòng)加載。 圖5 系統(tǒng)參數(shù)配置 圖6 控制卡參數(shù)配置 3.3.2 譯碼模塊 譯碼模塊根據(jù)數(shù)控代碼一般規(guī)則和機(jī)床特征將指令文本翻譯成數(shù)控信息流,其中主要涉及到G代碼M代碼的分組處理、模態(tài)代碼的處理、如何定制數(shù)控代碼規(guī)則等問(wèn)題,若考慮到后續(xù)刀補(bǔ)處理則還應(yīng)給出上兩段代碼的坐標(biāo)以解決進(jìn)行C刀補(bǔ)時(shí)插補(bǔ)段增加的情況。因?yàn)閿?shù)控程序不是定長(zhǎng)的,所以要求用動(dòng)態(tài)數(shù)組來(lái)存儲(chǔ)CODEINFO結(jié)構(gòu),在這里使用了MFC的CArray類(lèi),它可以很方便地管理操作數(shù)組元素,定義如下:CArrayInfoArray;主模塊可以根據(jù)數(shù)控文本譯碼結(jié)果動(dòng)態(tài)地將CODEINFO結(jié)構(gòu)加入到該數(shù)組中,如下所示: CODEINFO m-temp; Translate(CNCString,m-temp,ErrorInfo);//偽代碼InfoArray.Add(m-temp)。 譯碼完成后將數(shù)組傳人下一級(jí)處理模塊。 3.3.3 主模塊 主模塊是整個(gè)系統(tǒng)的核心,該模塊在系統(tǒng)啟動(dòng)階段讀取配置文件初始化運(yùn)動(dòng)控制卡,用機(jī)床信息填充CODEPERMIT結(jié)構(gòu)。在執(zhí)行狀態(tài)下主模塊調(diào)用譯碼、插補(bǔ)等模塊功能形成數(shù)控信息流,最后轉(zhuǎn)入運(yùn)動(dòng)函數(shù)調(diào)度循環(huán),在這個(gè)循環(huán)中,主模塊監(jiān)視控制卡的指令緩沖區(qū)、坐標(biāo)系狀態(tài)寄存器、命令狀態(tài)寄存器,根據(jù)緩沖區(qū)狀況將數(shù)控信息流合成控制卡函數(shù)流不斷地發(fā)往指令緩沖區(qū)并反饋命令執(zhí)行情況、系統(tǒng)坐標(biāo)等狀態(tài)信號(hào)供人機(jī)界面實(shí)時(shí)顯示。如果運(yùn)行過(guò)程由于命令執(zhí)行原因或操作者選擇了停止則主模塊進(jìn)入停止?fàn)顟B(tài)。如果操作者選擇了暫停,則模塊記錄當(dāng)前緩沖區(qū)命令號(hào)等待恢復(fù)執(zhí)行。當(dāng)然,因?yàn)閃indows是基于消息驅(qū)動(dòng)的,所以系統(tǒng)各運(yùn)行狀態(tài)的轉(zhuǎn)換及鎖定都是通過(guò)消息進(jìn)行的,并非如上所述的順序執(zhí)行。 4 影響該系統(tǒng)性能的主要因素 該運(yùn)動(dòng)控制卡采用了高速DSP處理器進(jìn)行數(shù)據(jù)處理,正如前說(shuō)述在完成數(shù)控軌跡規(guī)劃、插補(bǔ)計(jì)算、位置控制、速度控制等方面不存在運(yùn)算能力瓶頸。制約系統(tǒng)性能的主要有以下幾個(gè)因素。 4.1 控制命令的連續(xù)性 應(yīng)防止出現(xiàn)命令緩沖區(qū)空,控制卡對(duì)多段軌跡進(jìn)行預(yù)處理是在命令緩沖區(qū)基礎(chǔ)上進(jìn)行的,緩沖區(qū)機(jī)制可以保證各段軌跡的速度、加速度不出現(xiàn)大幅的波動(dòng),提高加工質(zhì)量。解決的關(guān)鍵在于有效監(jiān)控緩沖區(qū)狀況,合理進(jìn)行運(yùn)動(dòng)指令調(diào)度。 4.2 伺服零漂現(xiàn)象 在使用系統(tǒng)的過(guò)程中發(fā)現(xiàn),如果不使用運(yùn)動(dòng)控制卡提供的零漂消除功能,一般的誤差有13~15個(gè)脈沖,如果脈沖當(dāng)量是2000脈沖/mm,那么誤差將達(dá)到6.5~7.5μm,加工精度得不到保證。通過(guò)在運(yùn)行過(guò)程中對(duì)零漂值的定時(shí)檢測(cè)及動(dòng)態(tài)修改,可以做到無(wú)零漂。 4.3 系統(tǒng)PID參數(shù)的調(diào)整 PID控制算法比較成熟且應(yīng)用廣泛,但參數(shù)的調(diào)整需要豐富的實(shí)踐經(jīng)驗(yàn),參數(shù)調(diào)整良好的系統(tǒng)動(dòng)靜態(tài)特性好,加工精度高,運(yùn)行噪聲低。在實(shí)際運(yùn)用中,可通過(guò)測(cè)試程序測(cè)出系統(tǒng)較優(yōu)的PID參數(shù),再通過(guò)系統(tǒng)配置程序修改參數(shù)。在參數(shù)配置方面今后的一個(gè)發(fā)展方向是系統(tǒng)在線自動(dòng)測(cè)試調(diào)整,這對(duì)系統(tǒng)運(yùn)用于不同的機(jī)床和工況很實(shí)用,也是本系統(tǒng)有待完善的部分。 圖7 數(shù)控系統(tǒng)主界面 5 系統(tǒng)運(yùn)行主界面 6 結(jié)束語(yǔ) 本文以固高GT400-SV運(yùn)動(dòng)控制卡為例構(gòu)筑了一個(gè)上下位機(jī)形式的開(kāi)放式數(shù)控平臺(tái),其對(duì)基于運(yùn)動(dòng)控制卡的開(kāi)放式數(shù)控系統(tǒng)具有一定的通用性,系統(tǒng)采用功能強(qiáng)大的運(yùn)動(dòng)控制卡完成插補(bǔ)計(jì)算、位置控制、速度控制等實(shí)時(shí)任務(wù),以PC機(jī)實(shí)現(xiàn)友好的人機(jī)界面、靈活的系統(tǒng)配置、增強(qiáng)的外部軟件接口,采用基于COM的模塊式軟件結(jié)構(gòu),實(shí)踐證明這種形式的系統(tǒng)具有較強(qiáng)的控制性能,實(shí)現(xiàn)了軟硬件的開(kāi)放性和模塊的二進(jìn)制復(fù)用,適合構(gòu)建各種通用及專(zhuān)用數(shù)控系統(tǒng),本系統(tǒng)的改型系統(tǒng)已應(yīng)用于一印制板鉆床。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:網(wǎng)絡(luò)運(yùn)動(dòng)控制器的設(shè)計(jì)及其應(yīng)用

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.wangxinlc.cn)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見(jiàn)反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢(xún)采購(gòu)咨詢(xún)媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書(shū) | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)