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