亚洲一区亚洲二区亚洲三区,国产成人高清在线,久久久精品成人免费看,999久久久免费精品国产牛牛,青草视频在线观看完整版,狠狠夜色午夜久久综合热91,日韩精品视频在线免费观看

CNC系統(tǒng)巨量NC程序解釋實(shí)現(xiàn)的方法論文

時間:2021-06-25 09:48:36 論文范文 我要投稿

CNC系統(tǒng)巨量NC程序解釋實(shí)現(xiàn)的方法論文

  熊清平 張正勇 李作清

CNC系統(tǒng)巨量NC程序解釋實(shí)現(xiàn)的方法論文

  在數(shù)控加工中,對于復(fù)雜零件的加工,如水輪機(jī)葉片,用CAD/CAM生成的基于微小直線段的NC程序能達(dá)到幾兆。對于這些程序量非常大的NC程序,稱之為巨量NC程序。

  對于專用體系結(jié)構(gòu)的CNC系統(tǒng),NC程序存儲空間有限,在解釋巨量NC程序時,一般采用RS-232通訊接口,邊傳送邊加工,加工復(fù)雜零件較不便,同時也增加了數(shù)控加工系統(tǒng)的成本,降低了數(shù)控加工的可靠性。對于基于工業(yè)PC平臺的CNC系統(tǒng),只有640k的基本內(nèi)存,由于操作系統(tǒng)和CNC系統(tǒng)控制軟件占用一定的內(nèi)存空間,當(dāng)要解釋運(yùn)行巨量NC程序時,一般將巨量NC程序分成多個程序塊,系統(tǒng)根據(jù)每塊程序大小進(jìn)行內(nèi)存分配,如分配不合理,則需重新分塊,這給操作帶來不便。華中Ⅰ型CNC系統(tǒng)以工業(yè)PC為平臺,對于巨量程序的加工,通過使用系統(tǒng)的擴(kuò)展內(nèi)存實(shí)現(xiàn)巨量NC程序的解釋,同時要兼容處理類似高級語言BASIC編寫的NC程序。根據(jù)用戶的加工程序的最大需要,來配置系統(tǒng)的擴(kuò)展內(nèi)存。系統(tǒng)使用擴(kuò)展內(nèi)存,充分利用PC的軟件資源,使用擴(kuò)展內(nèi)存設(shè)備管理程序EMM386.EXE,用DOS的67H號中斷對高端內(nèi)存的物理頁的讀寫,完成對擴(kuò)展內(nèi)存的邏輯頁操作[1]。CNC系統(tǒng)運(yùn)行前,需在CONFIG.SYS文件中裝載:

  DEVICE=C:\HIMEM.SYS

  DEVICE=C:\EMM386.EXE

  1 NC程序的裝載

  在NC程序裝入之前,檢測程序檢測有多大的擴(kuò)展內(nèi)存,能運(yùn)行多大的NC程序,根據(jù)所要求加工的NC程序判斷能否裝載。

  無論是手工編制的NC程序還是巨量NC程序,運(yùn)行時統(tǒng)一采用擴(kuò)展內(nèi)存進(jìn)行裝載。為了使用系統(tǒng)的擴(kuò)展內(nèi)存,需調(diào)用DOS的67H中斷的多項(xiàng)子功能。首先申請一個包含一定邏輯頁數(shù)的句柄,然后把這些擴(kuò)展內(nèi)存清空,清空后再把NC程序調(diào)入擴(kuò)展內(nèi)存,這樣所要加工的NC程序的大小與系統(tǒng)的基本內(nèi)存無關(guān),只與系統(tǒng)的擴(kuò)展內(nèi)存有關(guān)。只要CNC系統(tǒng)的擴(kuò)展內(nèi)存滿足就能把NC程序裝入并投入運(yùn)行。NC程序首先裝入高端內(nèi)存的物理頁,再通過物理頁和邏輯頁的映射關(guān)系,把NC程序裝入擴(kuò)展內(nèi)存邏輯頁。程序開始運(yùn)行以后,可以根據(jù)提示的剩余的內(nèi)存選擇所要編輯的程序。

  2 巨量NC程序的解釋

  程序裝入擴(kuò)展內(nèi)存的邏輯頁后,對程序的解釋操作在高端內(nèi)存的物理頁中進(jìn)行,這時要把擴(kuò)展內(nèi)存邏輯頁的內(nèi)容分頁映射到高端內(nèi)存的物理頁,再對物理頁中的NC程序進(jìn)行解釋。對高端內(nèi)存的物理頁進(jìn)行操作,必須不斷地考慮程序指針的變換中所涉及的邏輯頁的轉(zhuǎn)換以及程序指針的邏輯頁數(shù)是否超過這個句柄所擁有的總的邏輯頁數(shù)等問題[2]。這就要求在程序指針變換時記錄下程序指針?biāo)鶎?yīng)的擴(kuò)展內(nèi)存上的邏輯頁中的邏輯位置,稱為程序邏輯指針。把程序指針在高端內(nèi)存物理頁中的實(shí)際物理位置稱作程序?qū)嶋H指針。程序邏輯指針在擴(kuò)展內(nèi)存中從邏輯低地址移向邏輯高地址,程序?qū)嶋H指針只是在物理頁中往復(fù)地從頭至尾地移動,直到所有的程序行解釋執(zhí)行完畢。程序邏輯指針和程序?qū)嶋H指針有一種對應(yīng)關(guān)系,設(shè)計一個結(jié)構(gòu)體來代替基于系統(tǒng)S基本內(nèi)存的程序解釋器的程序指針,用來記錄程序的邏輯位置。

  structPageProgPtr{

  charhuge砅rogPtr;.∥物理頁中程序?qū)嶋H指針

  intNumOfCurPage;∥當(dāng)前的邏輯頁

  intPagenumOfHandle;∥句柄所擁有的邏輯頁數(shù)

  unsignedintHandle;∥當(dāng)前程序句柄}

  在具體的解釋器實(shí)現(xiàn)中要考慮到程序?qū)嶋H指針和程序邏輯指針處于頁首和頁末的情況。當(dāng)程序?qū)嶋H指針和程序邏輯指針在頁首時,程序邏輯指針的下個位置可能在前一邏輯頁末尾,程序?qū)嶋H指針可能要退到物理頁的末尾。而當(dāng)程序?qū)嶋H指針和程序邏輯指針在頁末時,程序邏輯指針的下個位置可能在后一邏輯頁首,程序?qū)嶋H指針可能從物理頁的頁尾移到物理頁的頁首。針對這2種情況進(jìn)行處理,設(shè)計了2個處理函數(shù):

  structPageProgPtrTreatOfFrameEnd(structPageProgPtr);

  structPageProgPtrTreatOfFrameStart(structPageProgPtr);

  通過這種處理保證程序?qū)嶋H指針在物理頁中和程序邏輯指針在擴(kuò)展內(nèi)存的邏輯頁中的準(zhǔn)確性。

  由于在程序解釋時程序?qū)嶋H指針只在物理頁中來回變化,而程序邏輯指針在擴(kuò)展內(nèi)存的邏輯頁中移動,在解釋器的設(shè)計中必須把程序?qū)嶋H指針和程序邏輯指針結(jié)合在一起考慮。解釋器通過解釋高端內(nèi)存中物理頁的內(nèi)容來完成擴(kuò)展內(nèi)存的NC程序的解釋任務(wù)。

  解釋器解釋NC程序所得到的數(shù)據(jù)送到一個環(huán)形緩沖隊列中,當(dāng)填滿緩沖隊列后,解釋任務(wù)就停止。當(dāng)插補(bǔ)器從解釋器中取走數(shù)據(jù),使緩形隊列中有空單元時,通過任務(wù)調(diào)度把解釋器再次激活,這樣解釋器和插補(bǔ)器就能協(xié)調(diào)工作。

  3 關(guān)于巨量NC程序和類似高級語言BASIC編寫的NC程序兼容處理

  在一般NC代碼解釋器中,只能進(jìn)行ISO代碼的NC程序解釋,而對于帶有高級語言特性的一些NC語句如DO—WHILE語句、IF語句、GOTO語句等和宏變量不支持。對于帶有高級語言特性的NC語句的解釋有2種方法:第1種方法是做2個解釋器分別對ISO代碼的NC程序和類似高級語言編寫的NC程序進(jìn)行解釋;第2種方法是做1個兼容的通用解釋器,它對2種程序都能處理。第1種方法思路簡單,解釋器編程容易,由于ISO代碼的NC程序和類似高級語言編寫的NC程序只能分別編寫,NC程序的處理能力不強(qiáng);第2種方法解釋器編程較難,但程序的解釋功能較強(qiáng),在ISO代碼的程序中可以帶有一些高級語言特性的語句如DO—WHILE語句,這樣用戶所編寫的NC程序的處理功能可以很強(qiáng)。

  在華中Ⅰ型CNC系統(tǒng)的解釋器中,采用的是第2種方法,進(jìn)行巨量NC程序和類似高級語言編寫的NC程序進(jìn)行兼容處理,保證在巨量NC程序中也能加入一些高級語言的特性,這就要進(jìn)行類似高級語言的表達(dá)式計算、子程序的調(diào)用和程序跳轉(zhuǎn)等高級語言處理過程。

  在基于基本內(nèi)存的NC程序解釋器中,對于類似高級語言BASIC編寫的NC程序的子程序標(biāo)號和跳轉(zhuǎn)標(biāo)號的處理一般先通過掃描整個程序而形成子程序表和標(biāo)號表,再每次遇到NC調(diào)用子程序或執(zhí)行跳轉(zhuǎn)程序時,通過查表來找到子程序的地址或跳轉(zhuǎn)的目的地址。這樣不僅浪費(fèi)內(nèi)存,而且影響解釋任務(wù)的執(zhí)行速度。如果NC標(biāo)號非常多,就會占用較多的基本內(nèi)存,而且解釋程序的速度非常慢,特別是CAD/CAM所生成的巨量NC程序,基本上每行都有N標(biāo)號,更容易出現(xiàn)這樣的問題。由于使用擴(kuò)展內(nèi)存不僅要對一般的.手工編制的較短N(yùn)C程序進(jìn)行處理,而且要對巨量NC程序進(jìn)行處理,采用直接尋址,每次遇到子程序和跳轉(zhuǎn)程序指令時,通過比較標(biāo)號,找到目的地址執(zhí)行,這樣既節(jié)省系統(tǒng)的基本內(nèi)存,又提高系統(tǒng)的處理速度和CNC運(yùn)行的穩(wěn)定性。通過2個函數(shù)來解決這個問題:

  structPageProgPtrFind_Nlabel(structPageProgPtr);

  structPageProgPtrFind_Ocode(structPageProgPtr);

  4 擴(kuò)展內(nèi)存的資源競爭問題

  為了節(jié)約基本內(nèi)存,要編輯的程序也裝入擴(kuò)展內(nèi)存,這也通過一個句柄進(jìn)行操作。在程序的編輯時,所要編輯的程序從擴(kuò)展內(nèi)存的邏輯頁輪流裝入高端內(nèi)存的物理頁,所有程序的編輯都在高端內(nèi)存進(jìn)行,從而保證在程序編輯過程不占用基本內(nèi)存。

  由于所編輯程序和運(yùn)行的程序都是通過高端內(nèi)存對擴(kuò)展內(nèi)存進(jìn)行操作,存在資源競爭的問題。在系統(tǒng)中,擴(kuò)展內(nèi)存都是通過句柄進(jìn)行操作的,通過EMM386.EXE文件對擴(kuò)展內(nèi)存的邏輯頁進(jìn)行管理,只要能申請到相應(yīng)擴(kuò)展內(nèi)存的句柄,就能保證擴(kuò)展內(nèi)存的邏輯頁使用不發(fā)生沖突。在高端內(nèi)存中,總共有每頁16k的4頁物理頁,把這些物理頁進(jìn)行分配,程序解釋運(yùn)行使用第1頁,而程序編輯使用第2頁,由于EMM386.EXE程序本身能保證67H中斷的重入問題,通過這樣內(nèi)存的分配方式,解決了擴(kuò)展內(nèi)存資源競爭問題[3]。

  5 結(jié)束語

  筆者利用系統(tǒng)的擴(kuò)展內(nèi)存實(shí)現(xiàn)了在CNC系統(tǒng)中解釋巨量NC程序。基于系統(tǒng)擴(kuò)展內(nèi)存所做的NC解釋器和編輯器使運(yùn)行程序和編

  輯程序的大小與基本內(nèi)存無關(guān),而只與擴(kuò)展內(nèi)存有關(guān)。計算機(jī)可配置的擴(kuò)展內(nèi)存越來越大,現(xiàn)已能達(dá)到256M,而現(xiàn)階段8M的擴(kuò)展內(nèi)存已能滿足一般巨量NC程序運(yùn)行和編輯的要求,這給更復(fù)雜零件加工程序一次裝載解釋運(yùn)行提供更大的方便。同時,在多通道的CNC系統(tǒng)軟件中,由于每增加一個通道大約要增加到最大20k到30k的內(nèi)存開銷,解釋器和編輯器利用擴(kuò)展內(nèi)存也能讓多通道CNC系統(tǒng)增加更多的通道數(shù),控制更多的獨(dú)立過程,這對FMS、CIMS的實(shí)現(xiàn)也有一定的意義。采用該方法所設(shè)計的NC代碼解釋器,已運(yùn)用到華中Ⅰ型數(shù)控系統(tǒng)上。

  參考文獻(xiàn)

  [1] 黃山,萬玉丹.DOS的全部剖析與編程啟示.北京:學(xué)苑出版社,1993:85~87

  [2] [美]TerryDettmann著,熊桂喜,陸益民,黎軍英等譯.DOS程序員參考手冊.北京:清華大學(xué)出版社,1996:158~162

  [3] 熊清平,孫聯(lián)勝,劉延巍.CNC實(shí)時多任務(wù)操作系統(tǒng).機(jī)械與電子,1997(3):20~22

【CNC系統(tǒng)巨量NC程序解釋實(shí)現(xiàn)的方法論文】相關(guān)文章:

CNC系統(tǒng)巨量NC程序解釋實(shí)現(xiàn)的方法01-20

*Unix系統(tǒng)NC反彈shell的方法 -電腦資料01-01

linux監(jiān)控程序程序自動重啟實(shí)現(xiàn)方法linux操作系統(tǒng) -電腦資料01-01

可以刪除的系統(tǒng)程序+解釋 -電腦資料01-01

在Unix系統(tǒng)中利用程序?qū)崿F(xiàn)Kill命令Windows系統(tǒng) -電腦資料01-01

禮服租賃管理系統(tǒng)設(shè)計與實(shí)現(xiàn)論文12-22

學(xué)生學(xué)籍管理系統(tǒng)設(shè)計與實(shí)現(xiàn)論文12-23

倉庫庫存管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)論文10-23

NC提交備份方法 -電腦資料01-01