新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于Windows CE的數(shù)控軟件開發(fā)與實現(xiàn)

基于Windows CE的數(shù)控軟件開發(fā)與實現(xiàn)

作者: 時間:2012-08-16 來源:網(wǎng)絡(luò) 收藏

摘要:本文介紹了嵌入式 系統(tǒng)在加工應(yīng)用領(lǐng)域的平臺定制,提出了在 下的嵌入式加工系統(tǒng)的軟件架構(gòu),探討了嵌入式軟件主要功能模塊及其關(guān)鍵技術(shù)。

本文引用地址:http://butianyuan.cn/article/148591.htm

0 引言

傳統(tǒng)的數(shù)控系統(tǒng)是一種專用的、封閉體系結(jié)構(gòu)的CNC系統(tǒng)。各數(shù)控廠家出于商業(yè)利益的需要,在數(shù)控系統(tǒng)的設(shè)計上形成各自獨立的標準和體系,造成數(shù)控系統(tǒng)硬件平臺的專用性,軟件結(jié)構(gòu)的不可移植性。這種封閉型和單一性嚴重影響了數(shù)控技術(shù)的發(fā)展和普及。嵌入式設(shè)備及其操作系統(tǒng)的出現(xiàn),有利于打破現(xiàn)有數(shù)控系統(tǒng)的封閉性,形成開放式數(shù)控

系統(tǒng)設(shè)計模式。嵌入式系統(tǒng)的種類有很多,應(yīng)用較廣的有 、Linux等。WinCE 是一種為多種嵌入式系統(tǒng)和產(chǎn)品設(shè)計的緊湊、高效、可升級的操作系統(tǒng)。WinCE 采用標準模式,其最主要的特征是為有限的硬件資源提供了多線程、多任務(wù)和完全優(yōu)先級的計算環(huán)境 [1]。本文探討了在Windows CE系統(tǒng)下,如何開發(fā)高效穩(wěn)定的嵌入式數(shù)控系統(tǒng)。

1 Windows CE系統(tǒng)內(nèi)核的定制

嵌入式系統(tǒng)上應(yīng)用軟件的開發(fā)離不開底層系統(tǒng)的支持,Windows CE 系統(tǒng)下應(yīng)用程序架構(gòu)如圖1 所示。

圖1 Windows CE系統(tǒng)下應(yīng)用程序架構(gòu)

由于應(yīng)用環(huán)境的多樣性,需要對Windows CE 系統(tǒng)做不同的內(nèi)核定制??刹捎梦④浌镜腜latform. Builder 集成開發(fā)環(huán)境,針對數(shù)控加工應(yīng)用的特點,添加、刪除和修改某些系統(tǒng)模塊,包括添加串口通信支持,F(xiàn)AT 文件支持(以支持U 盤快速傳送G 代碼文件),ActiveSync 支持(與PC 宿主機的通信支持)等。此外,還應(yīng)將注冊表模式修改為HIVE 模式,以備掉電后將數(shù)據(jù)存放到FLASH 中保存。

2 嵌入式數(shù)控系統(tǒng)軟件結(jié)構(gòu)

采用模塊化設(shè)計有助于構(gòu)建清晰的程序框架,提高協(xié)同開發(fā)能力和編程效率,增強代碼的復(fù)用率。嵌入式數(shù)控系統(tǒng)軟件模塊劃分如圖2所示。

圖2 上/下位機軟件模塊劃分

數(shù)控系統(tǒng)使用者首先在PC 機上完成零件模型建立和編輯,生成加工代碼文件。然后將NC 代碼文件傳輸至嵌入式數(shù)控平臺。在嵌入式平臺上完成對NC 代碼的數(shù)據(jù)挖掘,提取數(shù)控加工信息并傳送至下位機處理器。下位控制器利用其高速運算的能力,完成插補運算和伺服電機控制。

Windows CE 系統(tǒng)在上位機運行。Windows CE 系統(tǒng)非強實時性系統(tǒng),因此實時性要求較高的任務(wù)(如刀補運算,插補運算),均放在下位機運行。而像人機交互這種實時性要求不高,但事件機制較復(fù)雜的任務(wù),則放在上位機,以Windows CE 系統(tǒng)的內(nèi)核支持來降低交互式操作開發(fā)的難度。

3 主要功能模塊及其關(guān)鍵技術(shù)

3.1 人機界面模塊

人機界面模塊是用戶與數(shù)控加工平臺交互的接口。人機界面包括如下操作:加工代碼的編輯和保存;各種系統(tǒng)參數(shù)的設(shè)定;加工過程的同步動態(tài)仿真;獲取數(shù)控設(shè)備的位置,速度,故障信息,反饋給用戶;文件操作等。

Windows CE出于精簡內(nèi)核的需要,對傳統(tǒng)的WIN32 圖形庫改動較大,較多圖形類API被移除。在實際開發(fā)中為滿足圖形顯示需要,需要自寫繪圖函數(shù)。數(shù)控仿真用到的繪圖函數(shù)主要有:曲線繪圖類(圓弧,拋物線繪制)、繪圖區(qū)動態(tài)縮放、圖形的保存與重繪??蓪⒁陨虾瘮?shù)通過測試后封裝成庫,在主程序中調(diào)用。

3.2 加工指令編譯模塊

數(shù)控加工指令主要是由完成各種準備功能的G 代碼和輔助功能的M 代碼組成。譯碼器的作用是讀入已編輯好的數(shù)控代碼,對指令進行詞法和語法檢查,提取刀位特征,生成刀位文件,最終轉(zhuǎn)換為驅(qū)動加工模型運動的數(shù)據(jù)。譯碼的方式可分為兩類:解釋模式和編譯模式。

解釋模式:將G 代碼分割為若干小段,每段包括3-4行。以段為單位,解釋完本段G代碼后,隨即調(diào)用刀具補償模塊,完成刀具補償。之后把這段經(jīng)過處理的代碼發(fā)送下位機,進行插補控制。解釋模式具有簡單、易行的特點,能夠方便地在加工過程中動態(tài)插入指定代碼。其不足之處在于譯碼效率較低,代碼的串行發(fā)送又極大地限制了加工效率,而且人為地分割G 代碼也破壞了代碼原有的統(tǒng)一性。

編譯模式:預(yù)先對整個G代碼文件進行編譯,生成臨時代碼文件。之后將整個代碼文件發(fā)送到下位機。在下位機上調(diào)用刀具補償模塊,對代碼進行刀具補償。編譯模式能夠較好地解決固定循環(huán)指令,子程序以及各種跳轉(zhuǎn)指令的問題,維護代碼自身的統(tǒng)一性[2]。由于是統(tǒng)一編譯,統(tǒng)一執(zhí)行,加工效率也比解釋模式高,故譯碼器的設(shè)計上采用編譯模式。譯碼器的編譯流程如圖3 所示。

(1)詞法分析:掃描NC 程序,判別是否有不可識別字符。如果有,則給出錯誤信息。

圖 3 譯碼器編譯流程圖

(2)語法分析:規(guī)則與匹配的問題。針對數(shù)控程序特點,檢查輸入代碼合理性。若檢查出錯誤組合,則給出錯誤信息。若檢查出無效組合,則設(shè)定其無效。例如:F 指令只對G01,G02,G03有效,對G00 無效。

(3)語義分析和譯碼:設(shè)計一個加工信息類CDrawInfo,用于保存譯碼得到的數(shù)據(jù)。為了保存整個代碼信息,還需要設(shè)計一個鏈表類CListInfo。CDrawInfo 類的設(shè)計如下:

class CDrawInfo: public CObject{

public:

CDrawInfo();

virtual ~CDrawInfo();

UINT m_SerialNum; //加工序號

CPoint m_ptPrev; //前一點坐標

CPoint m_ptNext; //后一點坐標

CPoint m_ptCenter; //圓心坐標

UINT m_gcodeFun; //G 代碼類型

CDrawInfo perator=(CDrawInfo); //賦值運算符重載

};

譯碼程序執(zhí)行時,首先建立一個CDrawInfo 類的臨時對象drawtemp。而后逐行提取代碼的數(shù)據(jù)信息,并將其賦值到drawtemp 對象中。本行讀取完畢,再把drawtemp保存到鏈表CListInfo。CListInfo 的聲明如下:

伺服電機相關(guān)文章:伺服電機工作原理



上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉