王政皓,楊召彬,喬磊,王宏甲,趙慶志
(山東理工大學 機械工程學院,山東 淄博 255049)
隨著我國科學技術的不斷發展,經濟型數控系統在一定程度上得到很快發展,為加工生產提供了更好的技術支持[1-3]。經濟型數控系統通過與計算機的完美結合,使用價值進一步得到提升,目前經濟型數控機床因為其性能好、價格低廉等優點,已經成為我國制造業中必不可少的重要部分。雖然經濟型數控系統因為其自身優勢而被廣泛使用,但其插補功能存在一定的不足[4],無法滿足部分較精細工件的加工生產要求。因此,本文進行圓錐曲線數控系統的設計與研究,以期在一定程度上彌補傳統經濟型數控系統插補能力的不足,提高傳統經濟型數控系統的性能。
為實現圓錐曲線插補,提高經濟型數控系統的性能,本文設計的數控系統主要采用了差分插補原理、多線程以及OpenGL等技術。整個數控系統的軟件模塊如圖1所示。數控系統主要由輸入模塊、輸出模塊、運動控制模塊以及輔助模塊4部分組成,實現了NC代碼的譯碼、加工仿真、插補加工以及加工信息的顯示等功能。同時,本文采用PCI-750數據采集卡作為控制系統的硬件核心,實現圓錐曲線數控系統的動力系統與伺服系統的控制。

圖1 數控系統的軟件模塊Fig.1 The functional framework of the numerical control system
該數控系統設計結構嚴謹、穩定性強、功能齊全、實現簡單,結合差分插補原理能夠實現圓錐曲線的直接插補。
本文的圓錐曲線數控系統插補模塊程序以差分插補原理為核心編寫。從相關文獻[5-7]中分析可得,差分插補原理是從原點開始,依據函數遞增的趨勢進行推導的。在插補的過程中,為滿足該插補方法的理論依據,曲線方程需經坐標系平移和變向化為可分離變量的正高次曲線,坐標系劃分為定義用絕對坐標系、相對坐標系和加工用絕對坐標系,具體各種坐標系的含義和變換方法見文獻 [8]。
差分插補原理能夠實現對變量可分離的正高次曲線的直接插補,并且插補運算誤差不超過半個脈沖當量。差分插補原理的每次進給中都要包含脈沖密度高的基準軸,并判斷非基準軸的脈沖是否存在,以此為基礎,系統從平面直線插補擴展到空間多維線性插補[9-10]。
例如:用絕對坐標系定義的二次多項式方程Q(x)=P(y),經過坐標系平移和變向化為相對坐標系中的正二次曲線方程
a2x2+a1x=b2y2+b1y
正二次曲線方程的差分插補基本原理如圖2所示。其中差分插補代碼為:
jx1,jx2,jy1,jy2,F,G,L
jx1:x的一階差分;jx2:x的二階差分;
jy1:y的一階差分;jy2:y的二階差分;
F:插補偏差;
G:計數方向;
L:加工用的絕對坐標象限。

圖2 正二次曲線差分插補基本原理圖Fig.2The basic principle of positive quadratic differential interpolation
如何完成多任務的實時控制是開發數控系統必須解決的關鍵問題[11-12]。本文的圓錐曲線數控系統在VC++6.0環境下編寫,其中的譯碼解釋模塊、插補運動模塊、位置控制模塊等重要模塊均采用了多線程技術。多線程技術在本文數控系統中的運用,實現了各個任務之間的合理調度,使各個單元模塊能夠迅速切換,并且多個單元模塊可以同時運行。運用多線程技術,提高了PC機的CPU使用效率,不會出現因某個任務程序長時間占用CPU時間和內存導致數控系統崩潰的情況。
本文數控系統創建的線程中有用戶界面線程和工作線程兩種類型。工作線程實現譯碼解釋任務和插補運算任務等比較耗時的后臺任務,用戶界面線程實現數控系統中的加工信息顯示任務,用來顯示當前加工的代碼和當前加工工件的坐標等。
以插補線程為例,由于插補算法是數控系統中最復雜的一部分,因此創建工作線程,并對插補模塊的線程級別進行了合理分配,以保證數控系統插補功能對于實時性和并行性的要求。線程的優先級分配機理可參考文獻[12],數控系統的插補運算任務、譯碼解釋任務是強實時性任務,優先級最高,故將其設置為31級;I/O監控任務設定為15級,加工信息顯示任務設定為14級。線程設置如圖3所示。插補模塊工作線程的創建過程為:首先在MFC中編寫創建線程代碼,線程的聲明函數為UINT Interpolation (LPVOID lpParam),然后編寫工作線程代碼pThread = AfxBeginThread(Interpolation ,&Info) ,最后寫入差分插補算法。

圖3 數控系統各線程優先級別Fig. 3 The priority of each thread of the numerical control system
根據PCI-1750數據采集卡的特點,在程序中定義了兩個unsigned char類型的變量,每個變量占PC機上的地址內存都是一個字節,分別作為進給軸步進電機驅動器和主軸永磁無刷直流電機驅動器的控制信號。在數控系統的運動控制模塊中,實現各軸步進電機伺服運動控制是最主要的內容。
一個字節共八位數字,用其中的兩位分別作為控制一個步進電機驅動器的方向信號位和脈沖信號位,在程序中定義1為正向信號,0為反向信號。每發送一次11、10信號為一次正向脈沖信號,每發送一次01、00信號為一次反向脈沖信號,收到特定的脈沖信號后,步進電機在相應的方向轉動一個步距角,相應的進給伺服系統完成一個脈沖當量。
由于數控系統需要發送3個進給軸的脈沖信號,結合不同的轉向,共8種不同的聯動情況,如果每個方向的運動都需要數控系統做一次判斷,會使程序極其復雜。所以本文的數控系統程序中將每種運動控制信號都與101010B進行與運算,運算后每個軸的方向位不變,脈沖位置為零,這樣就實現了一個脈沖信號的高低電平變化,再運用研華I/O輸出函數AdxDioWriteDoPorts將脈沖信號發送出去,實現相應的運動控制。
本文采用PCI-1750數據采集卡發送信號來控制電機驅動器實現運動。PCI-1750數據采集卡是一款功能強大的PCI總線半長卡,能提供16個隔離數字量數字通道,16個隔離數字量輸出通道即一個帶輸入信號的隔離計數器/定時器。由于帶有2 500 VDC隔離保護及支持干接點,所以PCI-1750數據采集卡非常適合需要高電壓保護的工業應用場所。PCI-1750數據采集卡上每個I/O通道對應微機I/O端口的一位。這使得對PCI-1750編程非常方便。該卡還提供了一個計數器或定時器中斷,以及兩個數字量輸入中斷,用戶可以方便地用軟件對它們進行配置。控制系統硬件設計如圖4所示。

圖4 控制系統的硬件設計Fig.4 Control system hardware design
圓錐曲線微型數控雕刻機的驅動箱由3個步進電機驅動器、1個永磁無刷直流電機驅動器及1個直流電源組成,3個步進電機驅動器分別控制XYZ軸電機,永磁無刷直流電機驅動器控制主軸電機。
根據PCI-1750數據采集卡的端口特點,設計了用兩組信號輸出端口分別發送數控系統中進給軸的控制信號和主軸的控制信號。其中一組端口發送數控系統中的數字量脈沖信號給步進電機驅動器,可以實現對步進電機的運動控制;而主軸永磁無刷直流電機的運動控制相對復雜一些,需要PCI-1750數據采集卡的另一組端口給加在主軸驅動器上的中間繼電器發送持續信號,通過控制永磁無刷直流電機驅動器上CH1、CH2、CH3相對于COM口的通斷,實現對永磁無刷直流電機的多檔速度控制,速度從0~3 500 r/min,以每500 r/min遞增。圖5為微型數控雕刻機控制箱內的BL-2203C無刷直流電機驅動器的接線圖,R/S為電機運行/停止控制端子,DIR為電機正反轉控制端子。

圖5 無刷直流電機驅動器接線圖Fig.5 Wiring diagram of brushless DC motor driver
PCI-1750數據采集卡與進給軸步進電機驅動器和中間繼電器的接口電路設計如圖6所示。進給伺服系統的脈沖當量為0.002 5 mm,在程序內部需要把坐標變化量與脈沖當量做一定處理后發送脈沖信號。3個可供12 V電壓的中間繼電器的負載端分別接在PCI-1750數據采集卡的3個接口上,通過判斷PC端發送的持續信號來調節自身高低電平,實現電路通斷功能。

圖6 PCI-1750數據采集卡接線圖Fig.6 Wiring diagram of PCI-1750 data acquisition card
將要加工的材料(本次實驗所用材料為肥皂)固定在雕刻機上,打開圓錐曲線數控系統界面,數控系統中各種圓錐曲線的代碼及加工仿真的過程如圖7所示。

圖7 數控系統界面Fig.7 CNC system interface
通過手動功能完成加工前的對刀工作,對刀完成后載入G代碼文件,進行仿真與加工。加工完成的作品如圖8和圖9所示。

圖8 圓錐曲線加工作品Fig.8 Works by conic curve processing

圖9 線性插補加工作品Fig.9 Works by linear interpolation processing
圖8為數控系統進行各種圓錐曲線的插補完成后的作品,圖8中曲線分別為順時針橢圓、逆時針圓、順時針拋物線、逆時針雙曲線、順時針雙曲線、逆時針拋物線、順時針圓和逆時針橢圓。圖9為數控系統空間線性插補完成后的圖案,實驗表明,數控系統各項命令的執行都快速而精確,作品的加工精度較傳統數控系統的直線插補擬合有了很大提升。
本文主要以教學、實驗為主,運用多線程技術設計數控系統,與傳統的經濟型數控系統相比,擴展了插補類型,實現了各種圓錐曲線的直接插補。該數控系統的研制為后期進行圓錐曲線擬合加工奠定了良好的基礎。