韩国精品一区二区三区无码视频,国产午夜福利视频在线观看,永久黄网站色视频免费无下载,色婷婷av一区二区三区浪潮

【請登錄】【免費注冊】

首頁新聞技術(shù)產(chǎn)品供應(yīng)二手培訓(xùn)展會物流維修求購招商招標(biāo)招聘企業(yè)

技術(shù)

搜索
技術(shù)文章機械知識技術(shù)技巧論文試題維修知識招投標(biāo)知識
您的位置:盤古機械網(wǎng)>技術(shù)文章>機械知識>詳情

基于PC的CNC軟件的總體結(jié)構(gòu)實現(xiàn)方法探討

時間:2008-11-28瀏覽:724次收藏

1 總體結(jié)構(gòu)及實現(xiàn)方法
1.1 軟件的總體結(jié)構(gòu)

  CNC系統(tǒng)常常作為一個獨立的過程控制單元用于工業(yè)自動化生產(chǎn)過程中,因此它的系統(tǒng)軟件必須完成管理和控制兩大功能。CNC系統(tǒng)是由軟件和硬件組成的,硬件為軟件的運行提供支持環(huán)境。由于硬件和軟件在邏輯上是等價的,由硬件完成的工作原則上也可以由軟件完成。因此軟件的結(jié)構(gòu)取決于軟件和硬件的分工,也取決于軟件本身的工作性質(zhì)。根據(jù)目前該系統(tǒng)的設(shè)計,下位機只負(fù)責(zé)位置伺服控制,因此上位機負(fù)責(zé)其余的管理工作和控制工作。
  數(shù)控軟件的總體結(jié)構(gòu)可以設(shè)計成六層,即輸入層,譯碼層,刀補層,協(xié)調(diào)層,監(jiān)控層,設(shè)備驅(qū)動層。輸入層是數(shù)控程序。譯碼層將數(shù)控指令解釋成為數(shù)控系統(tǒng)的內(nèi)部數(shù)據(jù)格式。刀補層進行刀具補償。協(xié)調(diào)層將指令分解到數(shù)控系統(tǒng)的各個功能部件。如數(shù)控指令翻譯、輔助功能設(shè)備控制和運動控制。監(jiān)控層對于系統(tǒng)當(dāng)前的狀態(tài)和當(dāng)前指令的合法性進行檢驗。設(shè)備驅(qū)動層直接實現(xiàn)對系統(tǒng)功能部件的控制。
  在該數(shù)控系統(tǒng)的軟件中,采用了前后臺型的結(jié)構(gòu)形式,前臺程序即實時中斷程序完成全部的實時功能(包括協(xié)調(diào)層、監(jiān)控層、設(shè)備驅(qū)動層),主要是插補功能和系統(tǒng)診斷功能、I/O處理等。后臺程序的主要功能是插補前的準(zhǔn)備功能及調(diào)度管理(包括輸入層、譯碼層、刀補層),具體地講,是數(shù)控程序輸入、譯碼、刀具補償、顯示及上述任務(wù)之間的調(diào)度管理功能。后臺程序是一個循環(huán)運行程序,在運行過程中,前臺程序(中斷服務(wù)程序)不斷插入,共同完成零件加工任務(wù)。而位置伺服的任務(wù)主要由下位機完成。
  在譯碼層和刀補層中,我們采用多任務(wù)調(diào)度的方式協(xié)調(diào)系統(tǒng)的工作,進行優(yōu)化后可以最充分地利用系統(tǒng)的資源。加工程序由上位機進行譯碼、刀具補償、速度處理后,得到刀具中心的插補指令數(shù)據(jù),上位機將這些插補指令數(shù)據(jù)和其它的指令數(shù)據(jù)以固定格式存放于一緩沖區(qū)中,每次中斷發(fā)生時,上位機根據(jù)這些指令數(shù)據(jù)進行相應(yīng)的處理,如果存在插補指令則實時計算出插補數(shù)據(jù),并且送入下位機,下位機從緩沖區(qū)根據(jù)這些數(shù)據(jù)控制相應(yīng)軸的電機動作。當(dāng)上位機中的一幀指令數(shù)據(jù)被讀完后,在插補間隙自動計算出新的插補指令數(shù)據(jù),填入緩沖區(qū)。


數(shù)控軟件總體結(jié)構(gòu)圖

 

    在上位機的內(nèi)存中設(shè)置若干個插補緩沖區(qū),用標(biāo)志字指示當(dāng)前數(shù)據(jù)塊的位置,引導(dǎo)下位機讀取當(dāng)前指令數(shù)據(jù)。當(dāng)下位機進行控制時,上位機不斷進行預(yù)插補計算,直至所有插補緩沖區(qū)填滿為止,當(dāng)接收到下位機的中斷信號后,上位機進行實時的插補計算,并且將數(shù)據(jù)送到下位機。采用這樣方式能夠最充分地利用上位機CPU的時間,真正實現(xiàn)并行實時工作。
1.2 軟件的具體實現(xiàn)方法
1.2.1 軟件的運行環(huán)境和開發(fā)環(huán)境
  采用Microsoft Windows 3.1作為開發(fā)環(huán)境,采用Borland C++ 3.1作為編程語言。
1.2.2 具體實現(xiàn)方法
  啟動畫面的修改
  在Windows啟動時,會出現(xiàn)一幅帶有Microsoft標(biāo)志的啟動畫面,但作為專用數(shù)控系統(tǒng),我們希望能用自己的啟動畫面代替該啟動畫面,顯示具有數(shù)控系統(tǒng)標(biāo)志的啟動畫面。方法如下:
  方法一
  (a) 創(chuàng)建一幅BMP圖,再它壓縮成RLE文件,命名為CNC.RLE;
  (b) 執(zhí)行下面的命令形成新的WIN模塊:COPY/B WINF +VGALOGO.LGO+CNC.RLE
  (c) 重新啟動Windows,可看到新的啟動畫面。
  方法二
  (a) 編制一個DOS下顯示圖形的程序,圖形可以是任意格式(*.bmp,*.gif,*.jpg等均可),選擇自己需要并且喜歡的圖形作為啟動標(biāo)志;
  (b) 編制一個批處理文件,將圖形顯示程序放在前面,將Windows的啟動命令Win/B放在后面(/B選擇項使啟動標(biāo)志不出現(xiàn));
  (c) 用生成的批處理文件代替原來的Windows的啟動命令,運行即可。
  多任務(wù)調(diào)度的實現(xiàn)
  在我們的數(shù)控系統(tǒng)中,為了實現(xiàn)多個任務(wù)之間的協(xié)調(diào)與管理,我們采用非搶先式的多任務(wù)調(diào)度和多緩沖區(qū)的方式實現(xiàn)了對于實時性不強的任務(wù)(數(shù)控程序輸入、譯碼、刀具補償、顯示等)的調(diào)度,其具體實現(xiàn)方法是:
  (a) 規(guī)定每個任務(wù)優(yōu)先級計算方法(優(yōu)先級為非固定的);
  (b) 建立任務(wù)隊列,排列當(dāng)前需要完成的任務(wù),此隊列不考慮優(yōu)先級;
  (c) 在每個任務(wù)周期,計算每個任務(wù)的優(yōu)先級,執(zhí)行優(yōu)先級最高的任務(wù);
  (d) 將每次任務(wù)執(zhí)行的結(jié)果存儲在多個緩沖區(qū)中,然后可以執(zhí)行下一個同類任務(wù)。
  在數(shù)控系統(tǒng)中,顯示的任務(wù)優(yōu)先級始終是最低的,而其它的任務(wù)的優(yōu)先級則是變動的。通過變動各個任務(wù)的優(yōu)先級進行協(xié)調(diào),雖然每次都執(zhí)行的是優(yōu)先級最高的任務(wù),但實際上各個任務(wù)都會得到執(zhí)行,在沒有其它任務(wù)的情況下顯示,也可以得到執(zhí)行。
  多緩沖區(qū)的實現(xiàn)方法
  為了協(xié)調(diào)多個任務(wù)之間的運行,在軟件中建立多個數(shù)據(jù)緩沖區(qū),具體的實現(xiàn)方法是:
  (a) 為多緩沖區(qū)分配內(nèi)存,建立指向當(dāng)前緩沖區(qū)的讀、寫指針,構(gòu)成一個環(huán)形多緩沖區(qū);
  (b) 為每塊內(nèi)存設(shè)置一個標(biāo)志位,作為對各緩沖區(qū)進行操作的判斷依據(jù);
  (c) 每讀一個緩沖區(qū),對該緩沖區(qū)設(shè)置已讀標(biāo)志,當(dāng)前讀指針向前移動一個緩沖區(qū);
  (d) 每寫一個緩沖區(qū),對該緩沖區(qū)設(shè)置已寫標(biāo)志,當(dāng)前寫指針向前移動一個緩沖區(qū);
  (e) 對于當(dāng)前操作未結(jié)束的緩沖區(qū),設(shè)置正在操作標(biāo)志,禁止其它操作。
  采用這種方法,將系統(tǒng)中必須在單個插補周期內(nèi)完成的運算“均化”在多個插補周期內(nèi)完成,有效地利用了CPU的計算時間,提高了系統(tǒng)的工作效率。
  Windows環(huán)境下的中斷的實現(xiàn)
  Windows是一種非獨占式的多任務(wù)系統(tǒng),應(yīng)用程序通過應(yīng)用程序隊列來接收輸入,然后消息循環(huán)從應(yīng)用程序隊列中獲取輸入消息,并把它發(fā)送給相應(yīng)的窗口。在這種工作模式下,實現(xiàn)實時控制較為困難。然而,從另外一個角度看,用戶的鍵盤、鼠標(biāo)及定時器輸入都是硬件中斷,而Windows提供的設(shè)備驅(qū)動程序?qū)嶋H上是中斷服務(wù)程序。由于實際加工對于實時性的要求很高,因此必須采用中斷的方式實現(xiàn)實時性強的任務(wù)。由于中斷可以在任何時刻發(fā)生,而不限于使用設(shè)備的應(yīng)用程序運行期間,所以中斷服務(wù)程序必須在固定代碼段中。在大框架EMS內(nèi)存配置中,只有一種類型的代碼才能保證任何時刻均可用來進行此類中斷服務(wù),這種類型的代碼就是動態(tài)連接庫(DLL)的固定代碼段中的代碼。在保證可靠性的前提下,必須采用DLL來實現(xiàn)中斷。在我們的系統(tǒng)中采用DLL實現(xiàn)了硬件中斷,運行可靠。
  替換系統(tǒng)外殼,成為專用系統(tǒng)
  Windows中Progman.exe是Windows的外殼,是Windows的重要組成部分,但并不是Windows中的必備成分,每個用戶都可以編制自己的外殼程序。由于數(shù)控系統(tǒng)與生產(chǎn)設(shè)備直接連接,用戶常常希望數(shù)控系統(tǒng)是一個專用系統(tǒng),另外,Windows本身是一個多任務(wù)系統(tǒng),同時執(zhí)行多個應(yīng)用程序可能會發(fā)生程序間的沖突,因此,有必要對Windows 進行改造,改造方法很簡單,采用數(shù)控軟件代替Windows的“Shell”——Progman.exe,這樣,Windows啟動后直接運行數(shù)控軟件,在用戶的操作中,感受不到Windows的存在,同時避免了應(yīng)用程序之間的軟硬件的沖突。
2 后語
  以PC為基礎(chǔ)的CNC是NC技術(shù)發(fā)展的必然趨勢,它保證了CNC的基礎(chǔ)軟硬件隨PC技術(shù)的而不斷更新,使NC技術(shù)緊跟PC技術(shù)的發(fā)展,可直接應(yīng)用PC的發(fā)展成果,這對節(jié)省開發(fā)費用、縮短開發(fā)周期具有重要的意義。

熱門文章

業(yè)務(wù)咨詢:932174181   媒體合作:2279387437    24小時服務(wù)熱線:15136468001 盤古機械網(wǎng) - 全面、科學(xué)的機械行業(yè)免費發(fā)布信息網(wǎng)站 Copyright 2017 PGJXO.COM 豫ICP備12019803號

主站蜘蛛池模板: 麻豆亚洲国产成人精品无码区| 久久影院午夜理论片无码| 亚洲a∨国产av综合av| 久久99精品国产免费观观| 久久欧美一区二区三区性牲奴| 日日噜噜夜夜狠狠视频免费| 国产人成无码视频在线观看| 国产人无码a在线西瓜影音| 99热成人精品热久久| 亚洲性夜夜摸人人天天| 国产精品国产三级国产av麻豆| 精品国产乱码久久久久久口爆网站| 熟女人妻一区二区三区免费看| 欧美国产成人精品二区| а天堂8中文最新版在线官网| 亚洲欧美综合区丁香五月小说| 欧美日韩不卡视频合集| 综合天堂av久久久久久久| 成人精品一区二区三区在线观看| 中文字幕日产无码| 久久国产精品福利一区二区三区| 亚洲欧美综合人成在线| 少妇极品熟妇人妻| 强被迫伦姧高潮无码bd电影| 亚洲欧美综合区丁香五月小说| 中文字幕乱码无码人妻系列蜜桃| 中文无码一区二区不卡αv| 亚洲日韩电影久久| 亚洲av无码国产在丝袜线观看| 性无码一区二区三区在线观看| 乱熟女高潮一区二区在线| 少女高清影视在线观看动漫| 亚洲男人的天堂一区二区| 无遮挡又黄又刺激又爽的视频| 欧洲免费无线码在线一区| 性激烈的欧美三级视频| 亚洲欧美日韩国产综合一区二区| 好男人好资源电影在线播放| 久久亚洲精品中文字幕波多野结衣| 亚洲成在人线在线播放无码vr| 国产精品久久久一区二区|