基于運動控制卡的開放式數控系統(tǒng)研制

發(fā)布日期:2011-11-25    蘭生客服中心    瀏覽:1885

摘要:對基于運動控制卡和PC的開放式數控系統(tǒng)平臺結構進行了研究,介紹了硬件原理和基于COM的模塊式軟件結構,并在此基礎上針對GT400—SV運動控制卡開發(fā)了一個數控系統(tǒng)。實踐證明這種形式的系統(tǒng)具有很強的性能價格優(yōu)勢,實現了軟硬件的開放性和數控模塊的二進制復用。

1 引言 

    90年代以后,數控技術發(fā)展的一個重要方向是數控系統(tǒng)的開放化。一方面,以往的數控系統(tǒng)由于其封閉性無法將計算機技術發(fā)展的最新成果運用于數控系統(tǒng)中,嚴重地阻礙了數控技術的發(fā)展。另一方面,由于加工的多樣化、專業(yè)化,對加工“個性化”的要求越來越高。如何有效地利用PC機豐富的軟件資源,強大的運算能力,統(tǒng)一的人機界面實現專業(yè)化、低價格、高精度、易擴展升級的開放式數控系統(tǒng)成為未來數控系統(tǒng)研究和發(fā)展的方向。在PC機的主流操作系統(tǒng)MS Windows下有兩種方法可以實現數字控制:一種是由一臺計算機和一些I/O模塊組成的單機模式,這種模式在硬件成本上是較為便宜的,但在軟件的編寫上卻很復雜,需要對Windows加以改造(如內嵌實時操作系統(tǒng))以保證系統(tǒng)的實時控制性能,這是未來數控系統(tǒng)的一個重要發(fā)展方向,但現階段Windows的非開放源碼特性使之具有相當的難度,可行性較差。另一種是并行雙CPU上下位機通訊模式,相對而言該種模式具有很大的靈活性和可行性,是一種便于用戶化開發(fā)的全方位的開放式體系結構。本文所討論的將GT400-SV運動控制卡插入PC機中所構成的數控系統(tǒng),開發(fā)周期短、運行速度快、控制精度高、價格低廉,是第二種模式的一個代表。

2 硬件系統(tǒng)原理與結構 

2.1 固高GT400-SV運動控制卡的特點 

    固高公司生產的GT400—SV是高性能的伺服運動控制卡,它可以同步控制四個運動軸,實現復雜的多軸協(xié)調運動。其核心是ADSP2181數字信號處理器和FPGA,前者的哈佛結構和MAC單元非常適合完成復雜的運動控制算法,后者實現譯碼、倍頻、脈沖分配、定時、計數等功能。運動控制卡采用ISA總線與PC相連,數據通過雙端口RAM在上下位機間傳送。雙端口RAM是一種特殊的隨機存儲器,它具有兩組數據總線和地址總線,在地址不沖突的情況下兩組總線可以在同一時間并行地訪問不同的存儲器單元,雙端口RAM的這種特殊結構使得上下位機可以快速地進行大規(guī)模數據交換,大大提高了主機與DSP運動控制卡的并行處理能力,解除了以往主從式系統(tǒng)CPU間通訊的瓶頸。圖1是主從式微處理器通過雙端口RAM進行數據交換的示意。



                  圖1 主從機數據交換示意

    GT400-SV運動控制卡在雙端口RAM的基礎上提供了緩沖區(qū)命令機制,用戶能夠先將部分運動控制指令存放在運動控制器內部開辟的循環(huán)隊列命令緩沖區(qū)內,然后發(fā)出執(zhí)行命令。在運動控制器執(zhí)行緩沖區(qū)內存放的運動指令的同時,主機能夠繼續(xù)向緩沖區(qū)內下載運動指令,這樣進一步降低了對主機通訊的實時性要求,同時運動控制器通過預處理多段緩沖區(qū)內的軌跡信息,能夠獲得良好的運動特性,使軌跡更連貫光滑。

2.2 試驗平臺結構(如圖2所示)



                  圖2  實驗平臺結構

3 軟件系統(tǒng)結構規(guī)劃及實現 

3.1 軟件總體層次 

    該數控系統(tǒng)能夠正常工作,其系統(tǒng)軟件包括上位機端的CNC用戶應用程序、上下位機進行通訊的通訊驅動程序。其中通訊程序的開發(fā)工作量最大、最困難、也最具有技巧性,需要對下位機的通訊結構及微軟的WDM有充分了解。GT400-SV隨卡提供了win98/2000下的設備驅動程序PHDIO.SYS,同時提供了面向運動控制卡的高級函數庫GTSVDLL.DLL,用戶通過主機程序調用相應的庫函數,將運動控制器相關參數和運動軌跡描述傳遞給運動控制器,也就是發(fā)出運動控制命令,運動控制器將根據主機的要求,自動完成軌跡規(guī)劃、安全檢測、伺服刷新等復雜運算,計算結果轉換成模擬電壓或脈沖控制電機運動,用戶無須編寫通訊程序,并從32位驅動庫中解脫出來,將全部精力用于定義和開發(fā)自己的CNC系統(tǒng)應用程序。本系統(tǒng)的軟件層次關系如圖3所示。



                  圖3  軟件總體層次

    本系統(tǒng)的開放性主要體現在兩個方面:一方面,控制卡核心對外開放,系統(tǒng)開發(fā)商可改進運動控制卡中的運動控制算法,通過編程器和下載器下載到控制卡的K2ROM中,以針對具體的控制對象優(yōu)化算法,提高系統(tǒng)性能。另一方面,上位機數控平臺對控制卡、CAD/CAM系統(tǒng)、數控機床開放。前者的開放性主要體現在對運動控制卡底層性能特性的控制能力,是以控制卡的物理結構(E2ROM)為基礎的。而后者的開放性體現在數控平臺對硬件設備的兼容性、通用性、可定制性,對CAD/CAM軟件的銜接能力以及數控平臺各功能模塊的可復用性,這主要通過合理規(guī)劃軟件功能,選擇先進的軟件體系結構來實現。

    微軟的COM及DCOM是目前比較成熟并已得到廣泛應用的組件接口標準,通過定義統(tǒng)一的操作規(guī)范,用戶不再直接和軟件模塊的功能函數接觸,COM規(guī)范作為中介,接口屏蔽了模塊內部的特征,從而實現了模塊在二進制級的交互。具體的講COM是通過定義的虛函數表(Vtable)以及雙重指針來實現的,這種方法具有優(yōu)異的二進制級軟件可重用性,良好的語言無關性,可以實現組件跨進程、跨平臺甚至網絡范圍內的互操作。本文對使用COM規(guī)范定義開發(fā)基于運動控控制卡的數控系統(tǒng)軟件模塊做了一些有益的嘗試,將COM作為軟件的底層結構支持。軟件結構如圖4所示。



                  圖4  軟件結構

3.2 主要模塊間數據結構的定義 

3.2.1  數控代碼信息

    定義了完整的數控信息,從數控程序段中提取的數控位置信息、運動信息、I/O被填入該結構。

typedef struct{

CString title;//程序名稱

int Num;//程序段號

int GG00;//00組G代碼

……

int GG15;//15組G代碼

int GM00;//00組M代碼

……

int  GM10;//10組M代碼

int  T;//刀具號

double S;//主軸轉速

double F;//進給速率

double R;//圓弧插補半徑,固定循環(huán)參數

double Q;//固定循環(huán)參數

double P;//固定循環(huán)參數

double X;//基本尺寸

double Y;

double Z;

double I;//圓弧插補圓心坐標(相對)

double J;

double K;

}CODEINFO;

3.2.2 運動控制卡信息

主要定義了運動控制卡可配置部分的參數。

tvoedef struct {

double RefPointX;//系統(tǒng)參考點

double RefPointY;

double RefPointZ;

double RefPointA;

double ServoCycle;//伺服周期

AxisMapX;//軸映射

AxisMapY;

AxisMapZ;

AxisMapA;

unsigned short LimitSense;//限位電平

unsigned short DSns;//編碼器方向

unsigned long iN;//中斷號

unsigned long PortBase;

structAxislnfo//軸參數



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 數控系統(tǒng)信息主要定義了數控系統(tǒng)的結構參數,支持的數控代碼表,實際的驅動能力。該結構為譯碼模塊和控制卡函數調用模塊提供規(guī)則,譯碼模塊依據系統(tǒng)信息及譯碼規(guī)則填充數控代碼信息結構并輸出錯誤信息。

typedef struct {

bool G00,G01,G02,G03,……,G99;//支持的G代碼

bool M00,M01,M02,M03,……,M99;//支持的M代碼

double Xmin,Xmax,Ymin,Ymax,Zmin,Zmax;//平臺結構參數(軟限位)

double Smin,Smax;//主軸轉速限制

double Fmin,Fmax;//進給速率限制

double FF;//快速進給限制

int plusEqual;//驅動電機脈沖當量

double synAcc;//合成運動速度限制

double ServoCycle;//伺服周期

int AxisNm;//軸數

struct Tool//刀具參數



double Lenth;

double Ratio;

int index;

} tool[20];

} CODEPERMIT;

3.2.4 錯誤信息

typedef struct {

Cstring title;//程序名稱

UINT line;//出錯程序段

UINT ErrorType;//錯誤號

}ERROR;//傳遞數控代碼解釋過程中識

別的錯誤



3.3 數控流程分析 

   限于篇幅各模塊的實現沒有一一列出,以下僅對主要數控程序流程及實現作大致說明。

3.3.1 系統(tǒng)配置模塊

    系統(tǒng)配置模塊包括運動控制卡參數配置和機床參數配置,前者包括控制卡的伺服濾波、軸映射、編碼器、限位、誤差限等參數的設置,這些參數位于底層,直接決定了系統(tǒng)的性能。后者定義的是機床的結構參數、刀具參數和支持的數控指令集,包含了機床的全部特征,這部分參數主要影響了后續(xù)數控譯碼過程。用戶通過界面對上述參數進行設置,形成配置文件card.ini和sys.ini保存于硬盤,當系統(tǒng)啟動時自動加載。

 

              圖5  系統(tǒng)參數配置                       圖6  控制卡參數配置

3.3.2 譯碼模塊

    譯碼模塊根據數控代碼一般規(guī)則和機床特征將指令文本翻譯成數控信息流,其中主要涉及到G代碼M代碼的分組處理、模態(tài)代碼的處理、如何定制數控代碼規(guī)則等問題,若考慮到后續(xù)刀補處理則還應給出上兩段代碼的坐標以解決進行C刀補時插補段增加的情況。因為數控程序不是定長的,所以要求用動態(tài)數組來存儲CODEINFO結構,在這里使用了MFC的CArray類,它可以很方便地管理操作數組元素,定義如下:CArray<CODEINFO,CODEINFO&>InfoArray;主模塊可以根據數控文本譯碼結果動態(tài)地將CODEINFO結構加入到該數組中,如下所示:

CODEINFO m-temp;

Translate(CNCString,m-temp,ErrorInfo);//偽代碼InfoArray.Add(m-temp)。

譯碼完成后將數組傳人下一級處理模塊。

3.3.3 主模塊

    主模塊是整個系統(tǒng)的核心,該模塊在系統(tǒng)啟動階段讀取配置文件初始化運動控制卡,用機床信息填充CODEPERMIT結構。在執(zhí)行狀態(tài)下主模塊調用譯碼、插補等模塊功能形成數控信息流,最后轉入運動函數調度循環(huán),在這個循環(huán)中,主模塊監(jiān)視控制卡的指令緩沖區(qū)、坐標系狀態(tài)寄存器、命令狀態(tài)寄存器,根據緩沖區(qū)狀況將數控信息流合成控制卡函數流不斷地發(fā)往指令緩沖區(qū)并反饋命令執(zhí)行情況、系統(tǒng)坐標等狀態(tài)信號供人機界面實時顯示。如果運行過程由于命令執(zhí)行原因或操作者選擇了停止則主模塊進入停止狀態(tài)。如果操作者選擇了暫停,則模塊記錄當前緩沖區(qū)命令號等待恢復執(zhí)行。當然,因為Windows是基于消息驅動的,所以系統(tǒng)各運行狀態(tài)的轉換及鎖定都是通過消息進行的,并非如上所述的順序執(zhí)行。

4 影響該系統(tǒng)性能的主要因素 

    該運動控制卡采用了高速DSP處理器進行數據處理,正如前說述在完成數控軌跡規(guī)劃、插補計算、位置控制、速度控制等方面不存在運算能力瓶頸。制約系統(tǒng)性能的主要有以下幾個因素。

4.1 控制命令的連續(xù)性 

    應防止出現命令緩沖區(qū)空,控制卡對多段軌跡進行預處理是在命令緩沖區(qū)基礎上進行的,緩沖區(qū)機制可以保證各段軌跡的速度、加速度不出現大幅的波動,提高加工質量。解決的關鍵在于有效監(jiān)控緩沖區(qū)狀況,合理進行運動指令調度。

4.2 伺服零漂現象 

    在使用系統(tǒng)的過程中發(fā)現,如果不使用運動控制卡提供的零漂消除功能,一般的誤差有13~15個脈沖,如果脈沖當量是2000脈沖/mm,那么誤差將達到6.5~7.5μm,加工精度得不到保證。通過在運行過程中對零漂值的定時檢測及動態(tài)修改,可以做到無零漂。

4.3 系統(tǒng)PID參數的調整 

    PID控制算法比較成熟且應用廣泛,但參數的調整需要豐富的實踐經驗,參數調整良好的系統(tǒng)動靜態(tài)特性好,加工精度高,運行噪聲低。在實際運用中,可通過測試程序測出系統(tǒng)較優(yōu)的PID參數,再通過系統(tǒng)配置程序修改參數。在參數配置方面今后的一個發(fā)展方向是系統(tǒng)在線自動測試調整,這對系統(tǒng)運用于不同的機床和工況很實用,也是本系統(tǒng)有待完善的部分。



                    圖7 數控系統(tǒng)主界面

5 系統(tǒng)運行主界面 

6 結束語 

    本文以固高GT400-SV運動控制卡為例構筑了一個上下位機形式的開放式數控平臺,其對基于運動控制卡的開放式數控系統(tǒng)具有一定的通用性,系統(tǒng)采用功能強大的運動控制卡完成插補計算、位置控制、速度控制等實時任務,以PC機實現友好的人機界面、靈活的系統(tǒng)配置、增強的外部軟件接口,采用基于COM的模塊式軟件結構,實踐證明這種形式的系統(tǒng)具有較強的控制性能,實現了軟硬件的開放性和模塊的二進制復用,適合構建各種通用及專用數控系統(tǒng),本系統(tǒng)的改型系統(tǒng)已應用于一印制板鉆床。

更多相關信息