■山推工程機械股份有限公司(山東濟寧 272100)崔克誠
在工廠的臥式加工中心中,為了增強機床的行程一般z軸方向會有一根附加軸。這個附加軸為主軸鏜桿取名w軸。也有一些機床為滑枕和鏜桿,不同機床廠家命名一般不同。有的以滑枕為w軸,有的以鏜桿為w軸。
下面以西門子840D系統的臥式加工中心來進行分析。在平時的程序編制中,在w軸不在其零點位置的時候,我們要人為的在z軸的坐標上加上或減去一個w軸的長度。這樣在程序修改時非常麻煩。在編制程序前要了解刀具長度和工件所在的位置以知道w軸要伸出多長。
還有一些場合適合用w軸進給,但是在工作的時候刀具的長度永遠是補償給z軸的。這時候就需要暫時的把w軸交換一下成為z軸。有一些技術人員喜歡修改PLC或者修改機床參數,直接把軸命名為z軸。但是這種方法一般比較麻煩。
下面就介紹一下作者自己寫的w軸自動補償程序,此程序也有交換w軸的功能。代碼如下:



首先前面的變量和創作時間和作者不做介紹。STOPRE是為了在補償程序運行前了解機床中正在有效的補償數據。以方便補償后如果補償數值不正確進行對比。
為了能正確的讀取各個軸的正確數據讀取數據前一定要取消一下軸的交換。
同樣為了使用方便,我們給程序的補償方式設置一個默認的補償方式,即如果用戶不填補償方式默認補償w軸。
從上面的程序上能看出這個只有兩種補償方式,一個是補償w軸給z軸,用z軸進給;一個是補償z軸給w軸,用w軸進給。但實際往往要考慮好多因素使程序很復雜。作者這里只把原理的程序展示一下,講解一下原理。需要注意的是這個程序直接復制到機床上就可以用,能滿足90%的用戶。
首先我們需要讀取在ien坐標系中的z軸和w軸的坐標來確定需要補償的量。如果我們選擇的是補償w軸,那么我們只需要在坐標系中把z軸向w軸的反方向偏移一個量w軸坐標量就可以。那么我們到底要在哪個坐標系中偏移呢?
最初作者想到的是直接用trans偏移。因為西門子中牽涉的坐標系較多,作者當時只了解西門子中的三層坐標系。而trans是最簡單最容易理解的。但是他有一個致命的缺點,就是直接影響前后的程序功能。因為在前面使用的trans在此處會直接取消。而后面只能用附加的atrans或amirror或arot等。基于這些原因作者只好放棄尋找其他的坐標系。
后來作者從西門子的標準循環中以及西門子的系統變量表中找到一個西門子的循環坐標系。即$P_CYCFRAME這個坐標系,有著復位后消失的優點。即復位后或者程序結束后坐標系內的值全部重置為0。不會影響下一步或者其他程序的使用。但是后來作者發現這個坐標系是在trans后面的一個坐標系。如果在前面用他進行了補償后,那么后面進行坐標系的鏡像旋轉都是基于g54~g55等坐標系的使鏡像旋轉后的實際坐標系錯誤。作者也只好放棄。
最后作者確定用基準坐標系的程序坐標系即$P_BFRAME。優點就是復位后會復原為面板設置的數據。再次偏移時不受上一次偏移的影響。而且因為其他g54~g55前幾層的坐標系,所以后面的旋轉鏡像都是基于后面的總框架,補償前后都不會對程序鏡像或旋轉后的總坐標系有影響。但是因為可以在面板中修改,所以使用的時候要把原來面板設置的數據級聯到一起,以保證補償后的坐標系正確。
如果用戶使用的是補償z軸給w軸進給。那么我們只需要把w軸的零點向當前z軸在ien中坐標的反方向偏移一下即可。然后我們把w軸交換為第三幾何軸,即在g17中為z軸。那么原來的z軸就成為了z11,w軸就成為了z軸在程序中直接使用即可。
也為了防止使用者在補償方式上寫入錯誤的方式,后面設置了保護而不是直接結束程序。
這樣在程序編制的時候暫時不需要考慮w軸需要伸出的長度。在程序使用的再設置長度直接用程序補償,省去修改程序的麻煩。下面展示一個使用的程序小段。注意bc為本程序名稱。

下面再展示一個使用交換軸的程序。一般使用w軸做進給軸都是w軸需要行程較長的場合。下面是加工兩個同軸的孔,并且第一個孔底距離第二個孔端距離較大。
