- 相關推薦
CNC系統巨量NC程序解釋實現的方法
熊清平 張正勇 李作清在數控加工中,對于復雜零件的加工,如水輪機葉片,用CAD/CAM生成的基于微小直線段的NC程序能達到幾兆。對于這些程序量非常大的NC程序,稱之為巨量NC程序。
對于專用體系結構的CNC系統,NC程序存儲空間有限,在解釋巨量NC程序時,一般采用RS-232通訊接口,邊傳送邊加工,加工復雜零件較不便,同時也增加了數控加工系統的成本,降低了數控加工的可靠性。對于基于工業PC平臺的CNC系統,只有640k的基本內存,由于操作系統和CNC系統控制軟件占用一定的內存空間,當要解釋運行巨量NC程序時,一般將巨量NC程序分成多個程序塊,系統根據每塊程序大小進行內存分配,如分配不合理,則需重新分塊,這給操作帶來不便。華中Ⅰ型CNC系統以工業PC為平臺,對于巨量程序的加工,通過使用系統的擴展內存實現巨量NC程序的解釋,同時要兼容處理類似高級語言BASIC編寫的NC程序。根據用戶的加工程序的最大需要,來配置系統的擴展內存。系統使用擴展內存,充分利用PC的軟件資源,使用擴展內存設備管理程序EMM386.EXE,用DOS的67H號中斷對高端內存的物理頁的讀寫,完成對擴展內存的邏輯頁操作[1]。CNC系統運行前,需在CONFIG.SYS文件中裝載:
DEVICE=C:\HIMEM.SYS
DEVICE=C:\EMM386.EXE
1 NC程序的裝載
在NC程序裝入之前,檢測程序檢測有多大的擴展內存,能運行多大的NC程序,根據所要求加工的NC程序判斷能否裝載。
無論是手工編制的NC程序還是巨量NC程序,運行時統一采用擴展內存進行裝載。為了使用系統的擴展內存,需調用DOS的67H中斷的多項子功能。首先申請一個包含一定邏輯頁數的句柄,然后把這些擴展內存清空,清空后再把NC程序調入擴展內存,這樣所要加工的NC程序的大小與系統的基本內存無關,只與系統的擴展內存有關。只要CNC系統的擴展內存滿足就能把NC程序裝入并投入運行。NC程序首先裝入高端內存的物理頁,再通過物理頁和邏輯頁的映射關系,把NC程序裝入擴展內存邏輯頁。程序開始運行以后,可以根據提示的剩余的內存選擇所要編輯的程序。
2 巨量NC程序的解釋
程序裝入擴展內存的邏輯頁后,對程序的解釋操作在高端內存的物理頁中進行,這時要把擴展內存邏輯頁的內容分頁映射到高端內存的物理頁,再對物理頁中的NC程序進行解釋。對高端內存的物理頁進行操作,必須不斷地考慮程序指針的變換中所涉及的邏輯頁的轉換以及程序指針的邏輯頁數是否超過這個句柄所擁有的總的邏輯頁數等問題[2]。這就要求在程序指針變換時記錄下程序指針所對應的擴展內存上的邏輯頁中的邏輯位置,稱為程序邏輯指針。把程序指針在高端內存物理頁中的實際物理位置稱作程序實際指針。程序邏輯指針在擴展內存中從邏輯低地址移向邏輯高地址,程序實際指針只是在物理頁中往復地從頭至尾地移動,直到所有的程序行解釋執行完畢。程序邏輯指針和程序實際指針有一種對應關系,設計一個結構體來代替基于系統S基本內存的程序解釋器的程序指針,用來記錄程序的邏輯位置。
struct Page ProgPtr{
charhuge?ProgPtr;.∥物理頁中程序實際指針
int NumOfCurPage;∥當前的邏輯頁
int PagenumOfHandle;∥句柄所擁有的邏輯頁數
unsigned int Handle;∥當前程序句柄}
在具體的解釋器實現中要考慮到程序實際指針和程序邏輯指針處于頁首和頁末的情況。當程序實際指針和程序邏輯指針在頁首時,程序邏輯指針的下個位置可能在前一邏輯頁末尾,程序實際指針可能要退到物理頁的末尾。而當程序實際指針和程序邏輯指針在頁末時,程序邏輯指針的下個位置可能在后一邏輯頁首,程序實際指針可能從物理頁的頁尾移到物理頁的頁首。針對這2種情況進行處理,設計了2個處理函數:
struct
[1] [2] [3]
【CNC系統巨量NC程序解釋實現的方法】相關文章:
數控系統內置式PLC的FPGA實現方法04-29
海岸線變化趨勢預測方法研究與系統實現04-28
試述系統安全分析評價方法及其實現04-29
特征系統實現算法中的模型定階方法研究04-28
單井水淹層測井解釋系統厚度劃分方法研究04-28
汽車安全檢測系統的設計與實現04-27
TDCS系統中VLAN的設計與實現05-02
高校排考系統的設計與實現04-29