前言:由于計算機技術的飛速發展以及其標準化和開放性,推動了數控技術的更新換代,許多數控系統生產廠商利用PC機豐富的軟硬件資源開發開放式體系結構的新一代數控系統,即基于PC的模塊化、可重構、可擴充的數控系統。
關鍵詞:三軸連動、 數控系統 、PC
基于PC的開放式數控系統大致可分為四種類型 :
PC連接CNC型
該類型系統是用通用的串行線將現有的原型CNC與PC相連而組成的。該系統容易實現,原型的CNC幾乎可以不加修改地進行利用。也可使用通用的軟件,但是其原型CNC不能實現開放化,并且系統的通訊、響應速度慢。
PC嵌入CNC型
該類型系統是將PC裝入到CNC內部,PC與CNC之間用專用的總線連接。系統數據傳輸快,響應迅速,同時 ,原型CNC系統也可不加修改就可以利用,但是不能直接地利用通用PC,開放性受到限制。
NC嵌入PC型
該類型系統是在通用PC的擴展槽中插入專用的CNC卡組成的。它能夠充分地保證系統性能,軟件的通用性強,并且編程處理靈活。
全軟件型NC
該類型系統是指CNC的全部功能均由PC進行處理,并通過裝在PC的擴展槽的伺服接口卡對伺服驅動等進行控制。其軟件的通用性好,編程處理靈活。但是,實時處理的實現比較困難,并較難保證系統的性能,同時原型CNC資源難以利用。
本系統著眼于經濟型數控機床控制系統的設計,選擇NC嵌入PC型進行開放式數控系統的開發研究。以PC機+運動控制器為控制系統核心,系統的控制軸數為4軸,聯動軸數為3軸,驅動元件為步進電動機。本系統在Windows環境下用C++語言實現,軟件的設計采用面向對象的設計方法。
系統硬件結構
運動控制器的選擇
運動控制器,就是利用高性能微處理器(如DSP)及大規??删幊唐骷崿F多個電機的多軸協調控制,具體就是將實現運動控制的底層軟件和硬件集成在一起,使其具有電機控制所需的各種速度、位置控制功能。這些功能能通過計算機方便地調用。本系統采用以DSP運動控制專用芯片MCX314為核心的運動控制器。MCX314芯片是日本NOVA電子有限公司研制的DSP運動控制專用芯片,性能優良,接口簡單,編程方便,工作可靠,可廣泛應用于數控機床、機器人等領域的運動控制。
芯片能與8位或16位數據總線接口,通過命令、數據和狀態等寄存器實現4軸3聯動的位置、速度、加速度等的運動控制和實時監控,實現直線、圓弧、位元3種模式的軌跡插補,輸出脈沖頻率達4MHz。每軸都有伺服反饋輸入端、4個輸入點和8個輸出點,能獨立地設置為恒速、線性或S曲線加/減速控制方式,并有2個32位的邏輯、實際位置計數器和狀態比較寄存器。MCX314芯片主要功能結構如圖1所示。
[IMG= MCX314功能框圖]/uploadpic/THESIS/2007/12/2007121411245035903N.jpg[/IMG]
圖1 MCX314功能框圖
I/O接口設計
以MCX314芯片為核心的運動控制器通過ISA總線實現PC機與運動器之間的信息傳遞,每個軸分別由脈沖輸出信號、通用輸出信號、方向限制信號、停止信號和編碼器輸入信號構成數字接口。脈沖輸出接口直接與步進電機連接,控制電機運動;編碼器輸入接口接收來自電機上編碼器的反饋數據,實現半閉環控制。運動控制器占用16個連續的ISA總線I/O地址空間,分別用于數據的讀寫、指令寫以及狀態寄存器的讀寫。硬件組成如圖2所示。
[IMG= 運動控制器的硬件組成框圖]/uploadpic/THESIS/2007/12/20071214112517571515.jpg[/IMG]
圖2 運動控制器的硬件組成框圖
2.3 系統硬件工作原理
1臺PC機、標準鍵盤、鼠標器和CRT彩色顯示器組成。PC機作為整個系統的主控制器,實現人機界面管理、NC文件編輯和預處理及加工監控等功能。NC文件的手工編輯和操作指令的輸入由標準鍵盤完成,而CRT彩色顯示器則用于顯示人機界面實現加工過程的二維軌跡動態顯示。運動控制器以MCX314芯片為核心,以8位數據對MCX314芯片進行控制。MCX314的時鐘頻率由外部設定。本系統選用MCX314默認的16MHz頻率作為時鐘信號。ISA的數據線經雙向驅動與MCX314的數據線相連接,由MCX314內部決定其數據具體送往哪一個寄存器。
系統軟件結構
軟件平臺-的選擇
Windows具有操作界面友好、程序開發相對容易、開發程序可移植性好等優點,同時具有高精度的實時響應特性和搶占式多任務調度機制,因此在Windows下開發實時多任務系統具有天然的優勢。Windows有兩個有利于數控系統實現的特點:首先,提供高精度的實時響應。這種實時功能是基于中斷的,不需要與硬件打交道,而且可同時使用多個實時事例。實時響應的精度很高,完全能滿足數控技術的要求。其次,支持多線程。線程是32位操作系統的主要特點,它具有一系列的優點。對數控系統來說,最有用的特征是它支持搶占式的多任務機制,實時響應速度高,而各線程之間互不干擾。便于功能的擴充與剪裁。在Windows下實現數控系統,可充分利用這兩個優點。因此,Windows操作平臺是一個首選的軟件平臺。
編程語言平臺的選擇
編程語言與軟件開發效率、運行效率密切相關,本系統采用 C++語言,運行在Borland C++ Builder環境中。C ++ Builder是一個面向對象的可視化編程平臺,應用于3 2位Windows應用程序的快速開發。在C + + Builder中編程,可以實現用最小的代碼開銷編寫出高效率的Windows應用程序。
軟件結構實現
系統軟件分為兩部分:一部分是主控模塊,分為參數配置、程序、加工、手動、顯示、圖形等模塊;另一部分是以MCX314芯片為核心的運動控制器部分。主控模塊與MCX314通信,讀取其寄存器的狀態值,并根據系統的狀態,向MCX314發送相關的控制指令,兩部分密切相聯。系統啟動后,將根據系統的配置文件中的設置,加載配置文件。然后啟動系統的主控模塊,與MCX314進行通信,讀取芯片的寄存器參數,并將相關的值傳輸到顯示模塊中。
調用程序模塊:進行數控加工程序段的編輯或文件的傳輸。
調用加工模塊:可以對選中的數控程序進行譯碼,然后將譯碼后的指令傳輸給MCX314,由MCX314運動控制器發出相應的脈沖指令,控制各軸電機的動作。
調用手動控制模塊:系統處于手動狀態,按下各軸的手動控制鍵,MCX314運動控制器將向相應軸的電機發送脈沖指令,使其動作。
調用圖形模塊:用于在加工程序前,校驗加工程序是否符合圖紙要求,調用此功能,將在屏幕上模擬加工出當前程序的加工圖形,同時,在加工過程中,調用此功能模塊,將以圖形化的形式顯示刀具的運行軌跡。
運動控制器軟件設計
系統使用C++ Builder對MCX314的指令系統進行了重新的封裝,通過主控程序與該封裝后的運動控制器程序的通信,實現預期的動作。利用C++ Builder對其進行封裝,該程序模塊具有很好的開放性,程序模塊分為define.h、mcxfunc.c和mcx314.c等三部分。
為了描述和編程方便,根據運動控制器電路及MCX314寄存器和指令系統的功能含義,定義了相關的變量到define.h文件中。程序中根據狀態寄存器的各位的意義分為軸的運動狀態位、軸的停止狀態位、軸的出錯狀態位、中斷源標志位等四類,分別用于對讀寫的代碼作出定義。例如:
//軸的中斷源標識位
#define STA_INT_PLS 0x01 //pulse
#define STA_INT_PGCM 0x02 //P>=C-
#define STA_INT_PLCM 0x04 //P
=C+
#define STA_INT_CEND 0x20 //C-END
#define STA_INT_CSTA 0x40 //C-STA
#define STA_INT_DEND 0x80 //D-END
對MCX314運動控制器的功能封裝,實現了三軸聯動的功能,并且能夠通過調用軟件提供的直線、圓弧插補函數,對各運動軸的狀態讀取,實現數控系統的運動控制功能;同時提供的工作模式函數,可以實現自動與手動的切換;軟件提供的通用輸入輸出功能可以實現數控系統對機床的切削液、自動刀架和電動夾具的控制,可以取代傳統數控機床的PLC控制部分,節省硬件成本。
主控模塊設計
系統的主控模塊主要負責調度各功能模塊,實現系統的初始化、參數的管理、數控程序的編輯、手動功能實現、加工狀態的顯示和與MCX314進行通訊等功能。系統啟動的時候,調用參數配置模塊,實現系統的初始化。同時,在系統運行時,用戶可以隨時調用參數管理,對相關的系統參數進行修改。系統初始化結束后,將進入顯示模塊,對數控系統各項功能進行實時顯示,并對指令作出相應的動作。在本系統中,我們利用標準鍵盤,對其部分鍵進行了功能定義,如F7定義為加工模塊的調用、F8為程序模塊的調用、F9為圖形仿真模塊、F10為顯示位置模塊、F11為手動模式和F12為參數設置模塊。同時,又定義F1~F6為各功能模塊的子功能的切換鍵。原理框圖如圖3所示。
[IMG=系統主控模塊框圖]/uploadpic/THESIS/2007/12/20071214112523558823.jpg[/IMG]
圖3 系統主控模塊框圖
人機界面的開放
用戶界面作為人機接口起著重要作用。良好的用戶界面能夠方便地處理各種經常進行的交互對話,并且操作簡便,提高效率。
系統的顯示界面
顯示當前機床的運行狀態,如機床的指令位置(即邏輯位置)、實際位置、進給速度及切削液開關等。在系統運行過程中,可以通過按動位置(鍵盤設定為F10)即可進入該功能。其運行界面如圖4所示:
[IMG=顯示界面]/uploadpic/THESIS/2007/12/2007121411253192691B.jpg[/IMG]
圖4 顯示界面
用戶輸入輸出界面
該模塊實現用戶的輸入、系統的輸出。用戶輸入的主要功能是讓用戶輸入數控代碼,發出控制命令,進行系統的參數配置。用戶輸入的代碼采用ISO標準數控代碼。圖5所示為用戶程序輸入、編輯的界面圖形:
[IMG=編輯界面]/uploadpic/THESIS/2007/12/2007121411254082721A.jpg[/IMG]
圖5 編輯界面
系統的參數設置界面
用于設置系統與機床相關的參數,如機床的機械行程、最大進給速度、是否有編碼器、是否啟用軟限位及軟限位的數值和X軸方向編程方式(直徑編程還是半徑編程)等,通過設置這些數值并將這些數值存儲到相關的配置文件,系統可以在初始化的時候調用上一次保存的配置。在操作中,如果相關的參數有了改變,則可以即時調用初始化程序作出改變。
系統的仿真加工界面
本系統建立了線程TrdGraphic,利用編譯器提供的TCanvas類為基類建立了一系列的圖形類,如CShap(建立加工工件的圖形)、CTool(加工刀具的圖形)等。圖形仿真時,讀取數控加工程序并在屏幕上繪出刀具及工件的二維仿真加工圖形,用戶可以將圖形放大、縮小觀看加工的細節。
[IMG=參數設置界面]/uploadpic/THESIS/2007/12/2007121411254838260B.jpg[/IMG]
圖6 參數設置界面
[IMG=仿真加工界面]/uploadpic/THESIS/2007/12/20071214112553300426.jpg[/IMG]
圖7 仿真加工界面
結束語
本數控系統控制功能較強,可實現三軸聯動控制功能,能夠進行三軸直線插補和任意兩軸的圓弧插補;具有友好的人機界面。采用Windows風格界面,用戶不需要進行特別的培訓即可很快的進行NC文件編輯與處理,實現了數控系統的主控模塊、顯示、自動加工、手動、參數設置、仿真和程序編輯等功能。
開放式數控系統以其極大的優越性,已經成為未來數控系統的發展趨勢。采用PC機總線結構和模塊功能,可以為軟件開發和功能擴展提供優良平臺,使數控系統有更好的通用性、柔性、適應性、擴展性,并向智能化、網絡化方向大大發展。