CNC系統的控制軟件及其工作過程
控制軟件是為完成特定CNC(或MNC)系統各項功能所編制的專用軟件,又稱為系統軟件(或系統程序)。因為CNC(或MNC)系統的功能設置與控制方案各不相同,各種系統軟件在結構和規模上差別很大。系統程序的設計與各項功能的實現及其將來的擴展有最直接的關系,是整個CNC(或MNC)系統研制工作中關鍵性的和工作量最大的部分。
前面曾提到,系統軟件一般由輸入、譯碼、數據處理(預計算)、插補運算、速度控制、輸出控制、管理程序及診斷程序等部分構成。下面分別加以介紹。
1、輸入
CNC系統中一般通過紙帶閱讀機、磁帶機、磁盤及鍵盤輸入零件程序,且其輸入大都采用中斷方式。在系統程序中有相應的中斷服務程序,如紙帶閱讀機中
斷服務程序及鍵盤中斷服務程序等。當紙帶閱讀機讀入一個字符至接口中時,就向主機發出中斷,由中斷服務程序將該字符送入內存。同樣,每按一個鍵則表示向主機申請一次中斷,調出一次鍵盤服務程序,對相應的鍵盤命令進行處理。
從閱讀機及鍵盤輸入的零件程序,一般是經過緩沖器以后,才進入零件程序存儲器的。零件程序存儲器的規模由系統設計員確定。一般有幾K字節,可以存放許多零件程序。例如7360系統的零件程序存儲器為5K,可存放20多個零件程序。
鍵盤中斷服務程序負責將鍵盤上打入的字符存入MDI緩沖器,按一下鍵就是向主機申請一次中斷。其框圖如圖3-16所示。
?
????????
???????????????????????????? 圖3-16 鍵盤中斷服務程序
2、譯碼
由前面的討論可知,經過輸入系統的工作,已將數據段送入零件程序存儲器。下一步就是由譯碼程序將輸入的零件程序數據段翻譯成本系統能識別的語言。一個數據段從輸入到傳送至插補工作寄存器需經過以下幾個環節,如圖3-17所示。
???
??????????????????????????????? 圖3-17 一個數據段經歷之過程
??? 從原理和本質上說,軟件譯碼與硬件譯碼相同。對于8單位的紙帶程序,一個字符占8位。在16位字長的緩沖器中,一個字可存放兩個字符。數據段長的則占的字數多。譯碼程序按次序將一個個字符和相應的數字進行比較,若相等了,則說明已輸入了該字符。它就好像在硬件譯碼線路中,一個代碼輸入時只打開相應的某一個與門一樣。所不同的是譯碼程序是串行工作的,即一個一個地比較,一直到相等時為止。而硬件譯碼線路則是并行工作的,因而速度較快。以ISO碼為例,M為,即M為八進制的
?,S為
?,T為
?,F為
?,……,因此,在判定數據段中是否已編入M,S,T或F字時,就可以將輸入的字符和這些八進制數相比較,若相等了,則說明相應的字符已輸入,立即設立相應的標志。
某一個字符輸入以后的處理過程包括:
(1) 建立格式標志。如果是位格式,則每個字符所占的格式字的位數不同。
(2) 根據輸入字符的不同,確定相應的存放數值的地址。例如,M碼的值存放在1000H,S碼的值存放在1002H,……;有的系統則對于各專用地址碼(如N,
X,Y,G,M,F等)在存放區域中都有一個位移量,該區域的首址加上地址碼所對應的位移量,就可得到該地址碼所存放的區域。
(3)確定調用“數碼轉換程序”的次數。一個代碼后總有數字相接,例如M02,S11,X1000000,……。M碼的值最多為2位,是碼最多為2位(或3位),X碼的值最多為7位等。各個系統不盡相同。但對某一個具體系統而言,有一個規定值。如果某一個代碼,它的值得最多為2位,那么只需調用數碼轉換程序兩次。所謂數碼轉換,即把輸入的字符(如ASCII碼)轉換成二進制碼在內存中存放。
將不同字符的處理器程序合并起來需要一張信息表。該表中沒一個字符均有相應的一欄。欄中內容包括地址偏移量、在格式標志字中的位數及調用數碼轉換程序的次數。經過一次的算術和邏輯運算即可以完成譯碼工作。在進行譯碼的同時,系統要對零件程序作語法檢查,如輸入的數字個數是否大于允許值,不允許帶負號的地址碼是否帶了負號等。
譯碼的結果存放在規定的存儲區內,存放譯碼結果的地方叫做譯碼結果存儲器。譯碼結果存儲器以規定的次序存放各代碼的值(二進制),且包括一個程序格式標志單元,在該格式標志單元中某一位為1,即表示指定的代碼(例如F、S、M……)已經被編入。為了使用方便,有時對G碼、M碼的每一個值或幾個值單獨建立標志字。例如,對關于插補方式的G00,G01,G02,G03建立一個標志字,該標志字為0時代表已編入了G00,為1時代表婊入了G01……。
圖3-18 譯碼程序流程圖
3、預計算
為了減輕插補工作的負擔,提高系統的實時處理能力,常常在插補運算前先進行數據的預處理,例如,確定圓弧平面、刀具半徑補償的計算等。當采用數字積分法時,可預先進行左移規格化的處理和積分次數的計算等,這樣,可把最直接、最方便形式的數據提供給插補運算。
數據預處理即預計算,通常包括刀具長度補償、刀具半徑補償計算、象限及進給方向判斷、進給速度換算和機床輔助功能判斷等。在第二章中已對刀具半徑補償計算的方法作了介紹。下面僅敘述速度計算及控制。
進給速度的控制方法與系統采用的插補算法有關,也因不同的伺服系統而有所不同。在開環系統中,常常采用基準脈沖插補法,其坐標軸的運動速度控制是通過控制插補運算的頻率,進而控制向步進電機輸出脈沖的頻率來實現的,速度計算的方法是根據編程F值來確定這個頻率值。通常有程序延時法和中斷法兩種。
(1) 程序延時法。程序延時法又稱為程序計時法。這種方法先根據系統要求的進給頻率,計算出兩次插補運算之間的時間間隔,用CPU執行延時子程序的方法控制兩次插補之間的時間。改變延時子程序的循環次數,即可改變進給速度。
(2) 中斷方法。中斷方法或稱為時鐘中斷法,是指每隔規定的時間向CPU發中斷請求,在中斷服務程序中進行一次插補運算并發出一個進給脈沖。因此,改變中斷請求信號的頻率,就等于改變了進給速度。中斷請求信號可通過F指令設定的脈沖信號產生,也可通過可編程計數器/定時器產生。如采用Z80CTC作定時器,由程序設置時間常數,每定時到,就向CPU發中斷請求信號,改變時間常數
?
就可以改變中斷請求脈沖信號的頻率。所以,進給速度計算與控制的關鍵就是如何給定CTC的時間常數。
在半閉環和閉環系統中,則是采用時間分割的思想,根據編程的進給速度F值將輪廓曲線分割為采樣周期,即迭代周期的進給量——輪廓步長的方法。速度計算的任務是:當直線插補時,計算出各坐標軸的采樣周期的步長;當插補圓弧時,為插補程序計算好步長分配系數(有時也稱之為角步距)。另外,在進給速度控制中,一般也都有一個升速、恒速(勻速)和降速的過程,以適應伺服系統的工作狀態,保證工作的穩定性。此內容將在第五章中詳細介紹。
4、插補計算
插補計算是CNC系統中最重要的計算工作之一。在傳統的NC裝置中,采用硬件電路(插補器)來實現各種軌跡的插補。為了在軟件系統中計算所需的插補軌跡,這些數字電路必須由計算機的程序來模擬。利用軟件來模擬硬件電路的問題在于:三軸或三軸以上聯動的系統具有三個或三個以上的硬件電路(如每軸一個數字積分器),計算機是用若干條指令來實現插補工作的。但是計算機執行每條指令都須要花費一定的時間,而當前有的小型或微型計算機的計算速度難以滿足NC機床對進給速度和分頻率的要求。因此,在實際的CNC系統中,常常采用粗、精插補相結合的方法,即把插補功能氛圍軟件插補和硬件插補兩部分,計算機控制軟件把刀具軌跡分為若干段,而硬件電路再在段的起點和終點之間進行數據的“密化”,使刀具軌跡在允許的誤差之內,即軟件實現初插補,硬件實現精插補。下面以三坐標直線插補為例予以說明。
5、輸出
輸出程序的功能是:
(1) 進行伺服控制。如上所述。
(2) 當進給脈沖改變方向時,要進行反向間隙補償處理。若某一軸由正向變成負向運動,則在反向前輸出Q個正向脈沖;反之,若由負向變成正向運動,則在反向前輸出Q個負向脈沖(Q為反向間隙值,可由程序預置)。
(3) 進行絲杠螺距補償。當系統具有絕對零點時,軟件可顯示刀具在任意位置上的絕對坐標值。若預先對機床各點精度進行測量,作出其誤差曲線,隨后將各點修正量制成表格存入數控系統的存儲器中。這樣,數控系統在運行過程中就可對各點坐標位置自動進行補償,從而提高了機床的精度。
(4) M,S,T等輔助功能的輸出。在某些程序段中須要啟動機床主軸、改變主軸速度、換刀等,因此要輸出M,S,T代碼,這些代碼大多數是開、關控制,由機床強電執行。但哪些輔助功能是在插補輸出之后才執行,哪些輔助功能必須在插補輸出前執行,需要在軟件設計前預先確認。
6、管理與診斷軟件
一般CNC(MNC)系統中的管理軟件只涉及兩項,即CPU管理和外部設備管理。由于數控機床的加工是以單個零件為對象的,一個零件程序可以分成若干程序段。每個程序段的執行又分成數據分析、運算、走刀控制、其他動作的控制等步驟。通常情況下,這些加工步驟之間多是順序關系,因此實際的過程就是這些預定步驟的反復執行。在實際系統中,通常多是采用一個主程序將整個加工過程串起來,主控程序對輸入的數據分析判斷后,轉入相應的子程序處理,處理完畢后再返回對數據的分析、判斷、運算……。在主控程序空閑時(如延時),可以安排CPU執行預防性診斷程序,或對尚未執行程序段的輸入數據進行預處理等。
在CNC系統中,中斷處理部分是重點,工作量也比較大。因為大部分實時性較強的控制步驟如插補運算、速度控制、故障處理等都要由中斷處理來完成。有的機床將行程超程和報警、閱讀機請求、插補等分為多級中斷,根據其優先級決定響應的次序。有的機床則只設一級中斷,只是在中斷請求同時存在時,才用硬件排隊或軟件詢問的方法來定一個順序。
對于單CPU數控系統而言,常見的軟件結構有兩種,即前后臺型和中斷型。
在前后臺型結構的CNC系統中,整個控制軟件分為前臺程序和后臺程序。前臺程序是一個實時中斷服務程序,它幾乎承擔了全部的實時功能,如插補、位置控制、機床相關邏輯和監控等。后臺程序是指實現輸入、譯碼、數據處理及管理功能的程序,亦稱背景程序,如圖3-25所示。背景程序是一個循環運行程序,
在其運行過程中,前臺實時中斷程序不斷插入,與背景程序相配合,共同完成零件的加工任務。
圖3-25 前后臺結構
中斷型結構的特點是,除了初始化程序之外,系統軟件中所有的各種任務模塊分別安排在不同級別的中斷服務程序中。整個軟件就是一個大的中斷系統。其管理的功能主要通過各級中斷程序之間的相互通信來解決。
能夠方便地設置各種診斷程序也是CNC和MNC系統的特點之一。有了較完善
的診斷程序可以防止故障的發生或擴大。在故障出現后可以迅速查明故障的類型和部位,減少故障停機時間。各種CNC(MNC)系統設置診斷程序的情況差別也很大。診斷程序可以包括在系統運行過程中進行檢查和診斷;也可以作為服務性程序,在系統運行前或故障停機后進行診斷,查找故障的部位。國外一些公司的CNC系統還可以進行通信(海外)診斷,由通信診斷中心指示系統或操作者進行某些試運行,以查找故障隱患或故障部位。
(1) 運行中的診斷。在普通NC系統中已包含有在運行中進行診斷的萌芽,如紙帶輸入時的橫向與縱向(水平與垂直)奇偶校驗,同步孔丟失校驗,非法指令碼檢查等。此外還有超程報警等措施。在CNC和MNC系統中做這些工作更加方便。而且還可以用打字機指示各種項目診斷的結果和用統一編號表示的故障部位。一般來說,運行中進行診斷的程序比較零散,常包含在主控程序及中斷處理程序分支中。常見的手段有:
① 用代碼和檢查內存:此法只能對程序中那些不變區域進行檢查,而且必須是在恢復系統程序的初態后進行的。
② 格式檢查:此法一般用在紙帶輸入時,對零件加工源程序進行檢查,包括奇偶校驗、非法指令代碼(本系統中不使用的指令代碼)、數據超限等。
③ 雙向傳送數據校驗:此法常用在間接型CNC系統或群控系統中。手動數據輸入也可用此法校驗。
④ 清單校驗:即利用所配備的打印設備打印程序清單及某些中間數據,綜合性地診斷主機、接口及軟件的故障。
(2) 停機診斷。停機診斷是指在系統開始運行前,或發生故障(包括故障先兆)系統停止運行后,利用計算機進行診斷。它一般是用軟件控制進行階段性的運行,如傳送數據或模擬進行單項的控制動作。逐項檢查硬件線路的功能,有選擇地查找故障部位。這種診斷程序可以與運行用的系統程序分開,在須要進行診斷時再輸入計算機。必要時,還可沖掉部分系統程序而裝入內存。
(3) 通信診斷。通信診斷是由用戶經電話線路與通信診斷中心聯系,由該中心的計算機給用戶的計算機發送診斷程序,程序指示CNC系統進行某種運行,同時收集數據,分析系統的狀態。將系統狀態與存儲的應有工作狀態以至某些極限參數作比較,以確定系統的工作狀態是否正常,故障的部位及故障的趨勢。可見,通信診斷既可用作診斷異常狀態的工具,又可用作預防性檢修的手段。因為用戶與通信診斷中心之間可使用跨洋電話系統,故又被稱為海外診斷。
評論
查看更多