最新精品久久,欧美亚洲福利,表妹免费在线观看,久久国产二区,国产三级电影网站,日本特黄久久,成人a在线视频免费观看

Windows平臺上軟件數(shù)控系統(tǒng)開發(fā)

來源:互聯(lián)網(wǎng)

點擊:1709

A+ A-

所屬頻道:新聞中心

關鍵詞:Windows 數(shù)控系統(tǒng)

      在Windows平臺上進行數(shù)控系統(tǒng)開發(fā)是數(shù)控產(chǎn)品更新的標志和趨勢。Windows是消息驅動的多任務環(huán)境,各種消息都按它們到達的先后順序排隊處理,即消息機制是不分任務的輕重急緩的,若無中斷設置,僅憑消息調度機制,則不能保證數(shù)控前臺控制任務在準確的時間間隔內執(zhí)行,這正是利用Windows平臺進行數(shù)控系統(tǒng)開發(fā)所要解決的關鍵問題。由于介紹這方面的資料甚少,所 以困擾著Windows平臺下的數(shù)控軟件開發(fā),我們在仿形數(shù)控系統(tǒng)開發(fā)的實踐中總結出以下原理、方法和思路。

    1 Windows下攔截硬件中斷的方法

      實際上,Windows是在DOS內核上發(fā)展起來的,DOS的許多中斷在Windows下仍然可用,所不同的是Wind ows運行于保護模式下,從而打破了實模式的IM可尋地址屏障。在實模式DOS下,中斷通過中斷 向量 表(WT)進行,其內存放著中斷服務子程序的人口地址(段地址:偏移量)。Wind ows另外再產(chǎn)生一種新表,稱為中斷描述表(IDT),它包含了中斷服務子程序的實際地址,即24位或32位的地址。

      Windows下中斷調用分為兩種情況:一種是原來的BIOS或D OS中斷,如計時器或鍵盤等硬件中斷,通過Windows的IDT指向一個特殊的句柄,這個句柄將CPU轉為實模式,然后查IV T獲得實模式中斷服務子程序。另一種是運行于保護模式的,它們查IDT后即可直接轉人相應中斷程序,如州121H中AH=25H/35H調用就屬于這種情況,需要注意的是,Windows雖支持DOS的全部硬件中斷和大部分軟件中斷,但與實模式DOS下的版本有所不同,且有些軟件中斷不再適用,故應用時應先查有關手冊。

      WindowS下IN121H中AH=25H/3SH這兩個功能為設置和取得保護模式下中斷向量,它們可以用來攔截硬件中斷,使之觸發(fā)所取代的中斷服務程序在保護模式下運行。在數(shù)控后臺主程序中利用這兩個功能來攔截CPU的8253通道o計數(shù)器的硬件中斷IRQ()所產(chǎn)生的INIUSH,從而實現(xiàn)數(shù)控前臺中斷控制服務程序定時執(zhí)行。主程序在Windows的Borland C+ +3.1下開發(fā),主程序初始化時,首先用SaveVector保存中斷 向量,然后 用Se tVector設置新的中斷向量,主程序退出時,用Setvector恢復原有的中斷向量,下面給出自編的這兩個函數(shù)。

    2 數(shù)控仿形系統(tǒng)軟件基本結構

      在Windows平臺下開發(fā)的數(shù)控仿形系統(tǒng)可利用WindowS多任務的優(yōu)勢。此系統(tǒng)的任務有:系統(tǒng)參數(shù)輸人及修改,在線數(shù)控指令編程,圖形仿真,數(shù)控加工屏幕顯示,仿形和仿形加工顯示,數(shù)字化處理,在線監(jiān)測診斷等等。進入系統(tǒng)后,對各軸伺服的控制是最重要的,如必須每sms進行一次中斷服務控制,因為CPU中的定時器8253的O通道優(yōu)先級最高,故采用該定時器產(chǎn)生的INT08H中斷源,這樣無論Wind~在執(zhí)行何種任務,對各軸伺服控制始終進行著。對于系統(tǒng)的各種任務,按Windows消息管理機制運行,其中對于機床坐標顯示和在線監(jiān)控診斷又利用我們取代的INT08H中斷服務程序定時發(fā)出執(zhí)行消息,即中斷服務程序每執(zhí)行12次(12*8ms=96ms)發(fā)一次消息給Windows,以啟動機床坐標屏幕動態(tài)顯示,每執(zhí)行125次(125*8ms=1s)發(fā)一次消息給Windows,以啟動在線監(jiān)測和診斷任務,整個系統(tǒng)的關系結構如圖1所示。

    3 中斷服務程序框架與連接要點

      為了最大限度的節(jié)省中斷處理時間,前臺中斷服務控制程序INTSUB.ASM采用80386匯編語言編程,中斷服務程序是整個控制系統(tǒng)的核心部分,該程序的框架如下

      在Windows的內存管理中,各應用程序在內存中是可移動的,為了防止中斷服務子程序在調用時被移出或切換出內存,所以應將它放人動態(tài)連接庫(.DLL)中,并在該動態(tài)連接庫的模塊定義文件(.DLL)中將其定義為固定的(FLXED)。對于主程序模塊MAIN.CPP,系統(tǒng)參數(shù)輸人及修改模塊MAIN.CPP,圖形仿真模塊CRA PH.CPP,數(shù)控加工模塊NCWORHK.CPP,仿形或仿形加工模塊COPYWORK.CPP,數(shù)字化處理模塊DIGTP.CPP,在線監(jiān)測診 斷模塊DIAG-NOSE.CPP等,均采用c++面向對象的編程方法。其中主要利用Windows的各種類庫和資源,方便地生成各窗口和下拉菜單,并建立了自己的類庫,進行函數(shù)和數(shù)據(jù)的封裝。以上程序的連接方法是,將中斷服務控制程序IMSUB.ASM及其模塊 定義文件州飛UB.DEF生成動態(tài)連接庫IN玲UB.DLL,再將該動態(tài)連接庫的輸人庫IN巧U B.llB及以上各功能模塊文件共同編人NCSYS,CPP工程文件中,生成我們的數(shù)控仿形軟件系統(tǒng)。

    4 結束語

      隨著工控機硬件的升級發(fā)展,在軟件方面可利用Windows的多任務、運行于保護模式的強大功能和豐富資源,進行數(shù)控產(chǎn)品的更新?lián)Q代。本文探討了Windows的中斷機制,在此基礎上給出了前后臺式數(shù)控程序的核心部分,為Windows下開發(fā)數(shù)控系統(tǒng)打下了基礎。

    (審核編輯: 智匯胡妮)

    聲明:除特別說明之外,新聞內容及圖片均來自網(wǎng)絡及各大主流媒體。版權歸原作者所有。如認為內容侵權,請聯(lián)系我們刪除。