時間:2015-02-28 16:49:14來源:朱超
摘要]介紹了上位機對UR機器人遠程控制的實現(xiàn)方法。UR機器人上具有特定功能的TCP/IP端口,并給出上位機示例程序。
1、引言
2010年,德國學術(shù)界和產(chǎn)業(yè)界提出“工業(yè)4.0”的概念,即是以智能制造為主導的第四次工業(yè)革命,或革命性的生產(chǎn)方法。該戰(zhàn)略旨在通過充分利用信息通訊技術(shù)和網(wǎng)絡空間虛擬系統(tǒng)—信息物理系統(tǒng)相結(jié)合的手段,將制造業(yè)向智能化轉(zhuǎn)型。所以,近些年許多工業(yè)自動化廠商將自己的產(chǎn)品研發(fā)所考慮的一個重要方向定在是否能被遠程控制。另一方面,隨著國內(nèi)人工成本的不斷上升以及工廠人員流動的不確定性,機器人產(chǎn)業(yè)是近幾年,相信也是未來幾年的朝陽產(chǎn)業(yè)。所以對于工業(yè)機器人在工廠生產(chǎn)中的遠程控制,是一個機器人集成方面比較不錯的課題。我們知道,在工業(yè)機器人的隊伍中,UR機器人是第一家在工業(yè)環(huán)境下工作的人機協(xié)作機器人,它以輕便、簡單、安全著稱。下面我們就來了解一下如何實現(xiàn)上位機對UR機器人的遠程控制。
2、UR機器人提供的基于TCP/IP協(xié)議的接口
TCP/IP協(xié)議源于1969年,是針對Internet開發(fā)的一種體系結(jié)構(gòu)和協(xié)議標準,目的在于解決異種計算機網(wǎng)絡的通信問題。使得網(wǎng)絡在互聯(lián)時能為用戶提供一種通用、一致的通信服務。是Internet采用的協(xié)議標準。基于TCP/IP的通訊具有成本低、可靠性高、實用性強、性能高等特點,所以現(xiàn)在許多工業(yè)自動化產(chǎn)品都具有基于TCP/IP協(xié)議通訊的接口,從而實現(xiàn)設備與設備之間,設備與網(wǎng)絡之間的通訊。UR機器人在TCP/IP協(xié)議的基礎上,提供了豐富的接口用于與外部設備的交互,如表1所述。
端口接口描述
機器人作為服務器
502ModbusTCP協(xié)議,機器人作為服務器
22SSH/SFTP(安全文件傳輸協(xié)議)
29999Dashboard功能
30001第一客戶端端口,自動返回機器人狀態(tài)與補充消息
30002第二客戶端端口,自動返回機器人狀態(tài)與消息
30003實時反饋端口,自動返回機器人狀態(tài)與消息,125Hz實時反饋接口
機器人作為客戶端
自定義由UR腳本函數(shù)定義
502ModbusTCP協(xié)議,機器人作為客戶端
表1UR機器人TCP/IP接口表
有了這些接口,上位機就可以遠程控制機器人。如圖1,簡單描述了上位機對UR機器人遠程監(jiān)控的系統(tǒng)圖。
圖1遠程控制系統(tǒng)圖
下面我們就來介紹UR機器人所提供的相關通訊接口,從而遠程控制機器人。
3、ModbusTCP端口
MODBUS是OSI模型第7層上的應用層報文傳輸協(xié)議,它在連接至不同類型總線或網(wǎng)絡的設備之間提供客戶機/服務器通信。自從1979年出現(xiàn)工業(yè)串行鏈路的事實標準以來,MODBUS使成千上萬的自動化設備能夠通信。目前,繼續(xù)增加對簡單而雅觀的MODBUS結(jié)構(gòu)支持?;ヂ?lián)網(wǎng)組織能夠使TCP/IP棧上的保留系統(tǒng)端口502訪問MODBUS。MODBUS是一個請求/應答協(xié)議,并且提供功能碼規(guī)定的服務。MODBUS功能碼是MODBUS請求/應答PDU的元素。
UR機器人既可以作為ModbusTCP服務器,也可以作為ModbusTCP客戶端,兩者的主要區(qū)別在于消息請求方的不同。在此,我們僅討論UR機器人作為ModbusTCP服務器的情況,如圖2所示。
圖2ModbusTCP服務器
既然UR機器人作為ModbusTCP服務器,它必定有一系列Modbus地址供上位機來訪問。
地址類型描述
0-33Register可以訪問機器人的所有IO
128-255Register可配置寄存器
256-265Register機器人狀態(tài)
270-315Register關節(jié)位置、速度、電流、溫度、模式等信息
400-425RegisterTCP位置、速度、偏移等信息
768-770Register工具端狀態(tài)
0-159Bit可以訪問機器人的所有IO
260-265Bit機器人狀態(tài)
表2Modbus地址簡表
通過UR機器人的相關Modbus地址,我們可以訪問機器人的很多信息,進而可以把這些信息放到上位機上。下圖就是通過訪問Modbus地址,模仿Polyscope(UR機器人原版軟件),制作出來一個界面,當然我們可以通過這個界面監(jiān)控并控制機器人的所用IO。
圖3IO控制
4、Dashboard端口
上位機可以通過29999端口直接發(fā)送一些簡單的指令給機器人,這些指令是UR自己定義的,這種功能被稱為Dashboard。下表就是Dashboard的指令列表。
指令描述
load.urp>加載被保存在控制器中的程序
getloadedprogram返回當前機器人執(zhí)行的程序
play啟動當前加載的程序
stop停止機器人當前執(zhí)行的程序
pause暫停機器人當前執(zhí)行的程序
isProgramSaved當前機器人正在執(zhí)行的程序是否被保存,返回“True”或“False”
programState當前程序的運行狀態(tài),返回“PLAYING”或“STOPPED”或“PAUSED”
shutdown關閉機器人系統(tǒng)
running機器人的運行狀態(tài),返回“True”或“False”
robotmode訪問機器人模式
popupPolyscope跳出對話框
closepopup關閉對話框
addToLog將消息添加到logfile中
setUserRole,whereisclass設置用戶權(quán)限
polyscopeVersion返回當前Polyscope的版本號
poweron使機器人本體通電
poweroff使機器人本體斷電
brakerelease釋放制動器
safetymode返回機器人當前所處的安全模式狀態(tài)
表3Dashboard指令列表
顯而易見,我們可以通過一些Dashboard指令,遠程切換、加載程序,同時可以啟動、暫停、停止程序,這樣上位機就可以遠程控制程序了。
5、上位機編程端口
UR機器人有3種編程方式:Polyscope編程、腳本編程以及C-API編程。Polyscope編程指的是程序在示教器上被編輯,機器人然后執(zhí)行,這是UI層的編程方式。C-API編程是在研發(fā)層上的編程方式。我們重點介紹的是腳本編程方式,腳本編程的語言是UR公司在python語言基礎上,自己研發(fā)的URScript語言。URScript是在腳本層上控制機器人的編程語言,就像其他編程語言一樣,它有變量類型,語法結(jié)構(gòu)、方法等。另外,它有一系列的專用方法來控制機器人運動以及IO狀態(tài)。
UR機器人的控制器是運行在Mini-ITXPC上的,一旦PC啟動機器人控制器(就像啟動服務一樣),Polyscope軟件就通過PC本地的TCP/IP端口與機器人控制器建立連接了。同樣,當上位機作為客戶端,通過30001或30002或30003特定的編程端口,與機器人控制器建立TCP/IP連接,這樣我們就可以在上位機上按照URScript語言的格式編寫腳本程序,直接發(fā)送給機器人控制器,機器人就可以直接執(zhí)行程序了。
按照上面所述的機器人腳本編程原理,我就可以在上位機上制作如下界面,實現(xiàn)對UR機器人的遠程編程。
圖4腳本編程
6、實時反饋端口
30001、30002、30003除了用于遠程編程外,還有其他功能,如下表所述。
端口名稱功能
30001第一客戶端端口客戶端可發(fā)送腳本代碼至服務器;服務器自動以5Hz的頻率返回機器人狀態(tài)與補充消息到客戶端。
30002第二客戶端端口客戶端可發(fā)送腳本代碼安全文件傳輸協(xié)議;服務器自動以5Hz的頻率返回機器人狀態(tài)與消息到客戶端。
30003實時反饋端口客戶端可發(fā)送腳本代碼安全文件傳輸協(xié)議;服務器自動以125Hz的頻率返回機器人狀態(tài)與消息到客戶端。
表4編程口
這三個端口另一個共同的特點就是,一旦客戶端打開端口,就會按照一定的頻率收到來自機器人的信息。需要注意的是30003端口是實時反饋端口,客戶端每8ms能收到一次來自機器人的信息。另外,通過測試,客戶端通過30001和30002只能每200ms左右收到來自機器人的信息。
其實客戶端通過這三個端口收到的機器人信息也稍有不同。通過30003端口收到信息是最豐富的,包含了通過30002收到的信息以及通過30001收到的大部分信息。
所以說通過實時反饋端口,客戶端收到機器人信息效率是最高的,內(nèi)容也是最全的。通過實時反饋端口每次收到的數(shù)據(jù)包有1044個字節(jié),這些字節(jié)以標準的格式排列。注意在極少情況下客戶端會收到小于1044個字節(jié),但是字節(jié)排列的格式不變。下表是1044字節(jié)排列的順序表。
字節(jié)順序內(nèi)容
1-4整個數(shù)據(jù)包的字節(jié)數(shù)
5-12控制器通電時間,斷電清零
13-444關節(jié)目標位置、速度、加速度、電流、扭矩,實際位置、速度、電流,控制電流
445-684TCP位置、速度、力,0目標位置、速度
685-692輸入位狀態(tài)
693-740電機溫度
740-748程序掃描時間
749-756保留
757-820機器人模式,關節(jié)模式,安全模式
821-868保留
869-892TCP加速度
893-940保留
941-948速度比例
949-956機器人當前動量值
957-972保留
973-996控制板電壓,機器人電壓,機器人電流
997-1044關節(jié)電壓
表5實時反饋數(shù)據(jù)包
有了這些數(shù)據(jù),上位機的數(shù)據(jù)表現(xiàn)就會十分豐富。下面有2張上位機界面圖,“點動圖”獲取了關節(jié)位置、TCP位置;“初始化圖”獲取了關節(jié)模式、關節(jié)實際電流、關節(jié)電壓以及其他數(shù)據(jù)。
圖5點動圖
圖6初始化圖
7、結(jié)束語
綜上所述,機器人作為ModbusTCP服務器,上位機通過502端口可以控制機器人的所有IO;上位機可以通過30001或30002或30003端口遠程下載程序到機器人;上位機通過29999端口可以遠程控制程序運行狀態(tài);上位機通過30003端口可以實時得到機器人的狀態(tài)信息。也就是說,利用UR機器人開放的基于TCP/IP協(xié)議的端口,可以制作自己的Polyscope軟件,實現(xiàn)上位機的遠程控制。
標簽:
中國傳動網(wǎng)版權(quán)與免責聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(m.u63ivq3.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權(quán)法律責任。