0 引言
對開放式數控系統的開發主要有3 種類型: PC嵌入型CNC ,NC 嵌入PC 型和全軟件型。 第2 種類型是工業PC 機配合專用的CNC 卡(如運動控制卡) 組成,它能夠充分地保證系統性能,是目前比較可行的一種開發方式。
1 基于PC + NC 的開放式數控系統平臺的開發
在系統平臺建模時,通過對數控平臺需求進行分析后,將數控軟件抽象成一些功能獨立、內聚強、相互間耦合松散的軟件功能模塊,并定義好接口,以便與其它模塊通信。 根據其通信對象,模塊間通信分2種:一種是數控系統軟件中,各模塊之間的內部數據通信,另一種是數控系統中,某些模塊與底層運動控制單元的通信。
對于數控系統中各模塊之間的內部數據通信,以數據通信為中心來進行開發,內部通信模塊作為整個數控系統軟件的中心模塊,具有多個模塊接口,通過這些接口可以與其它數控功能模塊相連接。 每個模塊的輸入和輸出,都通過模塊與數據通信這個中心環境交互,數據交互環境自治地從各接口讀取和發送數據,并將數據發送到各接口。
對于數控系統中某些模塊與底層運動控制單元的通信,主要利用底層所提供的通信庫來完成。 由于不同的底層運動控制單元所提供的通訊庫不一樣,而數控系統中某些模塊必須使用相應的通訊庫進行開發,從而導致數控軟件對于底層運動控制單元有很大的依賴性,為了克服這種依賴性,將數控系統軟件通訊模塊按可配置的方案進行設計,此模塊根據不同的底層運動控制單元,選擇裝載相應的通訊庫,通過將不同的通訊庫設計為通用的通訊類庫,為系統中需要通訊的模塊提供通用的API,提高上層數控支撐軟件的硬件獨立性,從而提高系統的開放性。
2 實例
作為開發基于PC + NC 開放式數控系統平臺應用實例,我們采用了IPC + UMAC ,對大型螺旋槳用重型七軸車銑復合加工機床數控系統進行了開發。 在此系統中,采用開放式平臺體系結構,上位機使用Win2000 操作系統,通過網絡接口將UMAC運動控制器和工業控制計算機連接,采取HMI和實時控制分開的上、下位機結構,實現系統的開發。系統硬件建立在通用的工業PC(IPC) 基礎之上,實質采用了多CPU 的分層控制結構, 每一層之間均通過標準的總線方式和開放的接口規范相連。
2.1 系統硬件設計
UMAC 是美國Dleta Tau 公司生產的一種運動控制系統,此系統可配置控制任何類型的機床自動化應用。 IPC 與UMAC 集成數數控系統的硬件結構按用戶需求,根據系統需求選擇電機、電機驅動及各種接口模塊。
a.通過UMAC 提供的位置捕捉功能,完成機床大型零件的在線檢測,實現裝夾找正、加工余量預估和對刀調整補償。
b.通過UMAC 提供的數據采集及分析功能,完成數控系統所需的信號及參數, 實現對加工工件的跟蹤掃描及遠程操作控制。
c.使用UMAC 提供的電機參數調整功能,實現雙電機消除反向間隙。
d.通過UMAC 提供的插補功能,完成各電機的運動控制。
e.通過UMAC 的I/ O 口,輸入檢測部件、行程開關等各種開關量輸入信號。
f .通過UMAC 的I/ O 口,輸出各種控制和指示信號。
UMAC 提供通用的網絡接口和USB 接口,通過帶屏蔽的雙絞線或USB 信號線可實現UMAC與工控機之間的數據傳輸,220 V 的AC 電源經過UPS 后,給工業控制計算機和UMAC 供電,以保證在掉電后可以正常停機。 根據不同的伺服系統(數字或模擬) ,可選擇相應的軸接口模塊,各模塊之間通過跳線設置其地址,以避免地址沖突。
2.2 系統軟件設計
系統軟件包括: IPC (上位機) 的數控系統應用程序;上下位機通訊程序;UMAC (下位機) 中對各種輸入、輸出量進行監控的PLC 程序。 由于上位機使用非實時系統,要求下位機對實時操作有很強的自主控制功能,其邏輯控制功能主要由其內置的PLC 功能實現, 數控系統圖支3撐 軟上件下位分機為通幾訊個原大理的模塊。
a.NC 代碼解釋模塊。 實現通用數控加工文件到NC 運動指令的轉換,此部分與底層關系密切,因為不同的底層NC 卡所識別的NC 指令并不統一,所以此模塊的開發也很重要,所使用的開發工具為LEX 與YACC。
b.系統仿真模塊。 該模塊從內部數據通訊處理模塊中獲得所需數據,處理后實現零件加工實時顯示以及加工前的仿真校驗。
c.數控文件管理模塊。 實現數控加工文件的創建,編輯及索引。
d.測量模塊。 該模塊從內部數據通訊處理模塊中獲得所需數據,進行在線測量毛坯及成品的尺寸,實現加工余量及產品質量預估。
e.人機界面模塊。 實現人機界面的屏幕操作功能,如系統參數設置,刀具管理,加工坐標顯示,各種報警信息顯示等。
f.數據采集模塊。 定時采集各軸數據及I/O點狀況,實現上位機對下位機的監控,同時負責程序緩沖區文件傳輸,由于此部分與底層關系密切,所以在平臺開發過程中將其獨立出來,如要更換底層NC模塊,此數據采集模塊可能需要重新編寫;但重新編寫的原則是對內部數據通訊處理模塊提供統一接口,從而保證接口一致性,減少新系統開發工作量。
g.內部數據通訊處理模塊。 提供與各模塊通訊的接口,管理模塊間數據的交換,使整個系統構成了一個模塊化、分布式系統,實現其它各模塊之間通訊的獨立性。 開發過程中,使用操作系統所提供的內核對象同步機制和關鍵代碼段,來實現線程的同步及關鍵共享數據的保護,對于多進程間的數據通訊,則使用內存映射文件機制。
h.底層可配置通訊庫。 這是實現系統平臺中的一個關鍵模塊,因為不同的底層NC 卡所提供的軟件接口一般區別很大,而上位機軟件又不可避免地需要與底層通訊,為了實現上位機軟件的硬件獨立性,所以開發此模塊。 使用VC6.0 + + 將NC 卡所提供的API 進行二次開發生成新的可配置通訊庫CommAPI.dll ,此通訊庫將不同NC 卡所提供的API 轉換成通用的API ,其它模塊將此通用庫所提供的通用API 導出后即可使用,從而屏蔽掉不同底層通訊庫之間的差別,提高其它模塊的獨立性,部分接口代碼如下(CommAPI.cpp) :
# define EXPORT_FUN _decl spec (dllexport ) / / 通訊庫導出函數宏定義 CUmacComm g_Dpr ; / / 定義類變量,此類利 用UMAC 底層通訊庫的API 編寫 EXPORT_ FUN BOOL CommStart ( ) / / 啟 動通訊的通用API 定義,供其它模塊導出后調用 { if ( !g_Dpr .Load_UMAC ( ) ) / / 裝載UMAC 動態庫并打開UMAC 卡通訊庫 {Af xMessageBox (、打開UMAC 卡失敗! !" , MB_O K| MB_ TOPMOST) ;ret urn FAL SE ;} return TRUE ; }
采用Win2000 操作系統,使用VC6.0 + + 及DeltaTau 公司所提供的通訊庫進行上位機數控系統支撐軟件設計。 通過將Delta Tau 公司所提供的通訊庫PComm32.dll 設計為通用的通訊類庫CommAPI。dll ,提供通用的API (如CommStart ( ) ) ,供人機界面模塊及數據采集模塊使用,對于不同類型的運動控制器所提供的不同的通訊庫,只需對底層可配置通訊庫進行配置,上層數控軟件功能模塊無需更換或只需較少的更換,從而提高上層數控支撐軟件的硬件獨立性。 設計過程中充分利用系統所提供的豐富資源,可縮短開發時間。
3 結束語
PC+ NC型數控系統在結合運動控制器穩定的運動控制功能基礎上,利用Win2000 系統提供的多任務并行機制和面向對象的開發環境,使用VC6.0+ + 等快速開發工具,開發出可配置,可重用,易于維護,硬件獨立性好的數控系統平臺。 基于此平臺,快速開發出了螺旋槳用數控系統和刺繡機用數控系統,取得了良好效果。
(審核編輯: 智匯張瑜)
分享