<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

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

          本文引用地址:http://www.ex-cimer.com/article/148591.htm

          0 引言

          傳統(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)用較廣的有 、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ī),以Windows CE 系統(tǒng)的內(nèi)核支持來(lái)降低交互式操作開(kāi)發(fā)的難度。

          3 主要功能模塊及其關(guā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ī)工作原理



          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();