肖 斌
(江鈴汽車股份有限公司,江西南昌 330001)
數控機床在運行加工程序前,首先調用指定的刀具防錯子程序,進行刀具基本幾何尺寸判別,滿足設定條件則繼續向下執行,不符合設定條件程序將一直循環運行,不斷從數控系統刀具列表中讀取刀具信息,并顯示報警信息,提醒操作人員該把刀具基本幾何尺寸輸入錯誤,需操作人員重新核對,直到輸入的刀具基本幾何尺寸正確為止,數控機床才能正常運行加工程序,防錯程序時序如圖1 所示。

圖1 防錯程序時序
西門子840D 數控系統要實現多品種、復雜內容加工,可以編寫獨立的子程序并在主程序中調用該子程序,這樣完全相同的加工內容只需要編寫一個子程序,刀補自動防錯功能就是這樣一個子程序。執行該子程序時,需要進行4 個步驟:①子程序中的變量,能夠從數控系統中,讀取到當前刀具列表中有效的刀具基本幾何尺寸;②在子程序中進行刀具幾何尺寸的比較運算和邏輯運算;③子程序根據運算結果進行有條件程序跳轉;④跳出子程序或顯示錯誤信息,如果存在尺寸錯誤,子程序無限循環判斷,直到運算結果為真,跳出子程序。
下面針對西門子840D 數控系統,介紹編程時所必需的編程指令和系統參數。
(1)從刀庫列表中讀取當前有效的刀具參數,主要通過讀取系統變量的途徑來實現,在西門子數控系統中可以通過系統變量$TC_DP3~$TC_DP11 來表示刀具幾何變量,除了用于物理磨損量($TC_DP12~$TC_DP20)的參數外,每個幾何參數可以分配最多6 個磨損量($TC_SCP1y~$TC_SCP6y),和最多6 個設置值($TC_ECP1y~$TC_ECP6y)。其中通過“$TC_DP3[t,d]”讀取刀具的長度信息,“$TC_DP6[t,d]”讀取刀具的半徑信息。
(2)有條件程序跳轉,在西門子840D 數控系統中,引導有條件判斷的指令通過條件關鍵詞IF,其完整指令有如下3 種形式:①IF(條件表達式)GOTOB 描述跳轉目標;②IF(條件表達式)GOTOF 描述跳轉目標;③IF(條件表達式)GOTO/GOTOC 描述跳轉目標。
如果判斷表達式的邏輯返回值為真,即滿足所限定的條件時,程序將執行跳轉指令,GOTOB 程序向后跳轉至目標標簽,即指往加工程序開始方向跳轉;GOTOF 程序向前跳轉至目標標簽即指往加工程序結束方向跳轉;GOTO 程序帶目標查詢跳轉指令,先往前,然后向后,首先往程序結束方向,然后往程序開始方向;GOTOC 跳轉指令帶目標查找跳轉,如果判斷邏輯返回值為假,即不滿足限定條件,則程序往下繼續執行。
(3)比較運算、邏輯運算。等于為==,大于為>,小于為<,大于或者等于為>=,小于或者等于為<=,與為AND,或為OR,非為NOT,異或為XOR。
在算術表達式中,可以給變量賦值,不同類型的變量賦值不同,當變量名由字母或值由常數構成時,變量名與值之間必須寫“=”,如果變量名是單個字母,并且值僅由一個常數構成,則可以不寫“=”符號,允許使用符號,分割符在變量字母之后。常用的比較函數有:int、real、bool、char 型變量,char 型變量通常比較代碼的值;axis、string、frame 型變量,可以是等于或不等于,也可以在同步動作中,用作運算string 型變量,比較運算結果有true或false。
對于刀具補償值的判斷條件往往不止一項,為了能夠使限制值更加嚴謹和安全,一般需要限定最大值和最小值,所以通常采用運算符OR 來判斷連接條件判斷的表達式。每一個邏輯運算都有優先等級,在運算表達式中,當一個運算表達式的優先級相同時,則運算從左向右執行,當運算表達式的優先級不同時,高一級的運算,要優先去被執行。在算術表達式中,可以使用圓括號來區分表達式中的運算順序,就不用考慮原先普通的優先運算規則。
(4)GETT 指令給刀具名確定T 號,這個指令提供了設置刀具參數必需的T 編號,數控系統中的刀具名稱通常是已知的,如果存在幾個刀具名稱,則數控系統傳回最有可能的刀具T 編號為-1,刀具名稱或第二編號也可以不分配。
(5)顯示錯誤報警信息,可以在PCU 屏幕上方顯示報警信息,顯示的可編程信息指令是“MSG(信息)”,信息模態,在下一個信息排在隊列之前,信息都是有效的,不能顯示的字符,會以二進制或十六進制的常量接收到字符串中,程序結尾通過M00 指令來中斷程序執行。
刀具補償防錯程序示例如下:
(1)外置對刀儀與數控系統直接交換數據。操作人員在外置對刀儀上檢測,測量出刀具的基本尺寸參數直接傳入到數控系統中,但該方案需對刀儀與數控系統進行總線通信,外置對刀儀需進行設備改造,需使用中間存儲單元當做媒介,一般采用DNC 作為中間存儲單元,因此該方案改造投資成本大。
(2)物理性防錯。在數控機床的夾具上找一個固定位置,加一個對刀樣塊,操作人員每次更換完刀具后,將刀調到主軸上,然后走程序將刀具開到到對刀樣塊位置,操作人員用塞尺測量刀具與對刀樣塊中間的間隙,從而計算出刀具的基本尺寸是否符合要求,該方案同樣存在主軸或夾具被撞的風險,如果輸入錯誤的刀具尺寸,主軸上的刀具將直接撞擊對刀樣塊或夾具,造成設備故障、主軸精度降低等。
(3)數控設備內置對刀儀與外置對刀儀進行數據比對。操作人員首先利用外置對刀儀檢測刀具,測量出刀具的尺寸參數,然后將尺寸參數輸入到數控系統刀具列表中,數控系統給機床發指令,激活機床內置對刀儀,對主軸上的刀具進行二次校驗,測量參數反饋給數控系統,由數控系統程序對兩個尺寸參數進行數據比對,如果兩個尺寸參數在標準公差范圍內,加工程序往下繼續執行,否則報錯,加工程序停止,該方案同樣需要投入高昂的數控機床改造費用,經濟效益低。
通過對西門子840D 數控系統刀具防錯子程序的開發應用,降低了生產現場操作人員壓力,減少刀具尺寸參數輸入錯誤造成的工件尺寸超差、工件報廢,間接提高產品質量,避免人為錯誤的輸入刀具參數造成的撞機床事故,提高生產效率,給工廠創造更大經濟效益。