基于Windows CE的數(shù)控軟件開(kāi)發(fā)與實(shí)現(xiàn)
摘要:本文介紹了嵌入式Windows CE 系統(tǒng)在數(shù)控加工應(yīng)用領(lǐng)域的平臺(tái)定制,提出了在Windows CE 下的嵌入式數(shù)控加工系統(tǒng)的軟件架構(gòu),探討了嵌入式數(shù)控軟件主要功能模塊及其關(guān)鍵實(shí)現(xiàn)技術(shù)。
本文引用地址:http://www.ex-cimer.com/article/148591.htm0 引言
傳統(tǒng)的數(shù)控系統(tǒng)是一種專用的、封閉體系結(jié)構(gòu)的CNC系統(tǒng)。各數(shù)控廠家出于商業(yè)利益的需要,在數(shù)控系統(tǒng)的設(shè)計(jì)上形成各自獨(dú)立的標(biāo)準(zhǔn)和體系,造成數(shù)控系統(tǒng)硬件平臺(tái)的專用性,軟件結(jié)構(gòu)的不可移植性。這種封閉型和單一性嚴(yán)重影響了數(shù)控技術(shù)的發(fā)展和普及。嵌入式設(shè)備及其操作系統(tǒng)的出現(xiàn),有利于打破現(xiàn)有數(shù)控系統(tǒng)的封閉性,形成開(kāi)放式數(shù)控
系統(tǒng)設(shè)計(jì)模式。嵌入式系統(tǒng)的種類有很多,應(yīng)用較廣的有Windows CE、Linux等。WinCE 是一種為多種嵌入式系統(tǒng)和產(chǎn)品設(shè)計(jì)的緊湊、高效、可升級(jí)的操作系統(tǒng)。WinCE 采用標(biāo)準(zhǔn)模式,其最主要的特征是為有限的硬件資源提供了多線程、多任務(wù)和完全優(yōu)先級(jí)的計(jì)算環(huán)境 [1]。本文探討了在Windows CE系統(tǒng)下,如何開(kāi)發(fā)高效穩(wěn)定的嵌入式數(shù)控系統(tǒng)。
1 Windows CE系統(tǒng)內(nèi)核的定制
嵌入式系統(tǒng)上應(yīng)用軟件的開(kāi)發(fā)離不開(kāi)底層系統(tǒng)的支持,Windows CE 系統(tǒng)下應(yīng)用程序架構(gòu)如圖1 所示。
圖1 Windows CE系統(tǒng)下應(yīng)用程序架構(gòu)
由于應(yīng)用環(huán)境的多樣性,需要對(duì)Windows CE 系統(tǒng)做不同的內(nèi)核定制??刹捎梦④浌镜腜latform. Builder 集成開(kāi)發(fā)環(huán)境,針對(duì)數(shù)控加工應(yīng)用的特點(diǎn),添加、刪除和修改某些系統(tǒng)模塊,包括添加串口通信支持,F(xiàn)AT 文件支持(以支持U 盤(pán)快速傳送G 代碼文件),ActiveSync 支持(與PC 宿主機(jī)的通信支持)等。此外,還應(yīng)將注冊(cè)表模式修改為HIVE 模式,以備掉電后將數(shù)據(jù)存放到FLASH 中保存。
2 嵌入式數(shù)控系統(tǒng)軟件結(jié)構(gòu)
采用模塊化設(shè)計(jì)有助于構(gòu)建清晰的程序框架,提高協(xié)同開(kāi)發(fā)能力和編程效率,增強(qiáng)代碼的復(fù)用率。嵌入式數(shù)控系統(tǒng)軟件模塊劃分如圖2所示。
圖2 上/下位機(jī)軟件模塊劃分
數(shù)控系統(tǒng)使用者首先在PC 機(jī)上完成零件模型建立和編輯,生成加工代碼文件。然后將NC 代碼文件傳輸至嵌入式數(shù)控平臺(tái)。在嵌入式平臺(tái)上完成對(duì)NC 代碼的數(shù)據(jù)挖掘,提取數(shù)控加工信息并傳送至下位機(jī)處理器。下位控制器利用其高速運(yùn)算的能力,完成插補(bǔ)運(yùn)算和伺服電機(jī)控制。
Windows CE 系統(tǒng)在上位機(jī)運(yùn)行。Windows CE 系統(tǒng)非強(qiáng)實(shí)時(shí)性系統(tǒng),因此實(shí)時(shí)性要求較高的任務(wù)(如刀補(bǔ)運(yùn)算,插補(bǔ)運(yùn)算),均放在下位機(jī)運(yùn)行。而像人機(jī)交互這種實(shí)時(shí)性要求不高,但事件機(jī)制較復(fù)雜的任務(wù),則放在上位機(jī)實(shí)現(xiàn),以Windows CE 系統(tǒng)的內(nèi)核支持來(lái)降低交互式操作開(kāi)發(fā)的難度。
3 主要功能模塊及其關(guān)鍵實(shí)現(xiàn)技術(shù)
3.1 人機(jī)界面模塊
人機(jī)界面模塊是用戶與數(shù)控加工平臺(tái)交互的接口。人機(jī)界面包括如下操作:加工代碼的編輯和保存;各種系統(tǒng)參數(shù)的設(shè)定;加工過(guò)程的同步動(dòng)態(tài)仿真;獲取數(shù)控設(shè)備的位置,速度,故障信息,反饋給用戶;文件操作等。
Windows CE出于精簡(jiǎn)內(nèi)核的需要,對(duì)傳統(tǒng)的WIN32 圖形庫(kù)改動(dòng)較大,較多圖形類API被移除。在實(shí)際開(kāi)發(fā)中為滿足圖形顯示需要,需要自寫(xiě)繪圖函數(shù)。數(shù)控仿真用到的繪圖函數(shù)主要有:曲線繪圖類(圓弧,拋物線繪制)、繪圖區(qū)動(dòng)態(tài)縮放、圖形的保存與重繪??蓪⒁陨虾瘮?shù)通過(guò)測(cè)試后封裝成庫(kù),在主程序中調(diào)用。
3.2 加工指令編譯模塊
數(shù)控加工指令主要是由完成各種準(zhǔn)備功能的G 代碼和輔助功能的M 代碼組成。譯碼器的作用是讀入已編輯好的數(shù)控代碼,對(duì)指令進(jìn)行詞法和語(yǔ)法檢查,提取刀位特征,生成刀位文件,最終轉(zhuǎn)換為驅(qū)動(dòng)加工模型運(yùn)動(dòng)的數(shù)據(jù)。譯碼的方式可分為兩類:解釋模式和編譯模式。
解釋模式:將G 代碼分割為若干小段,每段包括3-4行。以段為單位,解釋完本段G代碼后,隨即調(diào)用刀具補(bǔ)償模塊,完成刀具補(bǔ)償。之后把這段經(jīng)過(guò)處理的代碼發(fā)送下位機(jī),進(jìn)行插補(bǔ)控制。解釋模式具有簡(jiǎn)單、易行的特點(diǎn),能夠方便地在加工過(guò)程中動(dòng)態(tài)插入指定代碼。其不足之處在于譯碼效率較低,代碼的串行發(fā)送又極大地限制了加工效率,而且人為地分割G 代碼也破壞了代碼原有的統(tǒng)一性。
編譯模式:預(yù)先對(duì)整個(gè)G代碼文件進(jìn)行編譯,生成臨時(shí)代碼文件。之后將整個(gè)代碼文件發(fā)送到下位機(jī)。在下位機(jī)上調(diào)用刀具補(bǔ)償模塊,對(duì)代碼進(jìn)行刀具補(bǔ)償。編譯模式能夠較好地解決固定循環(huán)指令,子程序以及各種跳轉(zhuǎn)指令的問(wèn)題,維護(hù)代碼自身的統(tǒng)一性[2]。由于是統(tǒng)一編譯,統(tǒng)一執(zhí)行,加工效率也比解釋模式高,故譯碼器的設(shè)計(jì)上采用編譯模式。譯碼器的編譯流程如圖3 所示。
(1)詞法分析:掃描NC 程序,判別是否有不可識(shí)別字符。如果有,則給出錯(cuò)誤信息。
圖 3 譯碼器編譯流程圖
(2)語(yǔ)法分析:規(guī)則與匹配的問(wèn)題。針對(duì)數(shù)控程序特點(diǎn),檢查輸入代碼合理性。若檢查出錯(cuò)誤組合,則給出錯(cuò)誤信息。若檢查出無(wú)效組合,則設(shè)定其無(wú)效。例如:F 指令只對(duì)G01,G02,G03有效,對(duì)G00 無(wú)效。
(3)語(yǔ)義分析和譯碼:設(shè)計(jì)一個(gè)加工信息類CDrawInfo,用于保存譯碼得到的數(shù)據(jù)。為了保存整個(gè)代碼信息,還需要設(shè)計(jì)一個(gè)鏈表類CListInfo。CDrawInfo 類的設(shè)計(jì)如下:
class CDrawInfo: public CObject{
public:
CDrawInfo();
virtual ~CDrawInfo();
UINT m_SerialNum; //加工序號(hào)
CPoint m_ptPrev; //前一點(diǎn)坐標(biāo)
CPoint m_ptNext; //后一點(diǎn)坐標(biāo)
CPoint m_ptCenter; //圓心坐標(biāo)
UINT m_gcodeFun; //G 代碼類型
CDrawInfo perator=(CDrawInfo); //賦值運(yùn)算符重載
};
譯碼程序執(zhí)行時(shí),首先建立一個(gè)CDrawInfo 類的臨時(shí)對(duì)象drawtemp。而后逐行提取代碼的數(shù)據(jù)信息,并將其賦值到drawtemp 對(duì)象中。本行讀取完畢,再把drawtemp保存到鏈表CListInfo。CListInfo 的聲明如下:
伺服電機(jī)相關(guān)文章:伺服電機(jī)工作原理
評(píng)論