新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > CNC系統(tǒng)的控制軟件及其工作過程

CNC系統(tǒng)的控制軟件及其工作過程

作者: 時(shí)間:2012-03-17 來源:網(wǎng)絡(luò) 收藏

系統(tǒng)的及其工作過程


是為完成特定(或MNC)系統(tǒng)各項(xiàng)功能所編制的專用軟件,又稱為系統(tǒng)軟件(或系統(tǒng)程序)。因?yàn)?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/CNC">CNC(或MNC)系統(tǒng)的功能設(shè)置與控制方案各不相同,各種系統(tǒng)軟件在結(jié)構(gòu)和規(guī)模上差別很大。系統(tǒng)程序的設(shè)計(jì)與各項(xiàng)功能的實(shí)現(xiàn)及其將來的擴(kuò)展有最直接的關(guān)系,是整個(gè)CNC(或MNC)系統(tǒng)研制工作中關(guān)鍵性的和工作量最大的部分。
前面曾提到,系統(tǒng)軟件一般由輸入、譯碼、數(shù)據(jù)處理(預(yù)計(jì)算)、插補(bǔ)運(yùn)算、速度控制、輸出控制、管理程序及診斷程序等部分構(gòu)成。下面分別加以介紹。
1、輸入
CNC系統(tǒng)中一般通過紙帶閱讀機(jī)、磁帶機(jī)、磁盤及鍵盤輸入零件程序,且其輸入大都采用中斷方式。在系統(tǒng)程序中有相應(yīng)的中斷服務(wù)程序,如紙帶閱讀機(jī)中
斷服務(wù)程序及鍵盤中斷服務(wù)程序等。當(dāng)紙帶閱讀機(jī)讀入一個(gè)字符至接口中時(shí),就向主機(jī)發(fā)出中斷,由中斷服務(wù)程序?qū)⒃撟址腿雰?nèi)存。同樣,每按一個(gè)鍵則表示向主機(jī)申請(qǐng)一次中斷,調(diào)出一次鍵盤服務(wù)程序,對(duì)相應(yīng)的鍵盤命令進(jìn)行處理。
從閱讀機(jī)及鍵盤輸入的零件程序,一般是經(jīng)過緩沖器以后,才進(jìn)入零件程序存儲(chǔ)器的。零件程序存儲(chǔ)器的規(guī)模由系統(tǒng)設(shè)計(jì)員確定。一般有幾K字節(jié),可以存放許多零件程序。例如7360系統(tǒng)的零件程序存儲(chǔ)器為5K,可存放20多個(gè)零件程序。
鍵盤中斷服務(wù)程序負(fù)責(zé)將鍵盤上打入的字符存入MDI緩沖器,按一下鍵就是向主機(jī)申請(qǐng)一次中斷。其框圖如圖3-16所示。


圖3-16 鍵盤中斷服務(wù)程序

2、譯碼
由前面的討論可知,經(jīng)過輸入系統(tǒng)的工作,已將數(shù)據(jù)段送入零件程序存儲(chǔ)器。下一步就是由譯碼程序?qū)⑤斎氲牧慵绦驍?shù)據(jù)段翻譯成本系統(tǒng)能識(shí)別的語言。一個(gè)數(shù)據(jù)段從輸入到傳送至插補(bǔ)工作寄存器需經(jīng)過以下幾個(gè)環(huán)節(jié),如圖3-17所示。

圖3-17 一個(gè)數(shù)據(jù)段經(jīng)歷之過程
從原理和本質(zhì)上說,軟件譯碼與硬件譯碼相同。對(duì)于8單位的紙帶程序,一個(gè)字符占8位。在16位字長(zhǎng)的緩沖器中,一個(gè)字可存放兩個(gè)字符。數(shù)據(jù)段長(zhǎng)的則占的字?jǐn)?shù)多。譯碼程序按次序?qū)⒁粋€(gè)個(gè)字符和相應(yīng)的數(shù)字進(jìn)行比較,若相等了,則說明已輸入了該字符。它就好像在硬件譯碼線路中,一個(gè)代碼輸入時(shí)只打開相應(yīng)的某一個(gè)與門一樣。所不同的是譯碼程序是串行工作的,即一個(gè)一個(gè)地比較,一直到相等時(shí)為止。而硬件譯碼線路則是并行工作的,因而速度較快。以ISO碼為例,M為


,即M為八進(jìn)制的

,S為

,T為

,F(xiàn)為

,……,因此,在判定數(shù)據(jù)段中是否已編入M,S,T或F字時(shí),就可以將輸入的字符和這些八進(jìn)制數(shù)相比較,若相等了,則說明相應(yīng)的字符已輸入,立即設(shè)立相應(yīng)的標(biāo)志。
某一個(gè)字符輸入以后的處理過程包括:
(1) 建立格式標(biāo)志。如果是位格式,則每個(gè)字符所占的格式字的位數(shù)不同。
(2) 根據(jù)輸入字符的不同,確定相應(yīng)的存放數(shù)值的地址。例如,M碼的值存放在1000H,S碼的值存放在1002H,……;有的系統(tǒng)則對(duì)于各專用地址碼(如N,
X,Y,G,M,F(xiàn)等)在存放區(qū)域中都有一個(gè)位移量,該區(qū)域的首址加上地址碼所對(duì)應(yīng)的位移量,就可得到該地址碼所存放的區(qū)域。
(3)確定調(diào)用“數(shù)碼轉(zhuǎn)換程序”的次數(shù)。一個(gè)代碼后總有數(shù)字相接,例如M02,S11,X1000000,……。M碼的值最多為2位,是碼最多為2位(或3位),X碼的值最多為7位等。各個(gè)系統(tǒng)不盡相同。但對(duì)某一個(gè)具體系統(tǒng)而言,有一個(gè)規(guī)定值。如果某一個(gè)代碼,它的值得最多為2位,那么只需調(diào)用數(shù)碼轉(zhuǎn)換程序兩次。所謂數(shù)碼轉(zhuǎn)換,即把輸入的字符(如ASCII碼)轉(zhuǎn)換成二進(jìn)制碼在內(nèi)存中存放。
將不同字符的處理器程序合并起來需要一張信息表。該表中沒一個(gè)字符均有相應(yīng)的一欄。欄中內(nèi)容包括地址偏移量、在格式標(biāo)志字中的位數(shù)及調(diào)用數(shù)碼轉(zhuǎn)換程序的次數(shù)。經(jīng)過一次的算術(shù)和邏輯運(yùn)算即可以完成譯碼工作。在進(jìn)行譯碼的同時(shí),系統(tǒng)要對(duì)零件程序作語法檢查,如輸入的數(shù)字個(gè)數(shù)是否大于允許值,不允許帶負(fù)號(hào)的地址碼是否帶了負(fù)號(hào)等。
譯碼的結(jié)果存放在規(guī)定的存儲(chǔ)區(qū)內(nèi),存放譯碼結(jié)果的地方叫做譯碼結(jié)果存儲(chǔ)器。譯碼結(jié)果存儲(chǔ)器以規(guī)定的次序存放各代碼的值(二進(jìn)制),且包括一個(gè)程序格式標(biāo)志單元,在該格式標(biāo)志單元中某一位為1,即表示指定的代碼(例如F、S、M……)已經(jīng)被編入。為了使用方便,有時(shí)對(duì)G碼、M碼的每一個(gè)值或幾個(gè)值單獨(dú)建立標(biāo)志字。例如,對(duì)關(guān)于插補(bǔ)方式的G00,G01,G02,G03建立一個(gè)標(biāo)志字,該標(biāo)志字為0時(shí)代表已編入了G00,為1時(shí)代表婊入了G01……。

圖3-18 譯碼程序流程圖
3、預(yù)計(jì)算
為了減輕插補(bǔ)工作的負(fù)擔(dān),提高系統(tǒng)的實(shí)時(shí)處理能力,常常在插補(bǔ)運(yùn)算前先進(jìn)行數(shù)據(jù)的預(yù)處理,例如,確定圓弧平面、刀具半徑補(bǔ)償?shù)挠?jì)算等。當(dāng)采用數(shù)字積分法時(shí),可預(yù)先進(jìn)行左移規(guī)格化的處理和積分次數(shù)的計(jì)算等,這樣,可把最直接、最方便形式的數(shù)據(jù)提供給插補(bǔ)運(yùn)算。
數(shù)據(jù)預(yù)處理即預(yù)計(jì)算,通常包括刀具長(zhǎng)度補(bǔ)償、刀具半徑補(bǔ)償計(jì)算、象限及進(jìn)給方向判斷、進(jìn)給速度換算和機(jī)床輔助功能判斷等。在第二章中已對(duì)刀具半徑補(bǔ)償計(jì)算的方法作了介紹。下面僅敘述速度計(jì)算及控制。
進(jìn)給速度的控制方法與系統(tǒng)采用的插補(bǔ)算法有關(guān),也因不同的伺服系統(tǒng)而有所不同。在開環(huán)系統(tǒng)中,常常采用基準(zhǔn)脈沖插補(bǔ)法,其坐標(biāo)軸的運(yùn)動(dòng)速度控制是通過控制插補(bǔ)運(yùn)算的頻率,進(jìn)而控制向步進(jìn)電機(jī)輸出脈沖的頻率來實(shí)現(xiàn)的,速度計(jì)算的方法是根據(jù)編程F值來確定這個(gè)頻率值。通常有程序延時(shí)法和中斷法兩種。
(1) 程序延時(shí)法。程序延時(shí)法又稱為程序計(jì)時(shí)法。這種方法先根據(jù)系統(tǒng)要求的進(jìn)給頻率,計(jì)算出兩次插補(bǔ)運(yùn)算之間的時(shí)間間隔,用CPU執(zhí)行延時(shí)子程序的方法控制兩次插補(bǔ)之間的時(shí)間。改變延時(shí)子程序的循環(huán)次數(shù),即可改變進(jìn)給速度。
(2) 中斷方法。中斷方法或稱為時(shí)鐘中斷法,是指每隔規(guī)定的時(shí)間向CPU發(fā)中斷請(qǐng)求,在中斷服務(wù)程序中進(jìn)行一次插補(bǔ)運(yùn)算并發(fā)出一個(gè)進(jìn)給脈沖。因此,改變中斷請(qǐng)求信號(hào)的頻率,就等于改變了進(jìn)給速度。中斷請(qǐng)求信號(hào)可通過F指令設(shè)定的脈沖信號(hào)產(chǎn)生,也可通過可編程計(jì)數(shù)器/定時(shí)器產(chǎn)生。如采用Z80CTC作定時(shí)器,由程序設(shè)置時(shí)間常數(shù),每定時(shí)到,就向CPU發(fā)中斷請(qǐng)求信號(hào),改變時(shí)間常數(shù)

就可以改變中斷請(qǐng)求脈沖信號(hào)的頻率。所以,進(jìn)給速度計(jì)算與控制的關(guān)鍵就是如何給定CTC的時(shí)間常數(shù)

。
在半閉環(huán)和閉環(huán)系統(tǒng)中,則是采用時(shí)間分割的思想,根據(jù)編程的進(jìn)給速度F值將輪廓曲線分割為采樣周期,即迭代周期的進(jìn)給量——輪廓步長(zhǎng)的方法。速度計(jì)算的任務(wù)是:當(dāng)直線插補(bǔ)時(shí),計(jì)算出各坐標(biāo)軸的采樣周期的步長(zhǎng);當(dāng)插補(bǔ)圓弧時(shí),為插補(bǔ)程序計(jì)算好步長(zhǎng)分配系數(shù)(有時(shí)也稱之為角步距)。另外,在進(jìn)給速度控制中,一般也都有一個(gè)升速、恒速(勻速)和降速的過程,以適應(yīng)伺服系統(tǒng)的工作狀態(tài),保證工作的穩(wěn)定性。此內(nèi)容將在第五章中詳細(xì)介紹。
4、插補(bǔ)計(jì)算
插補(bǔ)計(jì)算是CNC系統(tǒng)中最重要的計(jì)算工作之一。在傳統(tǒng)的NC裝置中,采用硬件電路(插補(bǔ)器)來實(shí)現(xiàn)各種軌跡的插補(bǔ)。為了在軟件系統(tǒng)中計(jì)算所需的插補(bǔ)軌跡,這些數(shù)字電路必須由計(jì)算機(jī)的程序來模擬。利用軟件來模擬硬件電路的問題在于:三軸或三軸以上聯(lián)動(dòng)的系統(tǒng)具有三個(gè)或三個(gè)以上的硬件電路(如每軸一個(gè)數(shù)字積分器),計(jì)算機(jī)是用若干條指令來實(shí)現(xiàn)插補(bǔ)工作的。但是計(jì)算機(jī)執(zhí)行每條指令都須要花費(fèi)一定的時(shí)間,而當(dāng)前有的小型或微型計(jì)算機(jī)的計(jì)算速度難以滿足NC機(jī)床對(duì)進(jìn)給速度和分頻率的要求。因此,在實(shí)際的CNC系統(tǒng)中,常常采用粗、精插補(bǔ)相結(jié)合的方法,即把插補(bǔ)功能氛圍軟件插補(bǔ)和硬件插補(bǔ)兩部分,計(jì)算機(jī)把刀具軌跡分為若干段,而硬件電路再在段的起點(diǎn)和終點(diǎn)之間進(jìn)行數(shù)據(jù)的“密化”,使刀具軌跡在允許的誤差之內(nèi),即軟件實(shí)現(xiàn)初插補(bǔ),硬件實(shí)現(xiàn)精插補(bǔ)。下面以三坐標(biāo)直線插補(bǔ)為例予以說明。
5、輸出
輸出程序

存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理



上一頁 1 2 下一頁

關(guān)鍵詞: CNC 控制軟件

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉