賴(lài)權(quán)輝 唐林杰 鐘家明
(1.佛山科學(xué)技術(shù)學(xué)院,廣東佛山 528255;2.佛山智能裝備技術(shù)研究院,廣東佛山 528255)
隨著通信技術(shù)的進(jìn)步,傳統(tǒng)制造業(yè)逐漸開(kāi)始向著智能制造過(guò)渡,其中智能制造的關(guān)鍵技術(shù)在于數(shù)控裝備與應(yīng)用系統(tǒng)的信息交互。由于數(shù)控裝備屬于多源異構(gòu)的系統(tǒng),數(shù)控裝備之間通信具有非常大的差異,沒(méi)有統(tǒng)一用于通信的現(xiàn)場(chǎng)總線(xiàn)的標(biāo)準(zhǔn),導(dǎo)致數(shù)據(jù)設(shè)備之間的信息交互以及數(shù)控裝備與應(yīng)用系統(tǒng)的信息交互變得困難。目前,在數(shù)控裝備互聯(lián)互通方面,國(guó)內(nèi)外都進(jìn)行了一定的探索和研究,國(guó)外設(shè)備通信協(xié)議主要有OPC UA協(xié)議等,國(guó)內(nèi)設(shè)備通信協(xié)議有NC-Link協(xié)議[1]等。
本文采用國(guó)內(nèi)自主研發(fā)的NC-Link技術(shù)開(kāi)發(fā)了一套機(jī)器人遠(yuǎn)程監(jiān)控系統(tǒng),該系統(tǒng)可以隨時(shí)訪(fǎng)問(wèn)不同品牌的機(jī)器人,實(shí)時(shí)讀取機(jī)器人的運(yùn)動(dòng)信息。隨著工業(yè)現(xiàn)代化進(jìn)程的加快,工業(yè)設(shè)備也越來(lái)越復(fù)雜,設(shè)備之間采用的通信協(xié)議不一樣,增加了統(tǒng)一管理設(shè)備數(shù)據(jù)的難度,為了更好地提高設(shè)備之間的協(xié)同能力,尋求不同設(shè)備之間建立簡(jiǎn)單的通信方法成為當(dāng)前的緊急任務(wù)。NC-Link采集系統(tǒng)的核心在于如何設(shè)計(jì)NC-Link適配器,NC-Link適配器可以將底層設(shè)備的實(shí)時(shí)數(shù)據(jù)以及歷史數(shù)據(jù)傳輸?shù)竭h(yuǎn)程客戶(hù)端上,最終實(shí)現(xiàn)設(shè)備的遠(yuǎn)程監(jiān)控功能[2]。該系統(tǒng)可以實(shí)現(xiàn)機(jī)器人的遠(yuǎn)程實(shí)時(shí)監(jiān)控,從而縮短停機(jī)時(shí)間,減少突發(fā)事故的發(fā)生,降低維護(hù)和維修成本,提高生產(chǎn)效率。
本文設(shè)計(jì)的機(jī)器人遠(yuǎn)程監(jiān)控系統(tǒng)分成三層,如圖1所示,第一層為設(shè)備層,中間層為NC-Link層,最上層為應(yīng)用層。
圖1 工業(yè)機(jī)器人遠(yuǎn)程監(jiān)控系統(tǒng)結(jié)構(gòu)圖
現(xiàn)場(chǎng)設(shè)備層主要由兩臺(tái)機(jī)器人構(gòu)成,提供數(shù)控系統(tǒng)所有的原始數(shù)據(jù),以及執(zhí)行應(yīng)用層的指令。NC-Link層由NC-Link適配器與NC-Link代理器組成,是NC-Link互通互聯(lián)的最核心部分。其中,NC-Link適配器負(fù)責(zé)從機(jī)器人中讀取運(yùn)行數(shù)據(jù),然后進(jìn)行格式解析和轉(zhuǎn)換,再將讀取出來(lái)的數(shù)據(jù)以統(tǒng)一的格式發(fā)送到NC-Link代理器,NC-Link適配器還能夠接收從NC-Link代理器傳來(lái)的信息,然后將信息發(fā)送給指定的數(shù)控裝備。
整個(gè)工業(yè)機(jī)器人的數(shù)據(jù)采集系統(tǒng)由數(shù)控裝備層、NC-Link層和應(yīng)用層組成,通過(guò)適配器與設(shè)備層的工業(yè)機(jī)器人進(jìn)行通信,適配器將數(shù)據(jù)上傳至MQTT服務(wù)器,路由器將信息傳輸至阿里云服務(wù)器端,通過(guò)阿里云服務(wù)器將工業(yè)機(jī)器人的監(jiān)控?cái)?shù)據(jù)發(fā)送給遠(yuǎn)程的監(jiān)控面板。
工業(yè)機(jī)器人與遠(yuǎn)程監(jiān)控客戶(hù)端通信的工作原理如圖2所示,API Server是基于NC-Link適配器開(kāi)發(fā)的一個(gè)微服務(wù)應(yīng)用程序,客戶(hù)端可以直接發(fā)送HTTP請(qǐng)求給API Server來(lái)實(shí)現(xiàn)和數(shù)控機(jī)床之間的通信功能。API Server和設(shè)備之間,通過(guò)MQTT服務(wù)器進(jìn)行數(shù)據(jù)交互,兩者需要分別與MQTT服務(wù)器建立連接。采用訂閱/發(fā)布的模式,設(shè)備和API Server會(huì)從MQTT Server訂閱相應(yīng)內(nèi)容的topic,MQTT Server接收到相應(yīng)的topic后推送相應(yīng)的數(shù)據(jù)內(nèi)容給發(fā)起訂閱的設(shè)備或者API Server。客戶(hù)端應(yīng)用從API Server通過(guò)HTTP請(qǐng)求/響應(yīng)的方式進(jìn)行數(shù)據(jù)交互,最終實(shí)現(xiàn)與設(shè)備的交互。
圖2 工業(yè)機(jī)器人與遠(yuǎn)程監(jiān)控客戶(hù)端的通信工作原理
適配器是客戶(hù)端和代理端與機(jī)器人進(jìn)行通信的橋梁。針對(duì)華數(shù)Ⅲ型機(jī)器人的二次開(kāi)發(fā)接口進(jìn)行適配器設(shè)計(jì),適配器從下到上分成三層:數(shù)據(jù)驅(qū)動(dòng)層、數(shù)據(jù)字典層、數(shù)據(jù)接口層。
數(shù)據(jù)驅(qū)動(dòng)層是應(yīng)用層與工業(yè)機(jī)器人進(jìn)行通信的橋梁,本文以華數(shù)Ⅲ型機(jī)器人為例,應(yīng)用層發(fā)送連接請(qǐng)求,適配器收到請(qǐng)求后,調(diào)用華數(shù)Ⅲ型機(jī)器人的二次開(kāi)發(fā)接口進(jìn)行連接。機(jī)器人調(diào)用華數(shù)Ⅲ型機(jī)器人的二次開(kāi)發(fā)接口連接函數(shù)isConnected(),不同的機(jī)器人需要調(diào)用不同的網(wǎng)絡(luò)接口函數(shù)。機(jī)器人連接代碼如圖3所示。
圖3 連接機(jī)器人代碼
數(shù)據(jù)字典層是對(duì)機(jī)器人的數(shù)據(jù)進(jìn)行統(tǒng)一的定義,設(shè)備模型是設(shè)備實(shí)體在信息空間的信息化映射。設(shè)備模型的評(píng)判標(biāo)準(zhǔn)是工業(yè)機(jī)器人主要部件的屬性信息和狀態(tài)數(shù)據(jù)都應(yīng)該展現(xiàn)出來(lái)。機(jī)器人的設(shè)備模型應(yīng)該包含以下設(shè)備信息:設(shè)備ID、類(lèi)型和名稱(chēng)等識(shí)別標(biāo)志信息,設(shè)備組成部件及部件的下屬組件的相關(guān)信息,設(shè)備軸數(shù)、通道數(shù)、切削速率等相關(guān)信息。
一個(gè)完整的數(shù)控裝備信息模型包括以下五類(lèi)對(duì)象,分別是根對(duì)象、設(shè)備對(duì)象、組件對(duì)象、數(shù)據(jù)對(duì)象以及采樣通道對(duì)象。根對(duì)象是模型中最外層的對(duì)象,包括其他的四類(lèi)對(duì)象,根對(duì)象主要包含信息模型的基本信息,比如信息模型的名稱(chēng)和唯一標(biāo)志;設(shè)備對(duì)象用于描述設(shè)備中的類(lèi)型、配置等相關(guān)信息;組件對(duì)象用于描述設(shè)備下組件的參數(shù);數(shù)據(jù)對(duì)象用于對(duì)數(shù)控設(shè)備的各類(lèi)相關(guān)參數(shù)以及采樣的數(shù)據(jù)進(jìn)行描述,其中包含可修改的數(shù)據(jù)和不可修改的數(shù)據(jù),可修改的數(shù)據(jù)除了可以查閱外還可以修改,不可修改的數(shù)據(jù)只能用來(lái)查閱;采樣通道對(duì)象主要用于描述數(shù)控設(shè)備中可以進(jìn)行采樣的數(shù)據(jù)以及對(duì)應(yīng)的采集周期。
根據(jù)信息交互模型和實(shí)際系統(tǒng)建立的工業(yè)機(jī)器人數(shù)據(jù)模型如圖4所示。
圖4 基于NC-Link的機(jī)器人數(shù)據(jù)模型
數(shù)據(jù)接口層的作用主要是與MQTT代理器或客戶(hù)端進(jìn)行數(shù)據(jù)交互。將應(yīng)用系統(tǒng)、代理器、適配器之間的通信規(guī)則統(tǒng)一稱(chēng)為NC-Link接口。NC-Link接口定義了8種通信接口,常用的有3種——模型偵測(cè)、數(shù)據(jù)查詢(xún)以及數(shù)據(jù)采樣[3]。機(jī)器人的模型偵測(cè)功能測(cè)試如圖5所示,數(shù)據(jù)查詢(xún)功能測(cè)試如圖6所示,數(shù)據(jù)采樣功能測(cè)試如圖7所示。
圖5 機(jī)器人的模型偵測(cè)功能測(cè)試
圖6 機(jī)器人的數(shù)據(jù)查詢(xún)功能測(cè)試
圖7 機(jī)器人的數(shù)據(jù)采樣功能測(cè)試
本文選擇B/S架構(gòu)作為通信的開(kāi)發(fā)架構(gòu),應(yīng)用MySQL數(shù)據(jù)庫(kù)技術(shù)存儲(chǔ)數(shù)據(jù)和提取報(bào)文數(shù)據(jù)。當(dāng)智能監(jiān)控模塊發(fā)送的數(shù)據(jù)被云端服務(wù)器接收時(shí),對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ),然后遠(yuǎn)程監(jiān)控客戶(hù)端將存儲(chǔ)的數(shù)據(jù)直觀地顯示在客戶(hù)端的人機(jī)界面上,從而完成服務(wù)器和客戶(hù)端的交互。
通過(guò)C#語(yǔ)言編程遠(yuǎn)程監(jiān)控客戶(hù)端的界面如圖8所示,通過(guò)連接阿里云服務(wù)器,從阿里云服務(wù)器讀取數(shù)據(jù)。遠(yuǎn)程監(jiān)控客戶(hù)端界面主要采集兩個(gè)機(jī)器人的位置信息和運(yùn)行狀態(tài)。
圖8 機(jī)器人遠(yuǎn)程監(jiān)控客戶(hù)端
在遠(yuǎn)程客戶(hù)端和適配器端增加時(shí)間戳,通過(guò)計(jì)算兩個(gè)時(shí)間戳之差測(cè)得單線(xiàn)程時(shí)延為3 ms。通過(guò)JMeter軟件進(jìn)行服務(wù)器的壓力測(cè)試,結(jié)果如表1所示。根據(jù)項(xiàng)目管理系統(tǒng)的需求,首先并發(fā)用戶(hù)數(shù)從1開(kāi)始逐漸增加到100,最大并發(fā)用戶(hù)數(shù)為500,滿(mǎn)足系統(tǒng)的要求[4]。
本文設(shè)計(jì)并實(shí)現(xiàn)了基于NC-Link協(xié)議的工業(yè)機(jī)器人的數(shù)據(jù)采集系統(tǒng),目標(biāo)在于實(shí)現(xiàn)不同的機(jī)器人協(xié)議到NC-Link標(biāo)準(zhǔn)協(xié)議的轉(zhuǎn)換,進(jìn)而實(shí)現(xiàn)不同品牌的工業(yè)機(jī)器人工業(yè)設(shè)備數(shù)據(jù)的遠(yuǎn)程監(jiān)控。
本文通過(guò)對(duì)數(shù)據(jù)采集接口進(jìn)行設(shè)計(jì),實(shí)現(xiàn)工業(yè)機(jī)器人不同協(xié)議的標(biāo)準(zhǔn)化,可以解決不同品牌機(jī)器人的差異性和協(xié)議的多樣性帶來(lái)的上位機(jī)多樣性問(wèn)題[5]。除此之外,系統(tǒng)測(cè)試表明,該系統(tǒng)采集數(shù)據(jù)的時(shí)延為3 ms,滿(mǎn)足網(wǎng)絡(luò)的性能要求。