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