欧美成人aaaaa免费视频_亚洲欧美激情小说另类_欧美激情一区二区三区视频_一级在线|欧洲

技術(shù)頻道

數(shù)控系統(tǒng)軟件芯片的研制和開發(fā)

  數(shù)控技術(shù)無疑是現(xiàn)代先進(jìn)制造技術(shù)中最重要的技術(shù)基礎(chǔ),從某種意義上說,數(shù)控技術(shù)的水平已成為衡量一個(gè)國(guó)家制造業(yè)水平的重要標(biāo)志之一。出于技術(shù)壟斷及獨(dú)占市場(chǎng)等原因,各個(gè)廠家生產(chǎn)的數(shù)控系統(tǒng)在體系結(jié)構(gòu)上大多是封閉的,不能進(jìn)行高可*性的軟件擴(kuò)展。近年來,國(guó)內(nèi)外眾多的數(shù)控軟件開發(fā)者都在重復(fù)研究、開發(fā)相同或相似的數(shù)控系統(tǒng),反復(fù)設(shè)計(jì)若干基本模塊,造成了人力、物力和財(cái)力的巨大浪費(fèi),而且由于缺乏統(tǒng)一的標(biāo)準(zhǔn),不同的數(shù)控軟件開發(fā)者開發(fā)的軟件不能互相替換,缺乏兼容性,阻礙了數(shù)控軟件的升級(jí)換代,同時(shí)也阻礙了數(shù)控機(jī)床生產(chǎn)者對(duì)市場(chǎng)和用戶的快速響應(yīng)能力。 通過對(duì)數(shù)控系統(tǒng)軟件體系結(jié)構(gòu)的分析,我們?cè)O(shè)想如果把數(shù)控系統(tǒng)軟件中相同或類似的部分做成類似于硬件電子芯片的軟件芯片(Software IC,SIC)[1,2],每一個(gè)軟件芯片具有高度的功能獨(dú)立性、易移植性、易組裝性及易擴(kuò)充性。這樣,當(dāng)我們建立新的數(shù)控系統(tǒng)時(shí),只需從芯片庫(kù)中取出所需的芯片進(jìn)行組合即可,必要時(shí)加以擴(kuò)充,使數(shù)控系統(tǒng)能夠重用,而不必從頭開發(fā)整個(gè)軟件系統(tǒng)。這樣就能改變目前數(shù)控系統(tǒng)的封閉型設(shè)計(jì),為適應(yīng)未來車間面向任務(wù)和訂單的生產(chǎn)組織模式奠定良好的基礎(chǔ),使底層生產(chǎn)控制系統(tǒng)的集成更為簡(jiǎn)便和有效,從而大大提高數(shù)控軟件的生產(chǎn)力和可*性,減少生產(chǎn)成本及開發(fā)周期。這是增強(qiáng)數(shù)控系統(tǒng)對(duì)市場(chǎng)的快速響應(yīng)能力,促進(jìn)數(shù)控產(chǎn)業(yè)快速、高效發(fā)展的必然之路。

1 數(shù)控系統(tǒng)軟件芯片的劃分

  合理的芯片劃分,是開發(fā)軟件芯片的首要步驟。數(shù)控系統(tǒng)軟件芯片庫(kù)中的各芯片以界面的方式開放,通過接口參數(shù)和界面信息的提示,用戶可掌握芯片的啟動(dòng)、結(jié)束和運(yùn)作。不同芯片的內(nèi)部為黑箱封裝,外部接口開放,并在此基礎(chǔ)上實(shí)現(xiàn)新系統(tǒng)的構(gòu)建。因此,如何定義出合理的數(shù)控系統(tǒng)軟件芯片,使芯片的外部接口易于標(biāo)準(zhǔn)化、規(guī)范化,內(nèi)部易于進(jìn)行黑箱封裝,是我們開發(fā)數(shù)控系統(tǒng)軟件芯片庫(kù)的關(guān)鍵步驟。

  目前,盡管數(shù)控系統(tǒng)從系統(tǒng)的設(shè)計(jì)方法到系統(tǒng)的實(shí)現(xiàn)方式千差萬別,但是其基本原理和軟件的組成都是類似的。在對(duì)現(xiàn)有的數(shù)控系統(tǒng)[3]和用戶需求進(jìn)行仔細(xì)而全面分析的基礎(chǔ)上,同時(shí),在總結(jié)現(xiàn)有系統(tǒng)控制結(jié)構(gòu)的共有特征,并對(duì)其進(jìn)行適當(dāng)?shù)臍w類和抽象的基礎(chǔ)上,將數(shù)控系統(tǒng)劃分為以下幾個(gè)基本的功能模塊。

(1)人機(jī)交互界面模塊 此模塊主要完成在系統(tǒng)運(yùn)行前和運(yùn)行中系統(tǒng)參數(shù)的修改和設(shè)定,如設(shè)定系統(tǒng)工作模式(自動(dòng)、手動(dòng)、點(diǎn)動(dòng)等),圖形顯示模式,系統(tǒng)初始化設(shè)定,坐標(biāo)偏置設(shè)定,G代碼程序的編輯等。
(2)零件代碼解釋模塊 負(fù)責(zé)根據(jù)用戶的系統(tǒng)配置,以及零件程序的語法規(guī)則對(duì)用戶編寫的零件程序進(jìn)行語法檢查,并進(jìn)行解釋譯碼,將源代碼指令中給出的各種信息進(jìn)行分離提取,變成各種狀態(tài)和數(shù)據(jù),為預(yù)處理芯片提供語法上正確的零件程序的中間代碼。
(3)刀補(bǔ)預(yù)處理模塊 負(fù)責(zé)對(duì)解釋后的數(shù)據(jù)進(jìn)行預(yù)處理及插補(bǔ)前的準(zhǔn)備工作。
(4)軌跡插補(bǔ)模塊 負(fù)責(zé)加減速的控制、插補(bǔ)、終點(diǎn)判別等工作,向位置控制器輸出通過軌跡運(yùn)算后的進(jìn)給量。
(5)軸伺服控制模塊 在從I/O及插補(bǔ)運(yùn)算得到的信息的幫助下,通過精插補(bǔ)控制機(jī)床執(zhí)行機(jī)構(gòu)按NC指令指定的路徑和速度運(yùn)動(dòng)。
(6)I/O模塊 負(fù)責(zé)控制器的輸入和輸出(包括機(jī)床檢測(cè)信號(hào)及位置和相關(guān)反饋信息的輸入、控制指令的輸出等)。
  以上這幾個(gè)模塊間具有互操作性、可移植性和可擴(kuò)展性,因而可作為數(shù)控軟件芯片庫(kù)的基本芯片的劃分。

2 數(shù)控系統(tǒng)軟件芯片的構(gòu)建及工作原理
  
  軟件芯片概念的提出是軟件重用發(fā)展過程中的里程碑。開發(fā)軟件芯片就是采用面向?qū)ο蠹夹g(shù)把特定類中的一些通用模塊做成獨(dú)立的可重用的對(duì)象類。由于面向?qū)ο缶哂蟹庋b、分類、消息響應(yīng)和繼承等很有價(jià)值的特點(diǎn),使得軟件芯片和系統(tǒng)其它部分的耦合度得到盡可能的降低,這為軟件芯片的開發(fā)和使用提供了可*保證。同時(shí),由于芯片都是對(duì)較成熟的技術(shù)進(jìn)行封裝而實(shí)現(xiàn)的,在實(shí)踐上是經(jīng)過了驗(yàn)證的,也就是說一個(gè)成熟的芯片已經(jīng)將錯(cuò)誤率降到了最低點(diǎn),所以可以利用數(shù)控軟件芯片來構(gòu)造新的數(shù)控系統(tǒng)能最大程度地保證系統(tǒng)的可*性。 軟件芯片的構(gòu)建就是將功能模塊的本體部分進(jìn)行黑箱封裝,使之輸入接口和輸出接口盡量簡(jiǎn)單、規(guī)范。由于C++語言的面向?qū)ο筇匦院头庋b性較好[4],所以在本系統(tǒng)中將VC作為編程環(huán)境來進(jìn)行芯片本體的構(gòu)建。整個(gè)芯片是基于靜態(tài)庫(kù)創(chuàng)建的,最后生成一個(gè)Lib庫(kù)文件。所有功能的實(shí)現(xiàn)都封裝在Lib庫(kù)文件中。用戶使用時(shí),不需要知道芯片內(nèi)部的功能(如初始化、錯(cuò)誤信息處理、數(shù)據(jù)分離)是怎樣實(shí)現(xiàn)的,只需將對(duì)應(yīng)的.Lib文件和.H文件加入到自己的系統(tǒng)中,然后依照芯片說明提出的接口要求,通過接口參數(shù)調(diào)用相應(yīng)的方法即可。接口參數(shù)和方法在Lib 文件中定義為,用戶可以在外界通過它們和芯片進(jìn)行交互。就如同用戶通過硬件IC的引腳來使用芯片內(nèi)部的功能一樣。

  下面就以零件程序解釋芯片為例,簡(jiǎn)述數(shù)控系統(tǒng)軟件芯片的構(gòu)建過程。
  首先,對(duì)芯片的本體功能進(jìn)行分析,定義出合適的接口。一般來說,一個(gè)完整的零件數(shù)控加工程序,由若干程序段組成,一個(gè)程序段又由若干個(gè)代碼字組成,最后以“;”結(jié)束。每個(gè)代碼字由文字符和數(shù)字符組成,代碼字之間用空格符隔開。
根據(jù)自上向下的原則,該部分又可劃分為以下幾個(gè)部分:
  (1)詞法檢查 對(duì)源程序的數(shù)據(jù)進(jìn)行拼寫及位數(shù)檢查;
  (2)語法檢查 對(duì)程序段中的G代碼和其它功能碼的格式進(jìn)行檢查,如G代碼的相容性檢查等;
  (3)語義檢查 對(duì)上下文相關(guān)的錯(cuò)誤進(jìn)行檢查,如I、J、K和R不能出現(xiàn)在同一行代碼中等;
  (4)譯碼 將程序段的信息進(jìn)行提取,變成相應(yīng)的狀態(tài)量和數(shù)據(jù)量,存儲(chǔ)在輸出緩沖區(qū)中。
  在綜合考慮數(shù)控系統(tǒng)解釋器的內(nèi)部邏輯關(guān)系和數(shù)控系統(tǒng)的運(yùn)動(dòng)控制的基礎(chǔ)上,將解釋芯片的輸入口數(shù)據(jù)定義為以字符串形式輸入的一行數(shù)控代碼段(char* LineStr);輸出口數(shù)據(jù)定義為一個(gè)包含各種信息量的結(jié)構(gòu)。
  輸出數(shù)據(jù)結(jié)構(gòu):
typedef struct{
int Gp01;   ∥1組G代碼
  ……
int Gp15;   ∥15組G代碼
int N,   ∥程序段號(hào)
G,   ∥準(zhǔn)備功能
M,   ∥輔助功能
P,Q,L,D,H;   ∥其他參數(shù)字符
long T;   ∥刀具選擇
double F;   ∥進(jìn)給速度
double S;   ∥主軸速度
double D;   ∥刀具半徑
double X,Y,Z,A,B,C,I,J,K,R,U,V,W; ∥尺寸字
  ……
BOOL bLastCmnd;  最后一行指示標(biāo)志
      }NCcode
如要對(duì)一行代碼段進(jìn)行解釋譯碼,則先聲明一個(gè)實(shí)例:
  CCode code;  //CCode為L(zhǎng)ib文件所生成的類
然后調(diào)用其成員函數(shù),
  code.InterCode(char* LineStr)
  完成對(duì)LineStr中代碼段的詞法、語法、語義檢查和數(shù)據(jù)分離。在進(jìn)行解釋過程中,如果發(fā)現(xiàn)代碼段中有語法或語義錯(cuò)誤,InterCode 會(huì)給出相應(yīng)的提示,并返回到編輯狀態(tài)重新編輯。

  類似的,如要對(duì)結(jié)構(gòu)中的標(biāo)志位進(jìn)行初始化,則可通過調(diào)用code.FlagINI()實(shí)現(xiàn)。同時(shí),還可以通過在外部對(duì)code.ENDED變量進(jìn)行賦值來結(jié)束整個(gè)芯片的運(yùn)行。

  解釋完成后的各種狀態(tài)和數(shù)據(jù)信息存放在前面定義的數(shù)據(jù)結(jié)構(gòu)中。用戶只需按照一般結(jié)構(gòu)的讀法去取相應(yīng)的數(shù)據(jù),如NCcode.G; NCcode.M ,也可以將整個(gè)數(shù)據(jù)結(jié)構(gòu)作為下一個(gè)芯片的入口,實(shí)現(xiàn)芯片與芯片之間的數(shù)據(jù)傳遞。

  為了防止在芯片進(jìn)行譯碼時(shí),外界對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作而產(chǎn)生錯(cuò)誤。本芯片使用了臨界區(qū)的方法,即在方法InterCode()被調(diào)用時(shí),就用 CcriticalSection的成員函數(shù)Lock進(jìn)行加鎖處理,拒絕外界訪問正在更新的數(shù)據(jù),以免出現(xiàn)新老數(shù)據(jù)同時(shí)被讀入的錯(cuò)誤。解釋完成后,用 Unlock進(jìn)行解鎖處理,使用戶能訪問更新以后的數(shù)據(jù)。

3 芯片間的同步和協(xié)調(diào)

  當(dāng)若干個(gè)芯片組成一個(gè)實(shí)用系統(tǒng)后,芯片之間的同步問題就變得格外重要,尤其是像數(shù)控系統(tǒng)這樣對(duì)實(shí)時(shí)性要求比較高的系統(tǒng)。在使用軟件芯片構(gòu)建數(shù)控系統(tǒng)時(shí),每一個(gè)有具體功能的芯片,如譯碼、插補(bǔ)等,都是一個(gè)單獨(dú)的線程。線程與線程之間的通信,是利用事件對(duì)象的方式來實(shí)現(xiàn)的。本系統(tǒng)由于是在VC環(huán)境下開發(fā)的,所以可以利用MFC庫(kù)中的CEvent類及其成員函數(shù)來完成。每一個(gè)事件對(duì)象可以有兩種狀態(tài):信號(hào)態(tài)和非信號(hào)態(tài)。事件可以監(jiān)控線程是否被置于信號(hào)態(tài),并由此決定在適當(dāng)?shù)臅r(shí)候運(yùn)行相應(yīng)的線程。使用事件對(duì)象進(jìn)行線程通信的另一個(gè)原因是事件對(duì)象的聲明十分容易,就像聲明一個(gè)全局變量一樣簡(jiǎn)單。如 CEvent InterCodedStart;事件對(duì)象創(chuàng)建以后,是處于非信號(hào)態(tài)的,要是事件對(duì)象處于信號(hào)態(tài),只需調(diào)用事件對(duì)象的成員函數(shù) SetEvent(),即InterCodeStart.SetEvent();

  在執(zhí)行了上面的語句后,事件對(duì)象InterCodeStart便處于信號(hào)態(tài)。線程監(jiān)視事件是否處于信號(hào)態(tài)可利用下面的Windows API 函數(shù)實(shí)現(xiàn)。

  WaitForSingleObject(InterCodeStart.mhObject, 0);在此情況下,如果函數(shù)返回的是值為 WAITOBJECT0,則事件已被置于信號(hào)態(tài),否則,事件仍處于非信號(hào)態(tài)。通過這些消息和方法,我們就可以實(shí)現(xiàn)系統(tǒng)各線程之間的通信,也可以通過這些事件對(duì)象間的通信控制將若干芯片“粘連”成一個(gè)有機(jī)的實(shí)用系統(tǒng)。

4 結(jié)束語

  本系統(tǒng)全部是在 Windows NT下的VC環(huán)境中開發(fā)的,所以利用了很多MFC中的基本類,這些都大大提高了整個(gè)系統(tǒng)的靈活性,增強(qiáng)了整個(gè)系統(tǒng)的功能。如,數(shù)控代碼的編輯器是基于CEditView類創(chuàng)建的,因此在使用時(shí),它可以利用CEditView類本身所帶的一些編輯功能,如 New、Open、Save、Copy、Cut、Paste等,這使數(shù)控程序的編輯及管理變得和Windows下的文件管理一樣方便容易。同時(shí),VC中各種控件的使用,不但增加了系統(tǒng)控制的易操作性,還使控制界面變得美觀、友好。這些都是值得進(jìn)一步深入探討的地方。利用可重用構(gòu)件技術(shù)來開發(fā)軟件芯片,并利用其構(gòu)建新的數(shù)控系統(tǒng)的思想已用于國(guó)家自然科學(xué)基金項(xiàng)目“高可*性數(shù)控系統(tǒng)軟件芯片庫(kù)及其運(yùn)行環(huán)境”的研究,取得了良好的效果,不但很好地實(shí)現(xiàn)了數(shù)控系統(tǒng)的開放性設(shè)計(jì)和資源重用,而且由于是基于Windows NT和IPC等通用環(huán)境下開發(fā)的,對(duì)數(shù)控系統(tǒng)的升級(jí)換代和對(duì)市場(chǎng)的及時(shí)響應(yīng),都具有良好的開發(fā)前景。

參考文獻(xiàn)
1 王芙清.面向?qū)ο蟪绦蛟O(shè)計(jì).北京:北京大學(xué)出版社,1992:56~57,88~107,142~159
2 Lenz ManFred.IEEE SOFTWARE,1987,4(4):34~42
3 畢承恩.現(xiàn)代數(shù)控機(jī)床.北京:機(jī)械工業(yè)出版社,1991:1~50
4 Kate Gregory著,康博工作室譯.Visual C++ 5開發(fā)使用手冊(cè).北京:機(jī)械工業(yè)出版社,1998:543~563

文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。

欧美成人aaaaa免费视频_亚洲欧美激情小说另类_欧美激情一区二区三区视频_一级在线|欧洲

      9000px;">

          欧美精品xxxxbbbb| 亚洲综合免费观看高清在线观看| 国产精品理论在线观看| 国产成人无遮挡在线视频| 久久久影视传媒| 99视频有精品| 免费xxxx性欧美18vr| 日韩欧美在线不卡| 成人午夜视频在线观看| 一区二区三区日韩欧美精品| 7777精品久久久大香线蕉| 狠狠色狠狠色综合日日91app| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 这里只有精品免费| 国产999精品久久久久久绿帽| 亚洲天堂2014| 91精品国产福利| 成人免费观看男女羞羞视频| 亚洲国产精品久久人人爱| 欧美大黄免费观看| 色av一区二区| 国产乱国产乱300精品| 亚洲伦理在线免费看| 精品国产免费一区二区三区香蕉| 成人动漫在线一区| 久久成人免费电影| 亚洲人123区| 久久久美女艺术照精彩视频福利播放| 在线视频欧美精品| 成人av免费网站| 久久精品99国产精品日本| 亚洲精品一二三| 亚洲欧洲成人精品av97| 亚洲精品一区二区三区影院 | 久久久久久久av麻豆果冻| 欧美性色aⅴ视频一区日韩精品| 国内外精品视频| 久久精品免费观看| 亚洲福利一二三区| 亚洲精品高清视频在线观看| 中文字幕不卡的av| 久久久噜噜噜久久中文字幕色伊伊| 在线观看av不卡| 91在线国产观看| 成人性生交大片免费看中文 | 欧美视频你懂的| 在线精品观看国产| 色婷婷亚洲婷婷| 99久久综合国产精品| 国产91精品一区二区| 国产精品亚洲综合一区在线观看| 老色鬼精品视频在线观看播放| 亚洲成人福利片| 亚洲国产日韩a在线播放| 亚洲一区二区三区四区五区黄 | 欧美色网一区二区| 欧美在线一区二区三区| 欧美自拍偷拍一区| 欧美日韩国产片| 欧美日韩不卡一区| 欧美一区二区精品久久911| 日韩一区二区三区电影在线观看 | 一区二区三区在线播| 亚洲综合免费观看高清完整版| 亚洲精选视频在线| 视频一区二区国产| 美女尤物国产一区| 懂色av中文一区二区三区| 不卡一区二区三区四区| 一本大道久久a久久综合婷婷 | 一区二区三区国产豹纹内裤在线| 亚洲一区二区欧美日韩| 秋霞午夜鲁丝一区二区老狼| 国产精品一区三区| 成人app软件下载大全免费| 色综合久久久久综合体桃花网| 欧美日韩国产精选| 久久久蜜桃精品| 亚洲制服丝袜av| 黑人巨大精品欧美黑白配亚洲| 成人午夜激情视频| 制服丝袜中文字幕一区| 国产日韩精品久久久| 亚洲综合免费观看高清完整版 | 精东粉嫩av免费一区二区三区| 国产一区二区三区四区五区入口| 高清成人在线观看| 欧美日韩国产综合久久| 国产精品毛片久久久久久久| 无码av免费一区二区三区试看| 国产在线视频一区二区三区| 91久久精品一区二区三区| 日韩视频在线观看一区二区| 亚洲免费av在线| 韩国精品主播一区二区在线观看| 99精品久久久久久| 久久久久国产精品厨房| 亚洲丰满少妇videoshd| av日韩在线网站| 欧美tickling网站挠脚心| 亚洲欧美日本在线| 久久99国产精品免费网站| 日本精品免费观看高清观看| 久久无码av三级| 日韩不卡一区二区三区| 不卡视频免费播放| 欧美成人精品3d动漫h| 亚洲高清免费在线| 日本国产一区二区| 国产精品成人一区二区艾草| 韩国女主播一区| 欧美日本高清视频在线观看| 一区二区三区视频在线看| aaa国产一区| 中文字幕一区二区三| 懂色av噜噜一区二区三区av| 久久综合九色综合97_久久久| 麻豆国产一区二区| 欧美一级高清片| 捆绑紧缚一区二区三区视频| 日本黄色一区二区| 亚洲色图色小说| 成人a级免费电影| 欧美激情一区二区在线| 国产成人免费av在线| 久久影视一区二区| 精油按摩中文字幕久久| 欧美一区二区视频免费观看| 日韩电影在线免费看| 91精品免费在线观看| 日本网站在线观看一区二区三区| 欧美日韩一区二区三区在线 | 26uuu亚洲| 韩国三级中文字幕hd久久精品| 日韩精品一区在线观看| 久久99久久精品欧美| 精品国产网站在线观看| 韩国成人在线视频| 国产精品乱人伦| 一本色道综合亚洲| 日本伊人精品一区二区三区观看方式| 91精品国产高清一区二区三区蜜臀| 秋霞av亚洲一区二区三| 日韩亚洲欧美综合| 国产精品一级在线| 成人欧美一区二区三区视频网页| 欧洲一区二区三区在线| 三级亚洲高清视频| 精品国产一区二区在线观看| 成人网页在线观看| 午夜精品一区二区三区三上悠亚| 欧美大片一区二区| 99精品视频在线播放观看| 亚洲成a人片在线不卡一二三区| 日韩三级.com| 91一区二区在线| 青青草成人在线观看| 欧美国产精品专区| 欧美日韩精品一区二区在线播放 | 色婷婷激情一区二区三区| 亚洲午夜羞羞片| 久久精品视频一区| 欧美日韩免费在线视频| 国产成+人+日韩+欧美+亚洲| 日韩福利电影在线观看| 成人免费一区二区三区视频| 欧美一区二区福利视频| 成人av在线一区二区| 精品一区二区三区在线视频| 亚洲色欲色欲www| 精品精品欲导航| 欧美在线看片a免费观看| 国产精品自拍网站| 丝袜亚洲另类欧美| 亚洲欧美在线另类| 久久精品日产第一区二区三区高清版 | 日本精品一区二区三区四区的功能| 激情久久五月天| 天堂一区二区在线免费观看| 亚洲免费色视频| 久久久久久久久久看片| 日韩欧美在线综合网| 欧美精品一二三| 99精品视频一区| 成人av网址在线| 国产一区二区福利视频| 韩日av一区二区| 美腿丝袜亚洲色图| 日韩成人免费电影| 日本系列欧美系列| 奇米精品一区二区三区四区 | 欧美日韩国产首页在线观看| 91天堂素人约啪| 91女人视频在线观看| 成人精品在线视频观看| 国产精品白丝av| 99精品视频在线播放观看| 91在线观看免费视频| 色国产精品一区在线观看| 91麻豆免费在线观看|