一级毛片免费不卡在线视频,国产日批视频免费在线观看,菠萝菠萝蜜在线视频免费视频,欧美日韩亚洲无线码在线观看,久久精品这里精品,国产成人综合手机在线播放,色噜噜狠狠狠综合曰曰曰,琪琪视频

推薦文檔列表

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

時間:2021-09-30 19:32:43 電子通信論文 我要投稿

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)存的程序解釋器的程序指針,用來記錄程序的邏輯位置。

struct Page ProgPtr{

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

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

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

   unsigned int Handle;∥當(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ù): 

struct 

[1] [2] [3]