張艷婷,沈曉紅
ZHANG Yan-ting,SHEN Xiao-hong
(北京工商大學 材料與機械工程學院,北京 100048)
開放式數控系統開發周期短、功能強大、靈活以及升級方便,已經成為數控系統的發展趨勢,它能夠有效解決傳統數控系統結構封閉、系統柔性差、網絡功能欠缺等問題,同時能更好地適應現代制造業網絡化、集成化的發展趨勢[1,2]。
IEEE( 國際電氣和電子工程師協會) 定義開放式數控系統為“符合系統規范的應用,可以運行在多個銷售商的不同平臺上,可以與其他的系統應用互操作,并且具有一致風格的用戶界面”。它具有開放性、可擴展性、互換性、可移植性、互操作性、可縮放性和即插即用等特性[3]。
目前有許多對開放式數控系統的研究,但在運動控制器方面,主要還是集中在基于PC總線的PMAC運動控制卡和固高GT系列,Soft型的固高GO系列以及嵌入式運動控制器PA8000NT等,核心部分運動控制和伺服控制仍是封閉的。軟件芯片的使用只是簡單的程序源代碼的重用,這種移植只能是同一種編程語言下的移植,是一種極為有限條件下的移植,SERCOS總線技術參數眾多,大多使用默認值,不適應高速高精度加工,另外價格也比較昂貴[4,5]。
本文提出了一種以Windows為平臺,Visual C++6.0為編程語言,借助ACR9000運動控制器提供的基本指令和動態鏈接庫函數,開發界面友好、操作方便的開放式數控系統軟件平臺,能夠結合硬件平臺形成數控系統,并將這一系統初步運行于我院自主設計的超聲數控加工機床,實現了數控系統的基本功能。
Visual C ++ 6.0具有友好的可視化界面和強大的函數庫,采用此編程工具可以有效地縮短開發周期[6,7]。本系統主要利用了單文檔-多視圖的結構和多線程編程技術。
系統設計思路如圖1所示。首先按照模塊化設計理念,規劃開放式數控系統體系結構,將CNC系統中一些功能獨立、內聚力強、相互組合較松散的功能模塊抽象出來,找出其中的基本功能模塊;再對基本功能模塊進行細化,找出其中包含的功能相對獨立的子模塊,并將各子功能模塊和無法細分的功能模塊作為整個系統的功能單元;最后對系統功能單元的屬性和方法進行抽象;其中屬性是該功能單元所要處理的信息,方法是該功能單元處理這些信息的行為。抽象出屬性和方法之后,利用面向對象技術對各個功能單元進行封裝,以形成類;然后,根據具體開發要求,選擇所需的類,并實例化出對象;按照對象間的關系模型,建立具體的數控系統。如果在以后的應用中用戶還有新的應用需求,可以構造出新的功能單元,并將新類添加到原有系統的對象間的關系模型中,從而便捷地建立起新的應用系統,實現系統的開放性和可重構性。

圖1 數控系統設計原理圖
界面主要由代碼輸入區,顯示區,控制區,手動控制區四部分組成。而代碼輸入區又有插入,修改,刪除和運行按鈕。控制區有通訊模塊,仿真模塊,插補編譯,糾錯模塊等。顯示區可以顯示機床的開關狀態,冷卻液開關狀態,主軸的開關狀態,當前的轉速以及當前的坐標位置。手動控制區主要是軸0、軸1、軸2三軸單獨JOG運動。主界面如圖2所示。

圖2 主界面圖
ARC9000運動控制器是美國Parker公司推出的最新Acroloop系列多軸獨立式控制器,有150MFLOPS,32位浮點DSP;最多8軸伺服或步進控制;10/100M以太網或USB2.0高速通信;RS-232/RS-485通信接口。便利的接口型式和高性能的通訊能力使ACR9000具有很高的靈活性,可用于不同的高速高精度的自動化機器裝備上[8]。
控制器提供了ComACRServer.dll動態鏈接庫,庫中的200多個函數涵蓋了ACR9000運動控制器的全部主要功能。通信服務提供兩層虛擬層面:第一種把物理通信層面集合到函數性API,包含和四種接口連接在一起的屬性和方法。第二種去除了對特殊語言的依賴性,通過提供一個COM組件,只要基于windows編程環境就能使用這個API函數,控制方式如圖3所示。

圖3 PC與ACR9000的控制方式
創建通訊模塊連接按鈕,實現人機界面與運動控制器的連接,以實現信息通訊和命令調用等所有功能。運動控制器與PC的連接有四種方式,主要應用connect命令,參數1代表為Bus總線連接,參數2代表Serial串行接口,參數3代表Ethernet以太網連接,參數4代表USB連接,參數列表如圖4所示。本系統采用Ethernet連接,界面如圖5所示,部分主要代碼如下:

圖4 連接屬性設置表

圖5 通訊模塊


代碼輸入模塊主要包括數控代碼的輸入,編輯修改,刪除等功能,通過這些功能能快速準確的將數控代碼輸入軟件中,如圖6所示。部分主要程序如下:

圖6 代碼輸入模塊


狀態顯示模塊可以顯示機床的開關狀態,冷卻液開關狀態,主軸的開關狀態,當前的轉速以及當前的坐標位置,通過這顯示模塊,用戶可以很清楚地看到機床的運行狀態,如圖7所示。部分主要程序如下:


圖7 狀態顯示模塊
JOG運動操作模塊主要是手動控制軸0、軸1、軸2的單獨運動狀態,先選擇要設置JOG速度的軸,再在文本框中輸入該軸JOG運動速度,最后單擊“設置”按鈕讓該設置生效。單擊JOG+按鈕,對應軸將正轉,單擊JOG-按鈕,對應軸將反轉,單擊JOG停,對應軸停止旋轉。控制界面如圖8所示。
控制電機JOG運動可以通過觸發ACR9000控制器內部的BIT位來實現。JOG速度設置可以通過對內部P參數賦值來實現,對應關系如表1所示,部分主要程序如下:


圖8 JOG運動操作模塊

表1 JOG運動BIT、P參數對應表
插補程序在每個插補周期運行一次,在每個插補周期中,根據指令進給速度計算出一個微小的直線數據段。通常經過若干個插補周期加工完一個程序段,即從數據段的起點走到終點。計算機數控系統是一邊插補,一邊加工。而在本次處理周期內,插補程序的作用是計算下一個處理周期的位置增量。它的主要任務是在每個采樣周期內,將插補計算的理論位置與實際反饋位置相比較,用其差值去控制進給電機,進而控制機床工作臺(或刀具)的位移。這樣機床就自動地按照零件加工程序的要求進行切削加工[9-11]。
本系統采用脈沖增量插補中的數字積分法又稱DDA(Digital Differential Analyzer)法,利用數字積分的方法,計算刀具沿各坐標軸的位移,以便加工出所需要的線性。以直線插補為例,界面如圖9所示,部分重要代碼如下:



圖9 插補模塊
當代碼輸入完,程序開始運行前,對代碼進行檢查,如有錯誤就進行糾正,如沒有錯誤,就進行后續運行。另外在系統工作過程中,隨時發現系統故障,并指示故障類型,以實現在線診斷功能,保證系統的正常運行,部分主要代碼如下:

仿真模塊主要根據數控程序進行計算機模擬運行,根據模擬的運動軌跡來判斷原先的程序是否合理,有沒有出錯。加工墊片外輪廓的運動軌跡仿真例子如圖10所示。部分主要代碼如下:



圖10 仿真模塊實例
論文是基于windows平臺,利用Visual C++6.0編程工具,利用ACR9000運動控制器,介紹了一款開放式數控系統軟件平臺的設計。所開發的系統軟件工作穩定,響應周期短,可移植性強。實現了人機交互界面與運動控制器的連接,以及機床的基本功能。由于它是個開放式數控系統,所以以后在應用過程中,需要什么功能,便可以在原有軟件系統上進一步進行發。下一步將繼續完善軟、硬件系統,使其更適合超聲加工的特點。
[1] 吳明軍,張旭輝,王孫安. 基于Linux的開放式數控系統軟件平臺研究[J]. 組合機床與自動化加工技術. 2006.
[2] 王睿鵬. 基于PC的開放式數控系統[J]. 計算機技術與應用. 2006.
[3] 吳繼忠,譚平. 開放式數控系統探索[J]. 計算技術與信息發展. 2009.
[4] 張連軍,何春俐. 開放式數控系統的發展現狀[J]. 機械管理開發. 2010.
[5] 龔敏,陳友東.數控技術及開放式數控系統[J]. 機械設計與制造. 2006.
[6] 宋坤.Visual C++開發實戰寶典[M]. 清華大學出版社.2010.
[7] 陳德妙,張桂香. 基于Windows2000下開放式數控系統軟件的開發[J]. 組合機床與自動化加工技術. 2005.
[8] 王大宇,劉吉彪. Parker公司ACR9000運動控制器在二自由度滑臺中的應用[J]. 工程機械文摘. 2008.
[9] 王世寰,張克國. 可擴展插補指令的開放式數控系統[J].組合機床與自動化加工技術. 2007.
[10] 王永章,杜君文,程國全.數控技術[M]. 高等教育出版社. 2001.
[11] 程國標,郭躍飛. 開放式數控系統研究[D]. 復旦大學.2008.