徐建明,潘湘飛
(浙江工業(yè)大學(xué) 信息工程學(xué)院,杭州 310023)
基于Socket通信的工業(yè)機(jī)器人監(jiān)控系統(tǒng)研究
徐建明,潘湘飛
(浙江工業(yè)大學(xué) 信息工程學(xué)院,杭州 310023)
針對(duì)Epson-G6和Staubli-TX90工業(yè)機(jī)器人,研究一種基于Socket通信的工業(yè)機(jī)器人監(jiān)控系統(tǒng);系統(tǒng)分為本地監(jiān)控端和Web遠(yuǎn)程監(jiān)控端;基于TCP協(xié)議和Socket通信技術(shù),編寫了機(jī)器人控制器服務(wù)端程序和MFC類庫(kù)開發(fā)的客戶端程序,客戶端分為通訊功能模塊,末端坐標(biāo)軌跡存儲(chǔ)模塊和基于OpenGL類庫(kù)的運(yùn)動(dòng)姿態(tài)展現(xiàn)模塊;在此基礎(chǔ)上, 基于J2EE架構(gòu)和WebSocket通信協(xié)議編寫了Web遠(yuǎn)程監(jiān)控端程序,分為用戶管理模塊和實(shí)時(shí)監(jiān)控模塊;系統(tǒng)實(shí)現(xiàn)了機(jī)器人末端坐標(biāo)軌跡的采集并遠(yuǎn)程存儲(chǔ)至PostgreSQL數(shù)據(jù)庫(kù),同時(shí)通過逆運(yùn)動(dòng)學(xué)計(jì)算展現(xiàn)了機(jī)器人三維運(yùn)動(dòng)姿態(tài),并在Web頁(yè)面以動(dòng)態(tài)曲線方式監(jiān)控機(jī)器人的末端坐標(biāo)軌跡。
工業(yè)機(jī)器人;Socket通信;J2EE架構(gòu);WebSocket協(xié)議;遠(yuǎn)程監(jiān)控
隨著工業(yè)自動(dòng)化的發(fā)展,在工業(yè)生產(chǎn)中,工業(yè)機(jī)器人已經(jīng)成為一種像數(shù)控機(jī)床一樣必不可少的設(shè)備。中國(guó)制造2025規(guī)劃提出中國(guó)制造業(yè)需要逐步升級(jí)到工業(yè)4.0時(shí)代。工業(yè)4.0的顯著標(biāo)志是“互聯(lián)網(wǎng)+制造業(yè)”,其中重要一環(huán)便是推動(dòng)工業(yè)機(jī)器人在工業(yè)生產(chǎn)中的大量應(yīng)用,并通過互聯(lián)網(wǎng)絡(luò)實(shí)現(xiàn)機(jī)器人間的互聯(lián)互通。因而研究針對(duì)工業(yè)機(jī)器人的遠(yuǎn)程監(jiān)控系統(tǒng)顯得越來(lái)越重要。
目前工業(yè)自動(dòng)化領(lǐng)域?qū)ΡO(jiān)控系統(tǒng)的研究多采用C/S模式。張愛民等人基于Socket套接字設(shè)計(jì)了一種工業(yè)機(jī)器人遠(yuǎn)程監(jiān)控與診斷系統(tǒng)[1],實(shí)現(xiàn)對(duì)現(xiàn)場(chǎng)工業(yè)機(jī)器人運(yùn)行狀態(tài)信息的查看。然而采用C/S模式的系統(tǒng),客戶端必須安裝相應(yīng)的軟件,使得系統(tǒng)的擴(kuò)展性和維護(hù)性不高。飽勝利等人提出一種采用B/S模式基于J2EE架構(gòu)的實(shí)時(shí)監(jiān)控系統(tǒng),實(shí)現(xiàn)對(duì)卷包生產(chǎn)車間設(shè)備實(shí)時(shí)數(shù)據(jù)的遠(yuǎn)程監(jiān)控[2]。浙江大學(xué)的駱曉娟等人提出一種采用Ajax和B/S構(gòu)架的實(shí)時(shí)監(jiān)測(cè)系統(tǒng),基于.Net平臺(tái)利用Ajax技術(shù)在Web頁(yè)面實(shí)現(xiàn)對(duì)監(jiān)測(cè)數(shù)據(jù)的實(shí)時(shí)動(dòng)態(tài)顯示[3]。采用B/S模式的系統(tǒng),軟件安裝,維護(hù)和升級(jí)更加容易,客戶端只需擁有瀏覽器即可訪問系統(tǒng)。如果將B/S模式引入基于傳統(tǒng)C/S模式的機(jī)器人監(jiān)控系統(tǒng)能夠大大提高系統(tǒng)的維護(hù)性和擴(kuò)展性。
本文以STAUBLI-TX90和EPSON-G6為監(jiān)控對(duì)象,基于“C/S+B/S”模式研究一種工業(yè)機(jī)器人遠(yuǎn)程監(jiān)控系統(tǒng)。系統(tǒng)分為本地監(jiān)控端和Web遠(yuǎn)程監(jiān)控端,本地監(jiān)控端基于TCP協(xié)議,采用Socket編程接口和多線程架構(gòu)實(shí)現(xiàn)與工業(yè)機(jī)器人的通信。Web遠(yuǎn)程監(jiān)控端基于J2EE架構(gòu),后端程序采用SSH框架和WebSocket通信協(xié)議編程,前端JSP頁(yè)面采用JQuery EasyUI框架設(shè)計(jì)。頁(yè)面基于Ajax異步方式請(qǐng)求非實(shí)時(shí)數(shù)據(jù),基于WebSocket通信協(xié)議請(qǐng)求實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)。WebSocket是HTML5新標(biāo)準(zhǔn)中的Web通信機(jī)制,能夠在瀏覽器和服務(wù)器間建立長(zhǎng)連接,實(shí)現(xiàn)穩(wěn)定全雙工實(shí)時(shí)通信,相對(duì)于Ajax輪詢方式更加高效[4]。
整個(gè)系統(tǒng)對(duì)STAUBLI-TX90和EPSON-G6工業(yè)機(jī)器人的監(jiān)控分為兩個(gè)部分:本地監(jiān)控和Web遠(yuǎn)程監(jiān)控。整個(gè)系統(tǒng)連接框圖如圖1所示。
圖2 MFC客戶端多線程通信流程框圖
圖1 系統(tǒng)連接框圖
本地監(jiān)控部分將STAUBLI-TX90控制器和EPSON-G6控制器通過以太網(wǎng)端口接入交換機(jī),本地監(jiān)控主機(jī)與交換機(jī)通過網(wǎng)線連接,基于TCP/IP協(xié)議,使用Socket采集機(jī)器人末端坐標(biāo)軌跡并存儲(chǔ)到遠(yuǎn)程服務(wù)器的數(shù)據(jù)庫(kù)中;Web遠(yuǎn)程監(jiān)控部分由遠(yuǎn)程服務(wù)器和瀏覽器客戶端組成,機(jī)器人實(shí)時(shí)數(shù)據(jù)監(jiān)控采用WebSocket通信機(jī)制。使用Tomcat7作為Web應(yīng)用服務(wù)器,部署基于J2EE架構(gòu)開發(fā)的遠(yuǎn)程監(jiān)控程序。程序部署完成,用戶通過瀏覽器能夠?qū)崟r(shí)訪問機(jī)器人的監(jiān)控?cái)?shù)據(jù)。
本地監(jiān)控端采用C/S(客戶/服務(wù)器)模式,將機(jī)器人控制器作為通信服務(wù)端,將基于MFC[5]類庫(kù)開發(fā)的C++程序作為通信客戶端,C++語(yǔ)言操作硬件更加容易,而且軟件易于維護(hù)。MFC客戶端主要有3個(gè)核心功能:與工業(yè)機(jī)器人的通信,工業(yè)機(jī)器人末端坐標(biāo)軌跡的遠(yuǎn)程存儲(chǔ),工業(yè)機(jī)器人三維運(yùn)動(dòng)姿態(tài)的實(shí)時(shí)展現(xiàn)。
2.1 機(jī)器人通信服務(wù)端實(shí)現(xiàn)
將STAUBLI-TX90和EPSON-G6的機(jī)器人控制器作為通信服務(wù)端,首先打開網(wǎng)絡(luò)通信端口,設(shè)置控制器為服務(wù)端,偵聽客戶端的連接,使程序變?yōu)樽枞麪顟B(tài),一旦檢測(cè)到客戶端連接完成,程序繼續(xù)執(zhí)行,創(chuàng)建兩條同步任務(wù),在機(jī)器人運(yùn)行到目標(biāo)點(diǎn)的同時(shí)發(fā)送機(jī)器人當(dāng)前實(shí)時(shí)末端坐標(biāo)給客戶端。
2.2 MFC客戶端實(shí)現(xiàn)
2.2.1 通信功能
MFC監(jiān)控客戶端通信功能實(shí)現(xiàn)基于Socket接口編程,程序架構(gòu)為多線程架構(gòu)。MFC中線程分為兩種:界面(用戶接口)線程和工作線程。前者用來(lái)獨(dú)立地處理用戶輸入和響應(yīng)用戶事件,后者用于后臺(tái)任務(wù)[6]。監(jiān)控客戶端在界面線程創(chuàng)建套接字,獲取機(jī)器人控制器地址和端口號(hào),建立與機(jī)器人的連接,在工作子線程完成接收數(shù)據(jù)工作,提高系統(tǒng)效率。同時(shí)使用兩個(gè)套接字分別與兩臺(tái)工業(yè)機(jī)器人建立連接,彼此間互不影響。監(jiān)控客戶端多線程通信的程序流程框圖如圖2所示。左側(cè)為界面線程的程序流程圖,右側(cè)為機(jī)器人工作子線程的程序流程圖。
界面線程和工作子線程間通信基于MFC消息映射機(jī)制。當(dāng)界面線程與機(jī)器人控制器連接通信成功后調(diào)用PostThreadMessage()函數(shù)向工作子線程發(fā)送UM_WORK通知消息,并將該消息放入消息隊(duì)列,工作子線程在While循環(huán)條件中通過PeekMessage()函數(shù)不斷檢查消息隊(duì)列中是否有界面線程的UM_WORK通知消息,一旦檢測(cè)到此消息,使用Recv()函數(shù)將接收到的機(jī)器人末端坐標(biāo)數(shù)據(jù)封裝到RecvBuf()字符數(shù)組中,使用SendMessage()函數(shù)將RecvBuf作為消息參數(shù)發(fā)送通知消息到界面線程的各功能模塊。根據(jù)消息映射機(jī)制界面線程會(huì)調(diào)用對(duì)應(yīng)的消息響應(yīng)函數(shù)。
子線程向界面線程發(fā)送的通知消息主要有3個(gè):WM_RECVDATA消息調(diào)用主窗口的OnRecvData()函數(shù)顯示采集到的機(jī)器人末端坐標(biāo)數(shù)據(jù);WM_SQLWRITE消息調(diào)用主窗口的OnSqlWrite()函數(shù),向遠(yuǎn)程數(shù)據(jù)庫(kù)寫入采集到的機(jī)器人末端坐標(biāo)數(shù)據(jù),實(shí)現(xiàn)機(jī)器人末端坐標(biāo)軌跡的遠(yuǎn)程存儲(chǔ);WM_OPENGLRECV消息調(diào)用運(yùn)動(dòng)學(xué)子窗口的OnOpenGLRecv()函數(shù),實(shí)現(xiàn)機(jī)器人三維運(yùn)動(dòng)姿態(tài)的實(shí)時(shí)展現(xiàn)。
MFC客戶端主窗口界面如圖3所示。界面上方為EPSON-G6通信部分,下方為STAUBLI-TX90通信部分。在通信信息中設(shè)置機(jī)器人控制器的IP地址和端口號(hào),在界面右側(cè)設(shè)置EPSON-G6和STAUBLI- TX90機(jī)器人的目標(biāo)坐標(biāo)位置。
圖3 主窗口運(yùn)行界面
2.2.2 末端坐標(biāo)軌跡存儲(chǔ)
監(jiān)控客戶端將機(jī)器人在笛卡爾空間的末端坐標(biāo)軌跡存儲(chǔ)到遠(yuǎn)程服務(wù)器的PostgreSQL數(shù)據(jù)庫(kù)中,PostgreSQL相對(duì)于MySQL數(shù)據(jù)庫(kù)而言,在高并發(fā)和大數(shù)據(jù)量情況下處理速度更快。相對(duì)于ODBC,DAO等數(shù)據(jù)庫(kù)訪問技術(shù),ADO訪問數(shù)據(jù)源更加高效方便并支持遠(yuǎn)程數(shù)據(jù)庫(kù)的訪問,因此監(jiān)控客戶端采用ADO方式訪問遠(yuǎn)程數(shù)據(jù)庫(kù)[]。
首先在數(shù)據(jù)庫(kù)中創(chuàng)建兩張機(jī)器人數(shù)據(jù)表epson和staubli,分別用來(lái)存儲(chǔ)EPSON-G6和STAUBLI-TX90的末端坐標(biāo)軌跡。調(diào)用AfxOleInit()函數(shù)初始化OLE/COM庫(kù),創(chuàng)建_ConnectionPtr對(duì)象,通過該對(duì)象的Open()方法建立與遠(yuǎn)程數(shù)據(jù)庫(kù)的連接,當(dāng)子線程向界面線程發(fā)送WM_SQLWRITE消息時(shí),該消息會(huì)調(diào)用OnSqlWrite()響應(yīng)函數(shù),在該函數(shù)中通過_RecordsetPtr對(duì)象的PutCollect()方法將機(jī)器人末端坐標(biāo)軌跡寫入機(jī)器人數(shù)據(jù)表。
2.2.3 三維運(yùn)動(dòng)姿態(tài)展現(xiàn)
根據(jù)采集到的機(jī)器人末端坐標(biāo)軌跡,使用OpenGL類庫(kù)和運(yùn)動(dòng)學(xué)計(jì)算展現(xiàn)機(jī)器人的三維運(yùn)動(dòng)姿態(tài)。OpenGL是一種快速、高質(zhì)量的開放三維圖形程序庫(kù),VC6.0繼承了OpenGL的圖形標(biāo)準(zhǔn),方便了程序設(shè)計(jì)人員實(shí)現(xiàn)三維圖像的顯示[8]。
在運(yùn)動(dòng)學(xué)子窗口的OnCreate()函數(shù)中調(diào)用InitOpenGL()函數(shù)設(shè)置窗口像素格式,繪圖設(shè)備上下文等,完成OpenGL環(huán)境的初始化。在RenderStockScence()函數(shù)中繪制坐標(biāo)軸,地面等靜態(tài)場(chǎng)景的三維模型,在RenderRobot()函數(shù)中根據(jù)機(jī)器人各軸連桿變換關(guān)系繪制機(jī)器人三維模型,將機(jī)器人各關(guān)節(jié)角的值定義為全局變量。當(dāng)工作子線程向界面線程發(fā)送WM_OPENGLRECV消息時(shí),系統(tǒng)會(huì)調(diào)用OnOpenGLRecv()消息響應(yīng)函數(shù),在該函數(shù)中調(diào)用逆運(yùn)動(dòng)學(xué)函數(shù)Invkinematics()傳入機(jī)器人末端坐標(biāo),計(jì)算出當(dāng)前時(shí)刻機(jī)器人各關(guān)節(jié)角的值,通過SetJointAngle()函數(shù)將計(jì)算出的值設(shè)定給關(guān)節(jié)角的全局變量。使用InvalidateRect()函數(shù)重繪窗口,實(shí)現(xiàn)機(jī)器人三維模型的實(shí)時(shí)運(yùn)動(dòng),EPSON-G6和STAUBLI-TX90的實(shí)時(shí)運(yùn)動(dòng)姿態(tài)分別如圖4和圖5所示。
圖4 EPSON-G6三維運(yùn)動(dòng)學(xué)姿態(tài)
圖5 STAUBLI-TX90三維運(yùn)動(dòng)學(xué)姿態(tài)
WEB遠(yuǎn)程監(jiān)控端采用B/S(瀏覽器/服務(wù)器)架構(gòu),基于MVC模式[9]設(shè)計(jì),使用Tomcat7作為Web服務(wù)器。后端程序整合Struts2,Spring,Hibernate框架[10]和WebSocket通信機(jī)制實(shí)現(xiàn),前端UI界面使用JQuery EasyUI[11]完成。系統(tǒng)使用分層思想,主要分成五層:數(shù)據(jù)庫(kù)層,數(shù)據(jù)持久層,業(yè)務(wù)邏輯層,表現(xiàn)層和客戶層。遠(yuǎn)程監(jiān)控架構(gòu)框圖如圖6所示。系統(tǒng)主要分為:用戶管理模塊和實(shí)時(shí)監(jiān)控模塊。數(shù)據(jù)持久層使用Hibernate框架,負(fù)責(zé)與數(shù)據(jù)庫(kù)層的PostgreSQL數(shù)據(jù)庫(kù)交互,在StaubliDao,EpsonDao和UserDao類實(shí)現(xiàn)對(duì)機(jī)器人數(shù)據(jù)表的查詢和對(duì)用戶表的增刪改查;業(yè)務(wù)邏輯層使用Spring框架,分別在StaubliService,EpsonService類處理實(shí)時(shí)監(jiān)控模塊的業(yè)務(wù)邏輯,在UserService類處理用戶管理模塊的業(yè)務(wù)邏輯;表現(xiàn)層使用Struts2框架和Websocket通信機(jī)制,處理來(lái)自客戶層的Web請(qǐng)求。實(shí)時(shí)監(jiān)控模塊使用WebSocket協(xié)議與客戶端建立連接,將EpsonSocket和StaubliSocket類作為通信服務(wù)端,用戶管理模塊使用Struts2框架攔截瀏覽器的Ajax異步請(qǐng)求,將UserAction作為請(qǐng)求服務(wù)端,在Struts.xml中配置Url地址對(duì)應(yīng)的Action方法和默認(rèn)攔截器等。
3.1 用戶管理實(shí)現(xiàn)
用戶管理功能包括用戶登錄校驗(yàn)和用戶增刪改查。服務(wù)端程序使用Struts2的攔截器機(jī)制完成用戶登錄校驗(yàn)。在Struts.xml中配置自定義LogonCheckInterceptor攔截器類,將Struts2默認(rèn)攔截器棧設(shè)置為自定義攔截器棧,攔截除myuserLogin()登錄方法外的所有方法。
在自定義攔截器類的doIntercept()方法中通過判斷session中的user屬性是否為空來(lái)完成用戶登錄校驗(yàn)。分別調(diào)用ajaxaddUser(),ajaxdelUser(),ajaxeditUser()和easyUIListUser()方法完成對(duì)用戶表的增刪改查,所有方法都是通過Ajax異步方式請(qǐng)求服務(wù)端。
3.2 實(shí)時(shí)監(jiān)控實(shí)現(xiàn)
為了以動(dòng)態(tài)曲線的方式實(shí)時(shí)展現(xiàn)機(jī)器人末端坐標(biāo)軌跡,客戶端傳統(tǒng)做法是用Ajax輪詢的方式不斷向服務(wù)器發(fā)送異步請(qǐng)求,但高頻率的輪詢不僅會(huì)加重服務(wù)器的負(fù)載,而且會(huì)將大量時(shí)間耗費(fèi)在頻繁的請(qǐng)求和響應(yīng)時(shí)延上,使得效率相對(duì)低下。系統(tǒng)采用HTML5新標(biāo)準(zhǔn)中的WebSocket通信機(jī)制實(shí)現(xiàn)實(shí)時(shí)通信。服務(wù)端使用Tomcat7提供的已實(shí)現(xiàn)WebSocket API接口標(biāo)準(zhǔn)的實(shí)現(xiàn)類,基于注解方式開發(fā)。
服務(wù)端首先偵聽是否有客戶端的連接請(qǐng)求,如果有則建立與客戶端的連接通道,然后繼續(xù)偵聽是否有客戶端發(fā)送的消息,如果有則在WebSocket的onMessage方法中不斷推送封裝成JSON[12]格式的機(jī)器人最新數(shù)據(jù)到客戶端。調(diào)用業(yè)務(wù)邏輯層的getLastLine()方法獲取機(jī)器人數(shù)據(jù)表最新的一條記錄,調(diào)用JSONArray的fromObject()方法將該條記錄轉(zhuǎn)換為Json格式,調(diào)用session的sendText()方法發(fā)送Json格式的機(jī)器人數(shù)據(jù)到客戶端。
瀏覽器客戶端在頁(yè)面上點(diǎn)擊建立連接按鈕,通過新建WebSocket對(duì)象建立與服務(wù)端的連接,在其構(gòu)造參數(shù)中傳入需要連接的服務(wù)端url地址,通過send()方法向服務(wù)端發(fā)送通知消息,在onMessage()方法中解析服務(wù)端返回的機(jī)器人數(shù)據(jù)。通過JavaScript的eval()方法將從服務(wù)端返回的Json字符串轉(zhuǎn)換為Json對(duì)象。通過該Json對(duì)象解析出機(jī)器人在笛卡爾空間各軸末端坐標(biāo)并存放到數(shù)組中,將其裝載到Highchats圖表庫(kù)動(dòng)態(tài)曲線的數(shù)據(jù)列上,每隔0.5秒重載數(shù)據(jù)列。Web頁(yè)面上EPSON-G6和STAUBLI-TX90在笛卡爾空間的末端坐標(biāo)軌跡實(shí)時(shí)曲線分別如圖7和圖8所示,橫坐標(biāo)為當(dāng)前時(shí)間,縱坐標(biāo)為機(jī)器人實(shí)時(shí)末端坐標(biāo)。點(diǎn)擊斷開連接按鈕,調(diào)用Websocket()的close()方法關(guān)閉服務(wù)端與客戶端的連接通道。
圖7 EPSON-G6實(shí)時(shí)動(dòng)態(tài)曲線
圖8 Staubli-TX90實(shí)時(shí)動(dòng)態(tài)曲線
通過試驗(yàn)驗(yàn)證本系統(tǒng)的可行性,試驗(yàn)結(jié)果表明本地監(jiān)控MFC客戶端能夠?qū)崿F(xiàn)與工業(yè)機(jī)器人控制器的通信,通信效率達(dá)到每50 ms收發(fā)一個(gè)數(shù)據(jù)包,丟包率不超過5%。瀏覽器客戶端通過WebSocket協(xié)議實(shí)現(xiàn)了與服務(wù)端建立連接通道。依據(jù)網(wǎng)絡(luò)情況好壞,首次建立連接耗時(shí)在30~40 ms之間,連接建立完成后,推送每條數(shù)據(jù)的網(wǎng)絡(luò)時(shí)延極低,基本上能保證Web頁(yè)面上監(jiān)控?cái)?shù)據(jù)的實(shí)時(shí)性。試驗(yàn)結(jié)果表明借助于Socket多線程的通信架構(gòu),程序模塊化的設(shè)計(jì)及WebSocket高效的通信效率使得系統(tǒng)具有較高的穩(wěn)定性和實(shí)時(shí)性。
本文研究了一種基于Socket套接字通信的工業(yè)機(jī)器人遠(yuǎn)程監(jiān)控系統(tǒng)。以STAUBLI-TX90和EPSON-G6為監(jiān)控對(duì)象,結(jié)合Socket通信技術(shù),ADO數(shù)據(jù)庫(kù)訪問技術(shù),OpenGL類庫(kù),J2EE架構(gòu)和WebSocket協(xié)議,實(shí)現(xiàn)對(duì)工業(yè)機(jī)器人的本地和遠(yuǎn)程實(shí)時(shí)監(jiān)控。市場(chǎng)上大多數(shù)工業(yè)機(jī)器人控制器都有兼容Socket通信的以太網(wǎng)接口,因此本系統(tǒng)的開發(fā)在實(shí)現(xiàn)對(duì)不同類型工業(yè)機(jī)器人的遠(yuǎn)程并發(fā)監(jiān)控方面,具有較大的參考價(jià)值。
[1] 張愛民, 孔得鵬, 王倩.工業(yè)機(jī)器人的遠(yuǎn)程監(jiān)控與診斷系統(tǒng)設(shè)計(jì)[J]. 機(jī)械,2010,37(10):45-47.
[2] 飽勝利, 鐘 勇.基于J2EE的實(shí)時(shí)監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2008,34(5):240-242.
[3] 駱曉娟,許 力.基于AJAX和B/S構(gòu)架的實(shí)時(shí)監(jiān)測(cè)系統(tǒng)[J].工業(yè)控制計(jì)算機(jī),2013, 26(4):64-65.
[4] 薛 隴,彬劉釗遠(yuǎn). 基于WebSocket的網(wǎng)絡(luò)實(shí)時(shí)通信[J].計(jì)算機(jī)與數(shù)字工程,2014,42(3):478-481.
[5] 徐 璇,姜明新,黃 靜, 等.基于MFC的工程軟件界面設(shè)計(jì)[J].電子設(shè)計(jì)工程, 2011,19(21): 11-13.
[6] 王 偉.基于MFC的多線程與串口通信[J].電子世界,2013(4):106.
[7] 索 巖,崔紅志.基于MFC的數(shù)據(jù)庫(kù)動(dòng)態(tài)訪問技術(shù)[J].科技信息,2009(31):46-47.
[8] 喻 敏,李成剛,李富中, 等.基于OpenGL和MFC的機(jī)器人運(yùn)動(dòng)控制及標(biāo)定[J].機(jī)械設(shè)計(jì)與制造工程,2015,44(1):46-49.
[9] 冉春玉,白炳杉. MVC模式及Struts框架應(yīng)用研究[J]. 武漢理工大學(xué)學(xué)報(bào), 2004, 26(6):66-69.
[10] 趙 洋,張 麗,王恩東, 等. 基于Struts,Hibernate和Spring的J2EE架構(gòu)研究[J]. 現(xiàn)代電子技術(shù),2009, 32(2):107-110.
[11] 陳國(guó)耀,王清心. 基于jQuery的高校網(wǎng)絡(luò)心理咨詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 武漢工程大學(xué)學(xué)報(bào),2011,33(10):103-106.
[12] 高 靜,段會(huì)川. JSON數(shù)據(jù)傳輸效率研究[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2011,32(7):2267-2270.
Research of Industrial Robot Monitoring System Based on Socket Communication
Xu Jianming,Pan Xiangfei
(College of Information Engineering, Zhejiang University of Technology, Hangzhou 310023,China)
Aiming at Epson-G6 and Staubli-TX90 industrial robots, a kind of industrial robot monitoring system based on Socket communication is studied. It includes a local monitoring terminal and a web remote monitoring terminal. Based on TCP protocol and Socket communication, the server-side in robot controllers and the client using MFC Framework are respectively programmed. The client contains the communication module, the end coordinate trajectories memory module and the motion posture presentation module based on OpenGL class library. On this basis, the web remote monitoring terminal is designed with J2EE architecture and WebSocket protocol, it is made up of a user management module and a real-time monitoring module. The system realizes the acquisition of the end coordinate trajectories of the robots, the storage of the trajectories to a PostgreSQL database and the monitoring of the trajectories by dynamic curve on web pages. At the same time, the 3D motion attitudes of two robots are also presented by the inverse kinematics calculation.
industrial robot; Socket communication; J2EE architecture; WebSocket protocol; remote monitoring
2016-12-19;
2017-02-27。
國(guó)家自然科學(xué)基金面上項(xiàng)目(61374103);浙江省自然科學(xué)基金重點(diǎn)項(xiàng)目(LZ15F030003)。
徐建明(1970-),男,江西吉安人,教授,碩士研究生導(dǎo)師,主要從事工業(yè)機(jī)器人和視覺伺服控制技術(shù)方向的研究。
1671-4598(2017)07-0070-04
10.16526/j.cnki.11-4762/tp.2017.07.018
TP277
A