艾杰 羅敏 葉亮亮 楊暢暢
摘 ?要:設(shè)計一款基于云平臺的數(shù)控機床遠程狀態(tài)監(jiān)控系統(tǒng).系統(tǒng)在局域網(wǎng)中通過FOCAS采集機床內(nèi)部運行狀態(tài)信息,使用云服務(wù)器、邊緣控制器和內(nèi)網(wǎng)穿透技術(shù)實現(xiàn)局域網(wǎng)信息上云和PMC程序云監(jiān)控.實驗結(jié)果表明,系統(tǒng)可提供遠程故障診斷、分析和排查等服務(wù).用戶可在便攜式設(shè)備上,方便地查看機床加工過程的實時狀態(tài).
關(guān)鍵詞:云平臺;遠程監(jiān)控;FOCAS;內(nèi)網(wǎng)穿透;邊緣控制器
[ ? 中圖分類號 ? ?]TP277; TP319; TP274 ? [ ? ?文獻標志碼 ? ] ?A
Remote Monitoring System of CNC Machine Tools
Based on Cloud Platform
AI Jie,LUO Min*,YE Liangliang,YANG Changchang
(School of Electrical & Information Engineering, Hubei University of Automotive Technology,
Shiyan 442002, China)
Abstract:Design a remote condition monitoring system for CNC machine tools based on cloud platform. The system collects the internal operation status information of machine tools through FOCAS in the LAN, and uses cloud server, edge controller and intranet penetration technology to realize the LAN information on the cloud and PMC program cloud monitoring. The experimental results show that the system can provide remote fault diagnosis, analysis and troubleshooting services. Users can conveniently view the real-time status of machine tool machining process on portable devices.
Key words:cloud platform; remote monitoring; focas; inner network penetration;
edge controller
數(shù)控機床作為工業(yè)生產(chǎn)中的重要加工設(shè)備,其主軸在加工過程中的功率、轉(zhuǎn)速等數(shù)據(jù),對刀具切削異常判斷、刀具斷刀判斷、能耗優(yōu)化研究等方面具有重要指導作用.[1]數(shù)控機床加工過程的實時監(jiān)控是實現(xiàn)加工車間信息化和網(wǎng)絡(luò)化的關(guān)鍵技術(shù)之一.[2]傳統(tǒng)數(shù)控加工過程由于缺乏有效的實時監(jiān)控,機床產(chǎn)生碰撞或報警后無法及時通知到位,可能會降低企業(yè)生產(chǎn)的效率,造成不必要的經(jīng)濟損失.[3]針對數(shù)控設(shè)備的信息采集與實時監(jiān)控,李飛[4]提出基于PLC的生產(chǎn)設(shè)備數(shù)據(jù)采集方案.吳雙玉 [5] 等利用傳感器和開放式通信接口技術(shù),實現(xiàn)了制造車間設(shè)備遠程監(jiān)控系統(tǒng)開發(fā).鄭曉虎[6] 等基于MTConnect協(xié)議,為不同廠家的設(shè)備提供了統(tǒng)一的通信接口,并應(yīng)用于設(shè)備監(jiān)控.聞帥杰[7] 等基于OPC UA實現(xiàn)了數(shù)控裝備之間的互聯(lián)互通.高羅卿[8] 等使用FOCAS實現(xiàn)了大型精密工件在線測量與監(jiān)控系統(tǒng)的設(shè)計,將狀態(tài)監(jiān)控、車間設(shè)備信息自動化采集與工業(yè)互聯(lián)網(wǎng)、工業(yè)云平臺相結(jié)合,對實現(xiàn)工業(yè)數(shù)字化、網(wǎng)絡(luò)化、智能化具有重要意義.本文針對數(shù)控機床對智能監(jiān)控的需求,將云平臺技術(shù)、內(nèi)網(wǎng)穿透技術(shù)、Web服務(wù)器與多線程技術(shù)、網(wǎng)頁設(shè)計技術(shù)、消息隊列技術(shù)和數(shù)據(jù)庫持久化技術(shù)結(jié)合起來,利用邊緣控制器在邊緣處理數(shù)據(jù),實現(xiàn)數(shù)控機床動態(tài)能耗、系統(tǒng)參數(shù)、位置信息、報警狀態(tài)和PMC信號等關(guān)鍵狀態(tài)信息的云監(jiān)控,用戶可在便攜式設(shè)備上方便地查看機床工作過程及實時狀態(tài).
1 系統(tǒng)總體設(shè)計
1.1 開發(fā)環(huán)境
FOCAS是機床與應(yīng)用程序進行通信的基礎(chǔ),可降低數(shù)控系統(tǒng)內(nèi)部數(shù)據(jù)采集的成本.FOCAS(FANUC Open CNC API Specifications)位于傳輸層協(xié)議之上,它是計算機用于專門與CNC/PMC做數(shù)據(jù)交換的接口.FOCAS可在HSSB和以太網(wǎng)進行數(shù)據(jù)傳輸,為提高CPU的訪問效率,它采用結(jié)構(gòu)體成員四字節(jié)對齊的策略,提供fwlibe1.dll和fwlibe64.dll供32或64位應(yīng)用程序調(diào)用.[9]本系統(tǒng)使用Java語言開發(fā)了64位服務(wù)器應(yīng)用程序,將其打包成.exe文件放于Windows系統(tǒng)直接運行.服務(wù)器程序利用JNA完成FOCAS與Java中的數(shù)據(jù)類型轉(zhuǎn)換和接口聲明工作,最終實現(xiàn)對CK0628數(shù)控車床信息的自動化采集.系統(tǒng)以配備FANUC 0i-TD數(shù)控系統(tǒng)的CK0628數(shù)控車床為監(jiān)控目標,開發(fā)所需硬件為TL-WR842N路由器和研華AMAX-5580信息采集設(shè)備.軟件為Windows 7 64bit操作系統(tǒng),JDK 1.8.0_261服務(wù)器開發(fā)環(huán)境,Node.js v14.11.0界面開發(fā)環(huán)境,Mysql 5.7數(shù)據(jù)庫,RabbitMQ 3.9.7消息隊列,F(xiàn)rp 0.34.1內(nèi)網(wǎng)穿透.
1.2 總體架構(gòu)
系統(tǒng)設(shè)計的總體架構(gòu)如圖1所示,分為感知層、傳輸層和應(yīng)用層.[10-12]感知層信息采集硬件設(shè)備選擇研華工業(yè)物聯(lián)網(wǎng)邊緣控制器AMAX-5580,AMAX-5580可運行Windows 7/10 64位操作系統(tǒng),融合了PLC控制技術(shù)與PC信息化技術(shù).它將PLC控制器、PC、網(wǎng)關(guān)、運動控制、I/O數(shù)據(jù)采集、現(xiàn)場總線協(xié)議、機器視覺、設(shè)備聯(lián)網(wǎng)等多領(lǐng)域功能集成于同一平臺,同時實現(xiàn)設(shè)備運動控制、機器視覺、設(shè)備預測維護、設(shè)備聯(lián)網(wǎng)、數(shù)據(jù)分析和優(yōu)化控制.AMAX-5580可直接對接工業(yè)云平臺,在邊緣側(cè)協(xié)同遠程工業(yè)云平臺實現(xiàn)智能生產(chǎn)線控制;傳輸層選擇高速以太網(wǎng)進行數(shù)據(jù)傳輸,保證信息的實時性和安全性;應(yīng)用層使用騰訊云輕量應(yīng)用服務(wù)器作為云存儲和云計算的支撐平臺,對外提供界面訪問、消息緩存和遠程PMC程序調(diào)試等功能.采集的重要加工信息經(jīng)過消息隊列緩存后被消費者消費,最終存儲到Mysql數(shù)據(jù)庫.
1.3 網(wǎng)絡(luò)結(jié)構(gòu)
系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,機床與邊緣控制器所連接的TL-WR842N路由器,通過無線橋接的方式連接到局域網(wǎng)網(wǎng)關(guān),最終接入到互聯(lián)網(wǎng).機床路由器在無線橋接的狀態(tài)下,其DHCP功能必須關(guān)閉.邊緣控制器、數(shù)控機床和機床路由器的IP地址需劃分到同一局域網(wǎng)網(wǎng)段,且三者默認網(wǎng)關(guān)的IP地址應(yīng)為局域網(wǎng)網(wǎng)關(guān)LAN口的IP地址(一般默認為私有地址192.168.1.1).
信息監(jiān)控服務(wù)器通過權(quán)限認證來保證其接口的安全性,與內(nèi)網(wǎng)穿透軟件一起運行在邊緣控制器上,內(nèi)網(wǎng)穿透軟件會代理云服務(wù)器特定端口的流量并將其轉(zhuǎn)發(fā)到監(jiān)控服務(wù)器.Web界面置于云端Nginx服務(wù)器之上,用戶訪問界面時,會產(chǎn)生數(shù)據(jù)拉取請求,這些請求會被轉(zhuǎn)發(fā)給局域網(wǎng)中的信息監(jiān)控服務(wù)器,服務(wù)器做出響應(yīng),從而實現(xiàn)信息上云.
2 軟件設(shè)計
2.1 監(jiān)控服務(wù)器設(shè)計
監(jiān)控服務(wù)器進行信息采集使用到的主要FOCAS API見表1.FOCAS Library中的接口支持多線程調(diào)用,且每一個線程利用cnc_allclibhndl3與機床創(chuàng)建的TCP連接都會被分配一個單獨的句柄號,該句柄號會保留到應(yīng)用程序終止,除非手動釋放.此句柄號也只能被獲得它的線程使用,其他線程使用會報句柄錯誤,申請到的句柄在不用時必須釋放,否則將無法繼續(xù)分得句柄.[9]
為提高通信效率,防止服務(wù)器頻繁地與機床建立、銷毀連接,監(jiān)控服務(wù)器創(chuàng)建了線程池,通過cnc_allclibhndl3預先建立線程與機床的TCP連接,利用Java中的ThreadLocal存儲線程獲取句柄號,讓線程池里的線程與機床進行交互,異步完成信息采集任務(wù).此方法可解決FOCAS單線程綁定的問題,防止句柄錯誤發(fā)生,該錯誤的返回狀態(tài)碼為EW_HANDLE.
監(jiān)控服務(wù)器的工作邏輯如圖3所示,信息采集請求分為后臺采集請求和用戶采集請求.服務(wù)器收到開啟后臺監(jiān)控的請求后,進行后臺信息采集,通過cnc_rddynamic2獲取當前正在運行的NC程序,利用字符串處理函數(shù)提取NC程序中的進給率、刀具號等工序和工藝參數(shù),聯(lián)合實際加工信息,一起存儲到數(shù)據(jù)庫.采集的時間頻率由服務(wù)器決定,采集過程不需要客戶端界面的參與.服務(wù)器收到其他信息獲取請求后,進行用戶采集.以位置信息為例,通過cnc_rdposition獲取位置信息,進行數(shù)據(jù)處理后以Json數(shù)據(jù)格式返回.其他信息的獲取與位置信息的獲取流程類似.客戶端界面發(fā)起請求的頻率決定了信息采集的頻率.
2.2 數(shù)據(jù)持久化方案
數(shù)據(jù)存儲為提高效率,選擇消息隊列和數(shù)據(jù)庫相結(jié)合的方案.后臺采集的信息,通過網(wǎng)絡(luò)傳輸?shù)皆贫说南㈥犃羞M行緩存,在云端部署消費者對此消息隊列進行監(jiān)聽,將緩存的數(shù)據(jù)消費并存儲到數(shù)據(jù)庫中.數(shù)據(jù)存儲表中的主要字段如表2所示.在消費者進行消費時,數(shù)據(jù)中主軸轉(zhuǎn)速為0時的數(shù)據(jù)不會被存儲.用戶可通過這些持久化的數(shù)據(jù)查看歷史加工情況,以便還原或發(fā)現(xiàn)切削中的問題.
2.3 圖形面板設(shè)計
監(jiān)控服務(wù)器的軟件界面是使用Vue.js框架設(shè)計的一個單頁面應(yīng)用,風格參考數(shù)控機床的操作畫面.用戶登錄并連接機床后顯示該畫面,畫面切換使用嵌套路由,可通過點擊右側(cè)按鈕和畫面底部小方塊切換畫面,類似于機床上的操作.右側(cè)底部擴展面板用于封裝一些維護常用的功能,如報警清除、模式切換等功能,這些功能一般需要結(jié)合PMC編程一起實現(xiàn),多使用R寄存器作為控制寄存器.圖4為系統(tǒng)畫面組成結(jié)構(gòu),包含了監(jiān)控系統(tǒng)的所有子頁面的分布情況.
3 對接云平臺
3.1 云服務(wù)器配置
系統(tǒng)采用騰訊云輕量應(yīng)用服務(wù)器作為云計算和云存儲的平臺.該云服務(wù)器以CentOS 7為操作系統(tǒng),配備雙核CPU、4G運行內(nèi)存和6 Mbps網(wǎng)絡(luò)帶寬.系統(tǒng)使用的所有軟件,除frp server,均使用Docker容器化部署.云服務(wù)器防火墻主要為Frp server,Mysql,RabbitMQ,Nginx等應(yīng)用程序,開放對外訪問端口,也對局域網(wǎng)監(jiān)控服務(wù)器代理端口和機床以太網(wǎng)TCP連接代理端口開放.
3.2 內(nèi)網(wǎng)穿透應(yīng)用
數(shù)控機床一般只能在局域網(wǎng)中使用客戶端軟件進行遠程連接,使用的IP地址為私有IP.內(nèi)網(wǎng)穿透又稱NAT穿透,它可以將內(nèi)網(wǎng)的服務(wù)安全地暴露到公網(wǎng),適用于工業(yè)場景.實現(xiàn)內(nèi)網(wǎng)穿透,可以選擇使用公網(wǎng)IP盒子或內(nèi)網(wǎng)穿透軟件,需要公網(wǎng)服務(wù)器進行代理.由于邊緣控制器的存在,為了節(jié)約成本,選用內(nèi)網(wǎng)穿透軟件frp來實現(xiàn)代理,其工作原理如圖5所示.
frp分為Client端和Server端,frp client通過token認證連接到frp server.在frp client的frpc.ini配置文件上可配置本地被代理的IP地址、端口號以及云端指定的代理端口,代理端口必須在防火墻中放行.配置完畢后,用戶訪問云端代理端口的流量會被轉(zhuǎn)發(fā)到局域網(wǎng)中被代理的IP和端口,從而實現(xiàn)遠程訪問.
3.3 PMC程序云監(jiān)控實現(xiàn)
PMC程序的云監(jiān)控可大大提高數(shù)控機床的遠程可維護性,借助內(nèi)網(wǎng)穿透技術(shù)、云服務(wù)器和PMC編程軟件,可直接代理機床的以太網(wǎng)TCP連接端口,實現(xiàn)PMC程序云監(jiān)控.直接進行TCP的代理是不安全的,因此,必須使用frp中的stcp(secret tcp)安全地暴露內(nèi)網(wǎng)服務(wù).[13]stcp以sk為密匙,只有密匙正確才能正常訪問,服務(wù)只暴露給特定用戶,不需要配置防火墻的對外開放端口.使用stcp實現(xiàn)PMC程序云監(jiān)控分為以下步驟:
(1)客戶端上再運行一個frp client,該客戶端必須是能運行FANUC LADDER梯形圖編程軟件的臺式或筆記本電腦,用于監(jiān)控機床的PMC程序.
(2)按照表3所示的基本配置和解釋,修改邊緣控制器frpc.ini與客戶端電腦frp.ini.邊緣控制器側(cè),local_ip為局域網(wǎng)機床的私有IP地址,local_port為該機床在以太網(wǎng)上通信的TCP端口號;客戶端側(cè),bind_addr和bind_port為實際應(yīng)訪問的IP地址和端口號,server_name為注冊在frp server中需要訪問的stcp代理名.
(3)使用FANUC LADDER III連接到PMC程序,連接的Host為實際應(yīng)訪問的IP地址127.0.0.1,端口號為8193.連接請求會被代理到邊緣控制器上的frp client,并最終轉(zhuǎn)發(fā)到局域網(wǎng)機床,從而實現(xiàn)PMC梯形圖程序的云監(jiān)控和診斷.
4 系統(tǒng)應(yīng)用與測試
系統(tǒng)測試機床部分重要狀態(tài)信息和加工能耗的監(jiān)控情況.實驗結(jié)果表明,信息監(jiān)控顯示的信息與機床內(nèi)部信息一致,能準確反映出機床對應(yīng)信息的真實情況;能耗監(jiān)控主要對主軸的實際功率和轉(zhuǎn)速進行實時監(jiān)測;圖表最多顯示最近的150條功率數(shù)據(jù),可通過點擊按鈕改變監(jiān)控狀態(tài)、跳轉(zhuǎn)歷史數(shù)據(jù)或開啟后臺監(jiān)控并存儲加工數(shù)據(jù).
5 結(jié)論
以FOCAS為通信基礎(chǔ),提出一種基于云平臺的數(shù)控機床遠程監(jiān)控方案.該方案以云平臺、內(nèi)網(wǎng)穿透技術(shù)和邊緣控制器為主要工具,解決了加工數(shù)據(jù)無法保存、機床狀態(tài)診斷受地域因素制約等問題,方案具有以下特點:
(1)使用邊緣控制器與云平臺相結(jié)合,在邊緣側(cè)進行信息處理和信息上云,具有可靠性高、操作方便的優(yōu)點,可實現(xiàn)設(shè)備遠程維護.
(2)利用FOCAS在以太網(wǎng)上與機床進行通信,可輕松擴展至多臺FANUC數(shù)控系統(tǒng)設(shè)備,節(jié)約了實際成本,降低了部署的復雜度.
(3)實現(xiàn)了手機、電腦的多端機床狀態(tài)云監(jiān)控信息查看和PMC程序遠程監(jiān)控及調(diào)試,提高了設(shè)備的遠程可維護性.
[參考文獻]
[1] 詹曉秋. 基于MTConnect的數(shù)控設(shè)備數(shù)據(jù)采集及刀具切削異常檢測方法研究[D]. 杭州:浙江大學, 2021.
[2] 王太勇, 喬志峰, 韓志國, 等. 高檔數(shù)控裝備的發(fā)展趨勢[J]. 中國機械工程, 2011, 22(10): 1247-1252+1259.
[3] 胡輝, 洪忠杰. 數(shù)控機床防碰撞及碰撞保護技術(shù)研究與應(yīng)用[J]. 世界制造技術(shù)與裝備市場, 2022(02): 46-48+51.
[4] 李飛. 基于PLC的生產(chǎn)設(shè)備數(shù)據(jù)采集與遠程監(jiān)控系統(tǒng)設(shè)計[J]. 電子技術(shù)與軟件工程, 2022(06): 223-226.
[5] 吳雙玉, 陸藝, 郭斌. 制造車間設(shè)備遠程監(jiān)控系統(tǒng)開發(fā)[J]. 儀表技術(shù)與傳感器, 2021(06): 72-76.
[6] 鄭曉虎, 劉強, 孫鵬鵬, 等. 基于MTConnect的機床遠程多功能監(jiān)控系統(tǒng)[J]. 組合機床與自動化加工技術(shù), 2018(10): 80-84.
[7] 聞帥杰. 基于OPC UA的數(shù)控裝備互聯(lián)互通研究[D]. 重慶:重慶大學, 2020.
[8] 高羅卿, 冒益海, 王曉峰,等. 基于FANUC FOCAS的大型精密工件在線測量與監(jiān)控系統(tǒng)設(shè)計[J]. 制造技術(shù)與機床, 2020(08): 122-126.
[9] 北京發(fā)那科機電有限公司. FANUC FOCAS1/2 Library[Z].
[10] 黃少華, 郭宇, 查珊珊, 等. 離散車間制造物聯(lián)網(wǎng)及其關(guān)鍵技術(shù)研究與應(yīng)用綜述[J]. 計算機集成制造系統(tǒng), 2019, 25(02): 284-302.
[11] 張帝, 汪嬋, 周小杰, 等. 井下突水監(jiān)測及預警系統(tǒng)的設(shè)計與實現(xiàn)[J]. 牡丹江師范學院學報:自然科學版, 2022 (01): 47-53.
[12] 譚峰, 薛齡季軒, 姜珊, 等. 基于云平臺的棚室環(huán)境遠程監(jiān)控系統(tǒng)[J]. 牡丹江師范學院學報:自然科學版, 2017 (02): 6-10.
[13] Frp Offical. Frp Docs[EB/OL]. https://gofrp.org/docs/, 2020(10).
編輯:琳莉