數(shù)控機(jī)床分布式監(jiān)控系統(tǒng)通信接口設(shè)計(jì)
隨著計(jì)算機(jī)、通信和網(wǎng)絡(luò)技術(shù)的發(fā)展,數(shù)控系統(tǒng)正向智能化、網(wǎng)絡(luò)化方向發(fā)展,數(shù)控機(jī)床作為制造系統(tǒng)的核心裝備,其復(fù)雜程度及智能化進(jìn)程也不斷提高,而數(shù)控機(jī)床的加工精度、機(jī)床運(yùn)行是否正常等都需要一個(gè)監(jiān)控系統(tǒng)來反映,監(jiān)控系統(tǒng)在一定程度上保證了機(jī)床安全可靠地運(yùn)行,尤其是當(dāng)前數(shù)控機(jī)床高速、高精度、智能化的要求,數(shù)控機(jī)床監(jiān)控系統(tǒng)也要不斷發(fā)展以滿足數(shù)控機(jī)床的需求.對(duì)于數(shù)控機(jī)床監(jiān)控系統(tǒng)的研究雖然已有一些成果,如第一代監(jiān)測與診斷系統(tǒng),以及后來的基于INteRNet的網(wǎng)絡(luò)化遠(yuǎn)程監(jiān)測及故障診斷系統(tǒng)。然而隨著數(shù)控機(jī)床要求的提升,也要求監(jiān)控系統(tǒng)性能做出相應(yīng)的提升,如可擴(kuò)展性、實(shí)時(shí)性、對(duì)機(jī)床的加工精度的在線測試、運(yùn)行狀態(tài)的在線監(jiān)測等,監(jiān)控系統(tǒng)也顯得越來越重要.本研究針對(duì)數(shù)控機(jī)床,在一種分布式監(jiān)控系統(tǒng)的基礎(chǔ)上,設(shè)計(jì)了分布式監(jiān)控系統(tǒng)的通信接口,并通過監(jiān)控系統(tǒng)具體應(yīng)用于數(shù)控機(jī)床中,驗(yàn)證了這種通信接口的可行性。
1 監(jiān)控系統(tǒng)總體結(jié)構(gòu)
為適應(yīng)數(shù)控機(jī)床監(jiān)控系統(tǒng)的分布式結(jié)構(gòu),本文中的數(shù)控機(jī)床監(jiān)控系統(tǒng)由多臺(tái)PC組成,各個(gè)PC可以獨(dú)立分布于不同位置,也可以獨(dú)立地監(jiān)控相同或不同的數(shù)控機(jī)床.各個(gè)獨(dú)立的主機(jī)通過HUB與多臺(tái)數(shù)控機(jī)床中數(shù)控系統(tǒng)相連,組成一個(gè)星形網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),形成了分布式監(jiān)控系統(tǒng),監(jiān)控系統(tǒng)通過數(shù)控系統(tǒng)獲取機(jī)床各個(gè)軸運(yùn)動(dòng)位置、反饋、狀態(tài)等數(shù)據(jù);同時(shí),監(jiān)控系統(tǒng)也可以向數(shù)控系統(tǒng)發(fā)送指令,控制機(jī)床的運(yùn)動(dòng)等。
變量服務(wù)為上層應(yīng)用周期性地提供數(shù)控機(jī)床的狀態(tài)數(shù)據(jù),例如機(jī)床指令坐標(biāo)位置、實(shí)際坐標(biāo)位置、進(jìn)給速度、主軸速度等,變量服務(wù)在設(shè)定的采樣周期內(nèi)完成一次所有在線數(shù)控機(jī)床的數(shù)據(jù)采集,該服務(wù)為實(shí)時(shí)監(jiān)測數(shù)控機(jī)床的運(yùn)行狀態(tài)提供了基礎(chǔ),參數(shù)服務(wù)為上層應(yīng)用軟件非周期性地讀取DNC的參數(shù)數(shù)據(jù),修改DNC的參數(shù)數(shù)據(jù),命令服務(wù)為上層應(yīng)用軟件提供遠(yuǎn)程控制的服務(wù)。文件服務(wù)為上層應(yīng)用軟件提供加工程序的傳輸、選擇等服務(wù)。PLC數(shù)據(jù)服務(wù)提供PLC數(shù)據(jù)的掃描上傳及診斷等服務(wù).數(shù)據(jù)通信服務(wù)為數(shù)控機(jī)床監(jiān)控平臺(tái)提供了數(shù)據(jù)交互的基礎(chǔ),是實(shí)現(xiàn)數(shù)控機(jī)床監(jiān)控平臺(tái)的基礎(chǔ)功能。為了使通信服務(wù)獨(dú)立性好,為上層應(yīng)用軟件提供透明的服務(wù),設(shè)計(jì)了一系列的通信API接口,為上層應(yīng)用軟件提供API接口包,將數(shù)據(jù)通信服務(wù)平臺(tái)和上層應(yīng)用軟件剝離,使通信服務(wù)模塊化、規(guī)范化、標(biāo)準(zhǔn)化,便于程序的移植.對(duì)于上層應(yīng)用軟件,通信服務(wù)的具體實(shí)現(xiàn)是透明的,應(yīng)用軟件的開發(fā)人員無須關(guān)注底層通信服務(wù)的實(shí)現(xiàn)細(xì)節(jié),只調(diào)用相關(guān)的API接口即可。
2 監(jiān)控系統(tǒng)數(shù)據(jù)通信接口設(shè)計(jì)
在數(shù)控機(jī)床接入監(jiān)控系統(tǒng)后,數(shù)控系統(tǒng)向監(jiān)控系統(tǒng)發(fā)送確認(rèn)信息,信息內(nèi)容包含接入設(shè)備名稱、生產(chǎn)廠商等基本信息;監(jiān)控系統(tǒng)在接收信息確認(rèn)后,在監(jiān)控系統(tǒng)內(nèi)部對(duì)該數(shù)控機(jī)床建立基本信息庫,對(duì)其進(jìn)行IP等基本配置,配置完成后,數(shù)控系統(tǒng)進(jìn)入等待命令狀態(tài)中,在接收到監(jiān)控系統(tǒng)命令后,解析數(shù)據(jù)幀,根據(jù)查詢命令結(jié)果,如:當(dāng)接收到的是讀某一參數(shù)命令時(shí),通過映射關(guān)系中數(shù)據(jù)表查找到對(duì)應(yīng)數(shù)據(jù),將返回?cái)?shù)據(jù)命令與參數(shù)組成新的數(shù)據(jù)幀,并將結(jié)果發(fā)送到監(jiān)控系統(tǒng)中。
將數(shù)控機(jī)床及監(jiān)控系統(tǒng)中內(nèi)部數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)命令I(lǐng)D及變量ID建立統(tǒng)一的映射關(guān)系,并生成一個(gè)映射文件MaP-CFG。在監(jiān)控系統(tǒng)端,通過生成的MaP-CFG創(chuàng)建一塊連續(xù)的存儲(chǔ)單元存儲(chǔ)MAP-CFG中定義的變量,同時(shí)建立ID到存儲(chǔ)單元地址的映射關(guān)系,通過變量ID與映射關(guān)系,可以快速地定位須要更新的數(shù)據(jù).當(dāng)應(yīng)用訪問變量時(shí),映射層通過傳入的ID號(hào)對(duì)所需變量在存儲(chǔ)中的位置進(jìn)行定位,并進(jìn)行讀寫操作。由于變量的訪問都是通過ID號(hào)進(jìn)行的,因此監(jiān)控系統(tǒng)端應(yīng)用API和數(shù)控機(jī)床端應(yīng)用API是一致的。在初始化時(shí),通過硬編碼的方式生成配置文件MAP-CFG,在監(jiān)控系統(tǒng)中,變量的存儲(chǔ)單元由配置文件動(dòng)態(tài)生成,數(shù)據(jù)傳輸映射關(guān)系如圖4所示。
3 監(jiān)控系統(tǒng)通信驗(yàn)證
數(shù)控機(jī)床實(shí)時(shí)監(jiān)測功能可以顯示機(jī)床必要的運(yùn)行狀態(tài)信息,包括當(dāng)前被監(jiān)控機(jī)床的狀態(tài),如是否正常運(yùn)行、急停、或是故障,實(shí)時(shí)顯示當(dāng)前運(yùn)動(dòng)軸執(zhí)行信息(指令位置、實(shí)際位置等)。通過實(shí)時(shí)監(jiān)測功能可以動(dòng)態(tài)地以圖形模式顯示出二維加工軌跡,如圖6為被監(jiān)控機(jī)床的軸狀態(tài)顯示圖。
監(jiān)控系統(tǒng)總體結(jié)構(gòu)中包括2部分,即數(shù)控機(jī)床與監(jiān)控系統(tǒng),監(jiān)控系統(tǒng)的任務(wù)也分為2類,即周期任務(wù)與非周期任務(wù),周期任務(wù)即為在固定的時(shí)間內(nèi)向數(shù)控機(jī)床發(fā)出特定指令,并返回正確結(jié)果,如:周期地向數(shù)控機(jī)床提取各個(gè)軸位置指令與反饋、速度、電流等參數(shù),實(shí)時(shí)地繪制一些二維、三維曲線.非周期任務(wù)即不定時(shí)地向數(shù)控機(jī)床發(fā)出指令并返回結(jié)果,如讀取各個(gè)機(jī)床的參數(shù)、數(shù)控機(jī)床參數(shù)等,通過監(jiān)控系統(tǒng)中寄存器向用戶顯示,監(jiān)控系統(tǒng)總體結(jié)構(gòu)如圖1所示。
在監(jiān)控系統(tǒng)中,為了使軟件層次分明、結(jié)構(gòu)模塊化,監(jiān)控系統(tǒng)軟件由設(shè)備層、數(shù)據(jù)通信服務(wù)層、應(yīng)用功能層、用戶訪問層所組成.本文主要設(shè)計(jì)了數(shù)據(jù)通信服務(wù)層,數(shù)據(jù)通信服務(wù)層為上層應(yīng)用提供多種服務(wù),即提供參數(shù)服務(wù)、PLC數(shù)據(jù)服務(wù)等,通過這些服務(wù)鏈接了應(yīng)用功能與物理設(shè)備,如圖2所示。
監(jiān)控系統(tǒng)數(shù)據(jù)通信接口分為數(shù)控系統(tǒng)端通信接口和監(jiān)控系統(tǒng)端通信接口2部分。數(shù)控系統(tǒng)與監(jiān)控系統(tǒng)通過tCP\IP協(xié)議連接,監(jiān)控系統(tǒng)主動(dòng)發(fā)送命令,通過數(shù)控系統(tǒng)讀取被監(jiān)控機(jī)床的狀態(tài)參數(shù),數(shù)控系統(tǒng)端一般只被動(dòng)地接收數(shù)據(jù)命令,解析命令后,發(fā)送回反饋結(jié)果。
通信接口中,數(shù)據(jù)傳輸要經(jīng)過待機(jī)、數(shù)據(jù)映射、查詢命令、封裝數(shù)據(jù)幀、發(fā)送數(shù)據(jù)、接收數(shù)據(jù)及數(shù)據(jù)解析等狀態(tài),監(jiān)控系統(tǒng)端數(shù)據(jù)處理狀態(tài)如圖3所示。
數(shù)據(jù)的交互是由監(jiān)控系統(tǒng)端主動(dòng)發(fā)起的,監(jiān)控系統(tǒng)端通過判斷參數(shù)是否改變。若改變,則通過參數(shù)映射關(guān)系與命令查詢,開始讀、寫參數(shù)流程,把查詢到的具體命令與變量參數(shù)組成命令數(shù)據(jù)幀,發(fā)送數(shù)據(jù);當(dāng)接收到數(shù)據(jù)幀時(shí),自動(dòng)解析數(shù)據(jù)幀格式,通過命令查詢,判斷是讀參數(shù)、寫參數(shù)反饋數(shù)據(jù)幀或是其他響應(yīng)幀,若是讀參數(shù)反饋數(shù)據(jù)幀,則根據(jù)解析出的變量參數(shù),通過數(shù)據(jù)映射更新數(shù)據(jù),若未改變,則不執(zhí)行上述步驟。
為了方便不同數(shù)控機(jī)床與不同的監(jiān)控系統(tǒng)終端間傳輸數(shù)據(jù),設(shè)計(jì)的數(shù)據(jù)通信接口采用了數(shù)據(jù)命令與變量傳輸?shù)姆绞?,?shù)據(jù)命令如表1所示。
監(jiān)控系統(tǒng)體系結(jié)構(gòu)如圖1所示。監(jiān)控系統(tǒng)PC機(jī)帶有100MB/S的通用以太網(wǎng)卡;HUB為8口10/100M自適應(yīng)以太網(wǎng)交換機(jī);華中數(shù)控DNC-11數(shù)控系統(tǒng)是一種基于ARM平臺(tái)的嵌入式數(shù)控系統(tǒng),帶有10MB/S的通用網(wǎng)絡(luò)接口;星形拓?fù)浣Y(jié)構(gòu)中連接的介質(zhì)為帶有RJ45水晶頭的普通雙絞線。由于在局域網(wǎng)中,接入網(wǎng)絡(luò)的各臺(tái)主機(jī)的MAC地址不能重合,即使IP配置不同,局域網(wǎng)中的主機(jī)也會(huì)因?yàn)镸AC地址重合產(chǎn)生IP地址搶占問題而不能正常連接,因此每個(gè)連入局域網(wǎng)中的主機(jī)分配的MAC地址必須是唯一的。
本研究通過運(yùn)行監(jiān)控系統(tǒng)的3個(gè)功能,驗(yàn)證了設(shè)計(jì)的通信接口的可行性,其中數(shù)控機(jī)床的設(shè)備信息管理通過以太網(wǎng)將須要進(jìn)行監(jiān)控的數(shù)控機(jī)床連入數(shù)控機(jī)床監(jiān)控平臺(tái),動(dòng)態(tài)地添加或刪除所要測試的數(shù)控機(jī)床,對(duì)數(shù)控設(shè)備進(jìn)行在線管理。如圖5所示,數(shù)控機(jī)床信息包括機(jī)床的設(shè)備編號(hào)、設(shè)備名稱、數(shù)控機(jī)床型號(hào)等。