激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

CNC系統巨量NC程序解釋實(shí)現的方法

時(shí)間:2024-06-22 19:13:46 理工畢業(yè)論文 我要投稿
  • 相關(guān)推薦

CNC系統巨量NC程序解釋實(shí)現的方法

在數控加工中,對于復雜零件的加工,如水輪機葉片,用CAD/CAM生成的基于微小直線(xiàn)段的NC程序能達到幾兆。對于這些程序量非常大的NC程序,稱(chēng)之為巨量NC程序。
對于專(zhuān)用體系結構的CNC系統,NC程序存儲空間有限,在解釋巨量NC程序時(shí),一般采用RS-232通訊接口,邊傳送邊加工,加工復雜零件較不便,同時(shí)也增加了數控加工系統的成本,降低了數控加工的可靠性。對于基于PC平臺的CNC系統,只有640k的基本內存,由于操作系統和CNC系統控制軟件占用一定的內存空間,當要解釋運行巨量NC程序時(shí),一般將巨量NC程序分成多個(gè)程序塊,系統根據每塊程序大小進(jìn)行內存分配,如分配不合理,則需重新分塊,這給操作帶來(lái)不便。華中Ⅰ型CNC系統以工業(yè)PC為平臺,對于巨量程序的加工,通過(guò)使用系統的擴展內存實(shí)現巨量NC程序的解釋?zhuān)瑫r(shí)要兼容處理類(lèi)似高級語(yǔ)言BASIC編寫(xiě)的NC程序。根據用戶(hù)的加工程序的最大需要,來(lái)配置系統的擴展內存。系統使用擴展內存,充分利用PC的軟件資源,使用擴展內存設備管理程序EMM386.EXE,用DOS的67H號中斷對高端內存的物理頁(yè)的讀寫(xiě),完成對擴展內存的邏輯頁(yè)操作[1]。CNC系統運行前,需在CONFIG.SYS文件中裝載:
DEVICE=C:\HIMEM.SYS
DEVICE=C:\EMM386.EXE
 
1 NC程序的裝載
在NC程序裝入之前,檢測程序檢測有多大的擴展內存,能運行多大的NC程序,根據所要求加工的NC程序判斷能否裝載。
無(wú)論是手工編制的NC程序還是巨量NC程序,運行時(shí)統一采用擴展內存進(jìn)行裝載。為了使用系統的擴展內存,需調用DOS的67H中斷的多項子功能。首先申請一個(gè)包含一定邏輯頁(yè)數的句柄,然后把這些擴展內存清空,清空后再把NC程序調入擴展內存,這樣所要加工的NC程序的大小與系統的基本內存無(wú)關(guān),只與系統的擴展內存有關(guān)。只要CNC系統的擴展內存滿(mǎn)足就能把NC程序裝入并投入運行。NC程序首先裝入高端內存的物理頁(yè),再通過(guò)物理頁(yè)和邏輯頁(yè)的映射關(guān)系,把NC程序裝入擴展內存邏輯頁(yè)。程序開(kāi)始運行以后,可以根據提示的剩余的內存選擇所要編輯的程序。
 
2 巨量NC程序的解釋
程序裝入擴展內存的邏輯頁(yè)后,對程序的解釋操作在高端內存的物理頁(yè)中進(jìn)行,這時(shí)要把擴展內存邏輯頁(yè)的分頁(yè)映射到高端內存的物理頁(yè),再對物理頁(yè)中的NC程序進(jìn)行解釋。對高端內存的物理頁(yè)進(jìn)行操作,必須不斷地考慮程序指針的變換中所涉及的邏輯頁(yè)的轉換以及程序指針的邏輯頁(yè)數是否超過(guò)這個(gè)句柄所擁有的總的邏輯頁(yè)數等[2]。這就要求在程序指針變換時(shí)記錄下程序指針所對應的擴展內存上的邏輯頁(yè)中的邏輯位置,稱(chēng)為程序邏輯指針。把程序指針在高端內存物理頁(yè)中的實(shí)際物理位置稱(chēng)作程序實(shí)際指針。程序邏輯指針在擴展內存中從邏輯低地址移向邏輯高地址,程序實(shí)際指針只是在物理頁(yè)中往復地從頭至尾地移動(dòng),直到所有的程序行解釋執行完畢。程序邏輯指針和程序實(shí)際指針有一種對應關(guān)系,設計一個(gè)結構體來(lái)代替基于系統S基本內存的程序解釋器的程序指針,用來(lái)記錄程序的邏輯位置。
structPageProgPtr{
   charhuge?ProgPtr;.∥物理頁(yè)中程序實(shí)際指針
   intNumOfCurPage;∥當前的邏輯頁(yè)
   intPagenumOfHandle;∥句柄所擁有的邏輯頁(yè)數
   unsignedintHandle;∥當前程序句柄}
在具體的解釋器實(shí)現中要考慮到程序實(shí)際指針和程序邏輯指針處于頁(yè)首和頁(yè)末的情況。當程序實(shí)際指針和程序邏輯指針在頁(yè)首時(shí),程序邏輯指針的下個(gè)位置可能在前一邏輯頁(yè)末尾,程序實(shí)際指針可能要退到物理頁(yè)的末尾。而當程序實(shí)際指針和程序邏輯指針在頁(yè)末時(shí),程序邏輯指針的下個(gè)位置可能在后一邏輯頁(yè)首,程序實(shí)際指針可能從物理頁(yè)的頁(yè)尾移到物理頁(yè)的頁(yè)首。針對這2種情況進(jìn)行處理,設計了2個(gè)處理函數:
structPageProgPtrTreatOfFrameEnd(structPageProgPtr);
structPageProgPtrTreatOfFrameStart(structPageProgPtr);
通過(guò)這種處理保證程序實(shí)際指針在物理頁(yè)中和程序邏輯指針在擴展內存的邏輯頁(yè)中的準確性。
由于在程序解釋時(shí)程序實(shí)際指針只在物理頁(yè)中來(lái)回變化,而程序邏輯指針在擴展內存的邏輯頁(yè)中移動(dòng),在解釋器的設計中必須把程序實(shí)際指針和程序邏輯指針結合在一起考慮。解釋器通過(guò)解釋高端內存中物理頁(yè)的內容來(lái)完成擴展內存的NC程序的解釋任務(wù)。
解釋器解釋NC程序所得到的數據送到一個(gè)環(huán)形緩沖隊列中,當填滿(mǎn)緩沖隊列后,解釋任務(wù)就停止。當插補器從解釋器中取走數據,使緩形隊列中有空單元時(shí),通過(guò)任務(wù)調度把解釋器再次激活,這樣解釋器和插補器就能協(xié)調工作。

 
3 關(guān)于巨量NC程序和類(lèi)似高級語(yǔ)言BASIC編寫(xiě)的NC程序兼容處理
在一般NC代碼解釋器中,只能進(jìn)行ISO代碼的NC程序解釋?zhuān)鴮τ趲в懈呒壵Z(yǔ)言特性的一些NC語(yǔ)句如DO—WHILE語(yǔ)句、IF語(yǔ)句、GOTO語(yǔ)句等和宏變量不支持。對于帶有高級語(yǔ)言特性的NC語(yǔ)句的解釋有2種:第1種方法是做2個(gè)解釋器分別對ISO代碼的NC程序和類(lèi)似高級語(yǔ)言編寫(xiě)的NC程序進(jìn)行解釋?zhuān)坏?種方法是做1個(gè)兼容的通用解釋器,它對2種程序都能處理。第1種方法思路簡(jiǎn)單,解釋器編程容易,由于ISO代碼的NC程序和類(lèi)似高級語(yǔ)言編寫(xiě)的NC程序只能分別編寫(xiě),NC程序的處理能力不強;第2種方法解釋器編程較難,但程序的解釋功能較強,在ISO代碼的程序中可以帶有一些高級語(yǔ)言特性的語(yǔ)句如DO—WHILE語(yǔ)句,這樣用戶(hù)所編寫(xiě)的NC程序的處理功能可以很強。
在華中Ⅰ型CNC系統的解釋器中,采用的是第2種方法,進(jìn)行巨量NC程序和類(lèi)似高級語(yǔ)言編寫(xiě)的NC程序進(jìn)行兼容處理,保證在巨量NC程序中也能加入一些高級語(yǔ)言的特性,這就要進(jìn)行類(lèi)似高級語(yǔ)言的表達式、子程序的調用和程序跳轉等高級語(yǔ)言處理過(guò)程。
在基于基本內存的NC程序解釋器中,對于類(lèi)似高級語(yǔ)言BASIC編寫(xiě)的NC程序的子程序標號和跳轉標號的處理一般先通過(guò)掃描整個(gè)程序而形成子程序表和標號表,再每次遇到NC調用子程序或執行跳轉程序時(shí),通過(guò)查表來(lái)找到子程序的地址或跳轉的目的地址。這樣不僅浪費內存,而且解釋任務(wù)的執行速度。如果NC標號非常多,就會(huì )占用較多的基本內存,而且解釋程序的速度非常慢,特別是CAD/CAM所生成的巨量NC程序,基本上每行都有N標號,更容易出現這樣的。由于使用擴展內存不僅要對一般的手工編制的較短NC程序進(jìn)行處理,而且要對巨量NC程序進(jìn)行處理,采用直接尋址,每次遇到子程序和跳轉程序指令時(shí),通過(guò)比較標號,找到目的地址執行,這樣既節省系統的基本內存,又提高系統的處理速度和CNC運行的穩定性。通過(guò)2個(gè)函數來(lái)解決這個(gè)問(wèn)題:
structPageProgPtrFind_Nlabel(structPageProgPtr);
structPageProgPtrFind_Ocode(structPageProgPtr);
 
4 擴展內存的資源競爭問(wèn)題
為了節約基本內存,要編輯的程序也裝入擴展內存,這也通過(guò)一個(gè)句柄進(jìn)行操作。在程序的編輯時(shí),所要編輯的程序從擴展內存的邏輯頁(yè)輪流裝入高端內存的物理頁(yè),所有程序的編輯都在高端內存進(jìn)行,從而保證在程序編輯過(guò)程不占用基本內存。
由于所編輯程序和運行的程序都是通過(guò)高端內存對擴展內存進(jìn)行操作,存在資源競爭的問(wèn)題。在系統中,擴展內存都是通過(guò)句柄進(jìn)行操作的,通過(guò)EMM386.EXE文件對擴展內存的邏輯頁(yè)進(jìn)行管理,只要能申請到相應擴展內存的句柄,就能保證擴展內存的邏輯頁(yè)使用不發(fā)生沖突。在高端內存中,總共有每頁(yè)16k的4頁(yè)物理頁(yè),把這些物理頁(yè)進(jìn)行分配,程序解釋運行使用第1頁(yè),而程序編輯使用第2頁(yè),由于EMM386.EXE程序本身能保證67H中斷的重入問(wèn)題,通過(guò)這樣內存的分配方式,解決了擴展內存資源競爭問(wèn)題[3]。
 
5 結束語(yǔ)
筆者利用系統的擴展內存實(shí)現了在CNC系統中解釋巨量NC程序;谙到y擴展內存所做的NC解釋器和編輯器使運行程序和編輯程序的大小與基本內存無(wú)關(guān),而只與擴展內存有關(guān)。計算機可配置的擴展內存越來(lái)越大,現已能達到256M,而現階段8M的擴展內存已能滿(mǎn)足一般巨量NC程序運行和編輯的要求,這給更復雜零件加工程序一次裝載解釋運行提供更大的方便。同時(shí),在多通道的CNC系統軟件中,由于每增加一個(gè)通道大約要增加到最大20k到30k的內存開(kāi)銷(xiāo),解釋器和編輯器利用擴展內存也能讓多通道CNC系統增加更多的通道數,控制更多的獨立過(guò)程,這對FMS、CIMS的實(shí)現也有一定的意義。采用該方法所設計的NC代碼解釋器,已運用到華中Ⅰ型數控系統上。
 

[1] 黃山,萬(wàn)玉丹.DOS的全部剖析與編程啟示.北京:學(xué)苑出版社,1993:85~87
[2] [美]TerryDettmann著(zhù),熊桂喜,陸益民,黎軍英等譯.DOS程序員參考手冊.北京:清華大學(xué)出版社,1996:158~162
[3] 熊清平,孫聯(lián)勝,劉延巍.CNC實(shí)時(shí)多任務(wù)操作系統.機械與,1997(3):20~22

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

自動(dòng)噴水滅火系統管網(wǎng)的水力計算及程序實(shí)現03-20

基于Vxworks實(shí)時(shí)操作系統的串口通信程序設計與實(shí)現03-18

無(wú)線(xiàn)巡更系統技術(shù)的實(shí)現03-18

機車(chē)視頻監控系統的研究與實(shí)現03-07

組件機制與操作系統的實(shí)現03-18

JAVA實(shí)現電子商務(wù)系統03-22

新聞發(fā)布系統的設計和實(shí)現03-07

基于PQRM的PACS系統設計與實(shí)現03-07

排課系統的實(shí)現Delphi+SQL11-23

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频