段智敏 徐曉龍
(沈陽理工大學機械工程學院,遼寧沈陽 110159)
開放式數控系統因其具有模塊化、標準化、可移植性、二次開發性和網絡化等特點,已經成為數控系統的發展趨勢。開放式數控系統能夠在多種平臺上運行,可以和其他系統互操作,并能給用戶提供一種統一風格的用戶交互界面。通俗地說,開放式數控系統允許用戶根據自己的需要進行選配和集成,更改或擴展系統的功能從而適應不同的應用需求。而且,組成系統的各部件可以來源于不同的供應商,并且相互兼容。
目前,開放式數控系統使用的運動控制器通常以PC硬件插件(運動控制卡)的形式與PC構成硬件平臺,系統基于PC總線形式。但這種形式無法適應未來計算機技術的發展以及硬件的標準化。
本文介紹了一種基于ACR9000獨立式運動控制器的開放式數控銑削實驗平臺。該系統硬件平臺由PC、ACR9000運動控制器以及CYCLONE交流伺服系統構成,并以Windows為軟件開發平臺,MFC為編程語言,開發上位機程序。
MFC是微軟提供的基礎類庫,以C++類的形式封裝了Windows API函數。MFC編程語言具有良好的可視化界面,減少了應用程序開發人員的工作量,縮短了開發周期。
模塊化是數控系統開放的基礎。基于模塊化的設計理念,將系統軟件平臺進行功能細分,按照功能的不同各自獨立成功能模塊。根據各功能模塊具體實現的功能,設計出成員變量和成員函數(即屬性和方法)。基于面向對象的思想將抽象出的成員變量和成員函數封裝成特定的類,在應用程序中,通過類的實例化即可實現特定功能。同時,如果需要對現有系統進行功能的完善或擴充,只需修改現有的類或構造出新的類,從而實現系統的可升級性和可擴展性。
系統軟件平臺主要實現以下幾個功能:控制器通訊、JOG運動、X軸Y軸聯動、位置信息讀取、插補運動以及數控編程等功能。上位機界面如圖1所示。

ACR9000是美國Parker公司最先進的獨立式運動控制器,可控制1到8軸(步進或伺服)。具有便利的接口形式和高性能的通訊能力,如10/100 M以太網或USB2.0高速通訊等。ACR9000過人之處在于他能夠與不同品牌的PC和PLC進行接口,功能強大的高速DSP(150/75 MHz,32位浮點)使 ACR9000完全勝任多任務伺服控制。本系統使用的控制器型號為P1U2M0,可控制X軸和Y軸運動。
ACR9000運動控制器提供COM庫供我們開發上位機程序(GUI)。該庫名稱為 ComACRServer.tlb,是一個32位OLE自動化(COM)服務器,支持C++、VB6、C#、VB.NET等開發語言,庫中的200多個函數涵蓋了ACR9000的全部主要功能。COM庫中提供的接口函數可以分為以下4類:
IStatus:用于讀取控制器中的參數和狀態等。
IControl:用于對控制器進行一些控制操作,實現參數和狀態位的寫入等。
ITerminal:用于與控制器之間實現字符串的通訊。
IUtility:實現控制器程序的下載等。
本系統采用Import將COM庫加載到應用程序中,通過AfxOleInit函數對COM庫初始化。同時,根究任務的需要選擇所需的接口類,利用智能指針定義接口對象,智能指針可使接口對象的創建工作更加簡單,而且它提供了自動銷毀生成的COM對象機制。最后對定義的接口對象按照COM的方式做一些初始化工作。部分代碼如下:

通訊模塊主要功能是將上位機界面與控制器連接,從而實現上位機與控制器的信息傳遞和指令發送。本系統中上位機與控制器是通過以太網進行連接,因此在通訊之前要設置IP地址,必須確保主機IP地址與ACR9000設在一個網段中(控制器的默認IP為192.168.10.40),同時根據上位機與控制器的物理層連接方式,確定連接函數的參數。在界面中添加連接按鈕,并在連接按鈕的響應函數內調用COM庫中Connect函數,即可實現通訊連接。同理,在斷開按鈕的響應函數內調用Disconnect函數,可將上位機與控制器的連接斷開。部分主要代碼如下:


該模塊用于讀取控制器中各軸的當前位置、實際位置和跟隨誤差等信息。基于VC定時器技術,在通訊模塊內設定定時器時間間隔,并觸法定時器工作。同時,在響應函數 OnTimer內,添加了自定義函數readParem,用于讀取控制器信息。參數讀取需調用IStatus接口中的GetACRCustom函數,通過向控制器發送查詢字符串來獲取所需的控制器內部信息。部分代碼如下:

在X軸Y軸聯動模塊中,通過對運動模式的選擇以及雙軸聯動速度和各軸位置的設置,實現手動控制電動機運動。電動機運動控制需調用IControl接口中的Move函數。基于ACR-View配置時各軸所屬坐標系情況,用nMoveProfile屬性指定Move函數所作用的坐標系。在電動機運動的過程中,通過觸發ACR9000控制器內部指定的BIT位,可以控制運動的暫停與繼續,類似于機床的進給保持功能。部分代碼如下:


插補運動模塊可實現逐點比較法直線插補、逐點比較法圓弧插補、數字積分法直線插補以及數字積分法圓弧插補,如圖2所示。基于插補算法及相關參數的設置,可實現插補運動仿真,圖3所示為DDA圓弧插補仿真實例。在伺服驅動器的位置控制模式下,通過上位機對控制器的脈沖及方向控制,可實現電動機的插補運動,插補功能主要流程如圖4所示。



以DDA圓弧插補為例,部分代碼如下:



數控編程模塊可以實現數控指令的輸入、修改、插入和刪除。圖5所示為數控編程界面,并根據數控程序實現加工軌跡仿真和電動機控制,如圖6所示。


數控模塊的核心在于數控代碼的轉換,而代碼轉化的重點在于對數控指令的信息提取與保存。本系統對數控指令的信息提取是通過構造函數實現的,根據提取信息的不同構造出不同的成員函數,這樣既解決了信息提取問題,又為系統升級提供便利。將提取好的信息保存在動態數組中,這不僅保存了數控指令中的數據信息,又為查詢上一數控指令行中的所需數據提供便利。在ACR9000運動控制器自帶的ACROBasic語言中可以找出與數控指令功能相同的指令,如MOV 與 G01、CIRCW 與 G02、CTRCCW 與 G03、M02 與ENDP等。基于這種對應關系,可將數控指令轉換成ACROBasic指令。然后將轉換好的指令保存在文本文檔內,并發送至控制器中。最后,通過觸發控制器內部的BIT位實現程序讀取,進而控制電動機運轉。部分代碼如下:

本文介紹了系統軟件平臺的構建方式以及各功能模塊的具體實現,充分利用ACR9000運動控制器所提供的COM庫和設備自帶的ACROBasic語言,實現了上位機通訊、電機控制、代碼解釋等功能。
本系統已調試成功,各模塊運行狀況良好,滿足實驗要求,該系統將應用于我校機電控制實驗室的教學實驗中。下一步會根據教學需要進一步完善和提升軟件系統功能。
[1]周舟,張洛平.基于運動控制器的開放式數控系統[J].機床與液壓,2003(3):94-95.
[2]孫鑫,余安萍.VC++深入詳解[M].北京:電子工業出版社,2006.
[3]趙萬軍,鄧正華.基于VC++的數控DDA圓弧插補軌跡仿真[J].制造業自動化,2012,34(3):125 -127.
[4]朱玉璽,崔如春,鄺小磊.計算機控制技術[M].北京:電子工業出版社,2010.
[5]劉瑛,謝富春.基于UMAC的開放式數控平臺的構建與應用[J].制造技術與機床,2008(12):93-95.
[6]張艷婷,沈曉紅.基于ACR9000的開放式數控系統軟件平臺研究[J].制造業自動化,2011,37(11):117 -121.
[7]許小明,王碩桂.基于PC的開放式數控系統代碼編譯器的開發[J].機床與液壓,2009,37(11):41 -44.