胡覺成 ,陸劍峰,2 ,余 濤 ,白 歐 ,楊 越
(1.同濟(jì)大學(xué)電子與信息工程學(xué)院CIMS研究中心,上海 201804;2.企業(yè)數(shù)字化技術(shù)教育部工程研究中心,上海 201804;3.智能云科信息科技有限公司,上海 200082)
隨著工業(yè)互聯(lián)網(wǎng)的發(fā)展,以及設(shè)備共享、遠(yuǎn)程維護(hù)需要的增長,數(shù)控機(jī)床數(shù)據(jù)采集與分享是一個關(guān)鍵點[1]。目前,數(shù)控機(jī)床數(shù)據(jù)采集和分享通用的兩個網(wǎng)絡(luò)數(shù)據(jù)傳送協(xié)議是MTConnect[2-7]與NCUC-Bus[8]。但是,這兩種協(xié)議還沒有針對每類機(jī)床的、細(xì)致的數(shù)據(jù)模型定義。然而,在實際生產(chǎn)過程中,因為每個數(shù)控機(jī)床的監(jiān)控和管理要素不同,需要有針對性地對每個機(jī)床進(jìn)行個性化數(shù)據(jù)采集。同時,基于工業(yè)互聯(lián)網(wǎng)的網(wǎng)絡(luò)協(xié)同制造的需要,數(shù)控機(jī)床運行狀態(tài)需要在不同企業(yè)之間共享。這要求每個數(shù)控機(jī)床的數(shù)據(jù)采集信息內(nèi)容和結(jié)構(gòu)能被相關(guān)企業(yè)理解以實現(xiàn)共享。針對以上問題,本文提出了一種基于報文的機(jī)床數(shù)據(jù)采集與分享方法,可將報文的靈活性和可靠性應(yīng)用到數(shù)控機(jī)床的數(shù)據(jù)采集與分享中。
基于報文的機(jī)床數(shù)據(jù)采集與分享系統(tǒng)包括網(wǎng)絡(luò)平臺(云端服務(wù)器或主機(jī))、邊緣設(shè)備和設(shè)備端三個部分。系統(tǒng)整體架構(gòu)如圖1所示。
圖1 系統(tǒng)整體架構(gòu)Fig.1 Overall structure of the system
整個系統(tǒng)內(nèi),網(wǎng)絡(luò)平臺是不可缺少的。網(wǎng)絡(luò)平臺可以是一個工業(yè)云平臺、公有的網(wǎng)絡(luò)平臺或者私有的企業(yè)平臺。如果網(wǎng)絡(luò)平臺是一個私有的企業(yè)平臺,則只能進(jìn)行數(shù)據(jù)采集并且在企業(yè)內(nèi)部進(jìn)行數(shù)據(jù)共享,而不能和私有平臺之外的節(jié)點進(jìn)行數(shù)據(jù)共享。網(wǎng)絡(luò)平臺應(yīng)至少包括一個邊緣設(shè)備或可直接采集數(shù)據(jù)的數(shù)控系統(tǒng)。邊緣設(shè)備或數(shù)控系統(tǒng)的數(shù)量可以無限制。系統(tǒng)可以連接多個邊緣設(shè)備或數(shù)控系統(tǒng)。
在網(wǎng)絡(luò)平臺中,用戶可以根據(jù)需求,通過業(yè)務(wù)管理模塊明確數(shù)據(jù)采集的內(nèi)容和頻率。數(shù)據(jù)與報文管理層根據(jù)業(yè)務(wù)的需求檢索報文。若報文庫中沒有與該業(yè)務(wù)相關(guān)的報文,則報文管理模塊重新定義新的報文,并將新報文存入報文庫。接入層根據(jù)檢索結(jié)果確定數(shù)據(jù)采集報文,并將數(shù)據(jù)采集報文下發(fā)至邊緣設(shè)備或數(shù)控系統(tǒng),從而完成訂閱[9]。
有兩種典型的數(shù)據(jù)采集方式可以連接到服務(wù)器:一種是通過邊緣設(shè)備來連接,另一種是直接連接(即圖1中邊緣設(shè)備與設(shè)備端集成在一起)。如果數(shù)控系統(tǒng)具有報文解析功能并且支持基于本文所涉及的數(shù)據(jù)采集報文進(jìn)行數(shù)據(jù)采集,那么就可以直接和網(wǎng)絡(luò)平臺連接而不用邊緣設(shè)備。否則,數(shù)控系統(tǒng)需要通過邊緣設(shè)備來連接網(wǎng)絡(luò)平臺[10]。
對于通過邊緣設(shè)備連入網(wǎng)絡(luò)平臺的方式,邊緣設(shè)備需要具備報文解析功能。邊緣設(shè)備接收到來自網(wǎng)絡(luò)平臺的報文后,通過對報文的解析,明確數(shù)據(jù)采集要求;通過對數(shù)據(jù)采集報文的理解,對采集對象進(jìn)行數(shù)據(jù)采集;對采集到的數(shù)據(jù)進(jìn)行必要的轉(zhuǎn)換、清洗和預(yù)處理;最后將采集到的數(shù)據(jù)上傳至網(wǎng)絡(luò)平臺[11]。
對于直接連接的方式,數(shù)控系統(tǒng)本身需要具備報文解析和數(shù)據(jù)傳輸?shù)墓δ?,即?shù)控系統(tǒng)需要具備邊緣設(shè)備的功能,在數(shù)據(jù)采集過程中承擔(dān)邊緣設(shè)備的角色。
網(wǎng)絡(luò)平臺在獲取邊緣設(shè)備和數(shù)控設(shè)備上傳的數(shù)據(jù)后,由數(shù)據(jù)與報文管理層對已經(jīng)采集到的機(jī)床數(shù)據(jù)進(jìn)行管理,包括數(shù)據(jù)的存儲和共享等。
如果用戶需要和其他用戶進(jìn)行數(shù)據(jù)共享,將自己采集的數(shù)據(jù)共享給其他用戶,可利用本文所設(shè)計的報文進(jìn)行定義。用戶之間的數(shù)據(jù)共享只能在網(wǎng)絡(luò)平臺的范圍內(nèi)。如果沒有其他用戶接入網(wǎng)絡(luò)平臺,就不能通過圖1所示的架構(gòu)訪問共享數(shù)據(jù)。一般而言,在數(shù)據(jù)共享過程中需要將數(shù)據(jù)結(jié)構(gòu)告知其他用戶,否則其他用戶就不能理解數(shù)據(jù)的含義。把報文定義信息傳遞給其他用戶后,其他用戶就可以很方便地根據(jù)這個報文定義信息來解讀數(shù)據(jù)含義。
根據(jù)不同的業(yè)務(wù)或者模型,形成的報文可以看作是對數(shù)據(jù)采集內(nèi)容和采集頻率的一個定義。一般報文可以基于可擴(kuò)展標(biāo)記語言(extensible markup language,XML)或JavaScript對象表示法(JavaScript object notcotion,JSON)來定義。
報文的定義應(yīng)該包含數(shù)據(jù)采集的內(nèi)容和頻率,以便邊緣設(shè)備和數(shù)控系統(tǒng)確定數(shù)據(jù)采集的要求。此外,報文的定義還應(yīng)該包含報文的類型,以明確是否能夠在不同企業(yè)間共享這個報文。因此,報文定義基本包括以下屬性:報文ID、報文名稱、采集規(guī)則(時間型、事件型)、采集頻率、報文類型(公有報文或私有報文)、報文所屬設(shè)備參數(shù)集(即采集內(nèi)容)[12]。
①報文ID:唯一標(biāo)識一個報文。
②報文名稱:便于報文的檢索。
③采集規(guī)則:規(guī)定數(shù)據(jù)采集方式是定時采集(時間型),還是在某個事件發(fā)生后采集(事件型)。
④采集頻率:每個時間間隔(例如每分鐘、每小時或每天)需要采集數(shù)據(jù)的次數(shù)。
⑤報文類型:分為公有報文和私有報文。公有報文又稱全局報文,可以被不同用戶共享。私有報文又稱局部報文,只能被定義這個報文的用戶自行使用。
⑥報文所屬設(shè)備參數(shù)集:報文定義需要采集的數(shù)據(jù)內(nèi)容。
技術(shù)人員可以在這個報文定義上疊加新的報文屬性內(nèi)容。
數(shù)控機(jī)床可以根據(jù)設(shè)備類別和系統(tǒng)類別進(jìn)行劃分。設(shè)備類別包括設(shè)備大類(如車床、銑床、刨床、磨床等)和設(shè)備小類(設(shè)備的具體型號)。每個設(shè)備大類中包括幾個設(shè)備小類。系統(tǒng)類別分為系統(tǒng)大類和系統(tǒng)小類。系統(tǒng)大類是指數(shù)控機(jī)床所采用數(shù)控系統(tǒng)的生產(chǎn)廠商,如西門子、FANUC、i5等。系統(tǒng)小類是數(shù)控系統(tǒng)的具體型號。系統(tǒng)根據(jù)每個數(shù)控機(jī)床的設(shè)備類別和系統(tǒng)類別,定義了不同的參數(shù)集。
在定義報文的時候,可以根據(jù)設(shè)備對象所屬設(shè)備類別和系統(tǒng)類別,從對應(yīng)的參數(shù)集中選擇部分參數(shù),作為數(shù)據(jù)采集內(nèi)容。
用戶根據(jù)業(yè)務(wù)需要,通過網(wǎng)絡(luò)平臺上的業(yè)務(wù)管理模塊登記業(yè)務(wù)信息,明確數(shù)據(jù)采集內(nèi)容和頻率。網(wǎng)絡(luò)平臺上的報文管理模塊檢索是否有該業(yè)務(wù)相關(guān)的報文定義。這個過程就是檢索符合數(shù)據(jù)采集內(nèi)容和頻率的采集報文。如果以前沒有定義過這個報文,則定義新報文,并且將其存入報文庫;如果存在這個報文定義,則通過報文訂閱模塊來關(guān)聯(lián)業(yè)務(wù)和報文,也就是明確這個業(yè)務(wù)采用什么報文來采集數(shù)據(jù)。最后,網(wǎng)絡(luò)平臺把報文下傳到邊緣設(shè)備或者數(shù)控系統(tǒng)。
如果數(shù)控系統(tǒng)支持報文解析并且能根據(jù)報文采集數(shù)據(jù),就可以直接把報文傳遞給該設(shè)備的數(shù)控系統(tǒng),即將圖1中的邊緣設(shè)備和數(shù)據(jù)機(jī)床的功能結(jié)合在一起。如果數(shù)控系統(tǒng)不支持報文解析或者不能根據(jù)報文采集數(shù)據(jù),則將報文傳遞給連接這個設(shè)備的邊緣設(shè)備,通過邊緣設(shè)備進(jìn)行數(shù)據(jù)采集。最后,邊緣設(shè)備或者數(shù)控系統(tǒng)完成數(shù)據(jù)采集,并且上傳到網(wǎng)絡(luò)平臺;數(shù)據(jù)存放到機(jī)床數(shù)據(jù)庫,供相關(guān)業(yè)務(wù)模塊訪問使用。數(shù)據(jù)采集流程如圖2所示。
圖2 數(shù)據(jù)采集流程圖Fig.2 Flowchart of data collection
數(shù)據(jù)分享流程如圖3所示。
圖3 數(shù)據(jù)分享流程圖Fig.3 Flowchart of data sharing
用戶可以通過業(yè)務(wù)管理模塊登記業(yè)務(wù)(或者檢索已有的業(yè)務(wù))、確定數(shù)據(jù)采集內(nèi)容和頻率。網(wǎng)絡(luò)平臺的報文管理模塊檢索是否有和這個業(yè)務(wù)相關(guān)的公有報文定義。公有報文是指可以被不同用戶共享的報文。如果沒有公有報文定義,則重新定義一個公有報文,并將其存入報文庫;如果有公有報文定義,則用戶根據(jù)公有報文采集數(shù)據(jù),并將其存儲到機(jī)床數(shù)據(jù)庫。用戶根據(jù)業(yè)務(wù)需要,利用用戶管理模塊中的權(quán)限設(shè)置功能把自己的數(shù)據(jù)共享給業(yè)務(wù)相關(guān)用戶。其他用戶可以根據(jù)公有報文結(jié)構(gòu),通過機(jī)床數(shù)據(jù)管理模塊訪問存放在機(jī)床數(shù)據(jù)庫中的共享數(shù)據(jù)。
本文以機(jī)床預(yù)防護(hù)維修為例,介紹通過基于報文方式的機(jī)床數(shù)據(jù)采集與分享方法的應(yīng)用。目前,業(yè)內(nèi)大多數(shù)機(jī)床裝備采用定期更換機(jī)械部件的維護(hù)策略。而導(dǎo)軌、軸承和絲杠等采用這種維護(hù)策略是不現(xiàn)實的,一旦精度下降或出現(xiàn)故障,根本無法修復(fù)。針對行業(yè)內(nèi)這種不科學(xué)、合理的維護(hù)策略,智能云科推出了機(jī)床體檢應(yīng)用。該應(yīng)用結(jié)合報文方式的機(jī)床數(shù)據(jù)采集方式,根據(jù)業(yè)務(wù)的需求,將需要采集的參數(shù)及所采集參數(shù)的頻率形成報文,從云平臺下發(fā)到邊緣設(shè)備或者數(shù)控系統(tǒng)。然后,根據(jù)報文定義采集數(shù)據(jù),并將采集到的數(shù)據(jù)送往云平臺進(jìn)行分析處理。
以西門子840D sl數(shù)控系統(tǒng)為例,通過邊緣設(shè)備進(jìn)行數(shù)據(jù)通信。根據(jù)機(jī)床體檢業(yè)務(wù)定義模型,制定了相關(guān)的參數(shù)化報文,并采用了JSON格式。機(jī)床體檢的業(yè)務(wù)報文包含高頻采集報文和低頻采集報文。
①高頻采集報文:通過高頻數(shù)據(jù)采集獲取西門子840D sl設(shè)備的主軸負(fù)載和主軸轉(zhuǎn)速等數(shù)據(jù)。報文定義如下。
{
"Id":2010,//報文ID
"name":"highFre",
//報文名稱,高頻采集
"rule":"time",
//報文規(guī)則,時間類型
"type":"local",
//報文類型,局部
"fre":50,
//采集頻率 50 ms
"paramSet":"siemens",
//所屬參數(shù)集
"para":[
"load",
//主軸負(fù)載
spindleSpeed
//主軸轉(zhuǎn)速
]
}
②低頻采集報文:通過低頻數(shù)據(jù)采集獲取西門子低頻采集840D sl機(jī)床狀態(tài)、進(jìn)給軸負(fù)載和進(jìn)給軸坐標(biāo)等數(shù)據(jù)。報文定義如下。
{
"Id":2011,
//報文ID
"name":"lowFre",
//報文名稱,低頻采集
"rule":"time",
//報文規(guī)則,時間類型
"type":"local",
//報文類型,局部
"fre":1000,
//采集頻率,1 000 ms
"paramSet":"siemens",
//所屬參數(shù)集
"para":[
"machineStatus",
//機(jī)床狀態(tài)
"axisLoad_X",
//X軸負(fù)載
"axisLoad_Y",
//Y軸負(fù)載
"axisLoad_Z",
//Z軸負(fù)載
"axisPos_X",
//X軸坐標(biāo)
"axisPos_Y",
//Y軸坐標(biāo)
"axisPos_Z"
//Z軸坐標(biāo)
]
}
將高頻、低頻采集報文下發(fā)到邊緣設(shè)備端,則邊緣設(shè)備端基于業(yè)務(wù)報文屬性采集西門子840D sl數(shù)控機(jī)床參數(shù)。將數(shù)據(jù)上報云平臺進(jìn)行數(shù)據(jù)分析處理,得到機(jī)床的體檢分析報告。西門子840D sl數(shù)控機(jī)床體檢分析結(jié)果如圖4所示。
圖4 西門子840D sl數(shù)控機(jī)床體檢分析結(jié)果Fig.4 Physical examination analysis results of siemens 840D sl CNC machine tool
本文介紹了一種基于報文的機(jī)床數(shù)據(jù)采集和分享方法。該方法定義了數(shù)據(jù)采集報文的內(nèi)容,并通過邊緣設(shè)備或數(shù)控機(jī)床來讀取報文,以此實現(xiàn)不同的數(shù)據(jù)采集與分享業(yè)務(wù)。本文闡述了本方法的系統(tǒng)架構(gòu)與報文的設(shè)計格式,描述了實現(xiàn)數(shù)控機(jī)床數(shù)據(jù)采集和數(shù)據(jù)
分享的流程,并以智能云科推出的機(jī)床體檢應(yīng)用對方法進(jìn)行了驗證。該方法能夠更加靈活地對不同數(shù)控機(jī)床進(jìn)行有針對性的數(shù)據(jù)采集和分享。