喻建軍 李辰 吳凡 劉耿聰
摘 要:本文簡要介紹了ABB工業(yè)機器人與LabVIEW之間進行數(shù)據(jù)交互的解決方案。ABB機器人與LabVIEW通過socket建立通信,讀取機器人坐標數(shù)據(jù)。以此為人機交互提供一個更便捷、更高效的新思路。
關(guān)鍵詞:工業(yè)機器人 LabVIEW socket(TCP/IP)
1 前言
隨著“中國制造2025”概念的提出,中國制造業(yè)將會大步伐的向著信息化、智能化精密化邁進,中國工業(yè)也會伴隨著發(fā)生巨大的變革。越來越多的高新技術(shù)科技成果被應(yīng)用到產(chǎn)品的生產(chǎn)制造中。而作為工業(yè)自動化代表的機器人在制造業(yè)中所占比重不斷增加,正加速取代人工操作、生產(chǎn)。而為了能夠更高效的發(fā)揮機器人的智能化、精準化程度高的特點,建立一套可靠性良好、傳輸速率高的數(shù)據(jù)通信模式勢在必行(如圖1)。
2 工業(yè)機器人主流通信方式簡介
在國際上,工業(yè)機器人技術(shù)日趨成熟,已經(jīng)成為一種標準設(shè)備而得到工業(yè)界廣泛應(yīng)用,從而也形成了一批在國際上較有影響力的、著名的工業(yè)機器人公司,諸如:ABB , FANUC、Yaskawa、KUKA等。這些主流工業(yè)機器人公司為了提成產(chǎn)品的場景適用性,經(jīng)濟性,也正在大力拓展其可用于二次開發(fā)的工業(yè)數(shù)據(jù)通信模式,例如: Modbus RTU、Profibus、socket、Profinet等。
目前尤其是基于TCP/IP協(xié)議的通信方式正逐步被工業(yè)數(shù)據(jù)通信領(lǐng)域所接納。各個機器人、外圍儀表設(shè)備之間可以靈活的組網(wǎng),且每一個網(wǎng)絡(luò)節(jié)點都有唯一的IP地址和通信端口,數(shù)據(jù)收發(fā)帶有校驗機制,數(shù)據(jù)傳輸準確、穩(wěn)定、可靠。
簡單比對一下目前工業(yè)機器人主流通信模式優(yōu)缺點,如表1:
有鑒于上述各種通信方式性能、效費等比較,在數(shù)據(jù)交換量不太大的情況下使用socket套字節(jié)通信方式(基于TCP/IP協(xié)議)可行性最高。
3 ABB工業(yè)機器人Socket(TCP/IP)數(shù)據(jù)發(fā)送
對于工業(yè)機器人的應(yīng)用場景而言,與配套儀表、設(shè)備之間數(shù)據(jù)傳輸?shù)姆€(wěn)定性、準確性、高效性顯得尤為重要。下面我們就以ABB工業(yè)機器人的socket(基于TCP/IP協(xié)議)通信為例,介紹如何將機器人TCP坐標數(shù)據(jù)向外發(fā)送。
首先,ABB工業(yè)機器人系統(tǒng)軟件中需要配置616-1 PC interface模塊,這是在工業(yè)機器人與其外圍儀表、設(shè)備間建立socket通信的基礎(chǔ)。
以機器人為server,上位機為client為例,如圖2所示步驟建立上位機與機器人之間的通信。需要注意的是使用socket一定按照“建立”、“綁定”、“監(jiān)聽”、“接收”以及“關(guān)閉”等套字節(jié)指令的位置順序,且編寫在“while”循環(huán)外。而循環(huán)內(nèi)則主要進行server與client端進行數(shù)據(jù)交互,例如發(fā)送坐標數(shù)據(jù)。
將讀取到的X、Y、Z軸的坐標數(shù)據(jù)分別轉(zhuǎn)換為字符串,并連接在一起打包發(fā)送。需要注意兩點:1.坐標數(shù)據(jù)轉(zhuǎn)化為字符串時,需要統(tǒng)一小數(shù)點后位數(shù),便于統(tǒng)計字符總數(shù)量。
2.構(gòu)成的整條字符串中建議用特殊符號間隔,便于LabVIEW識別區(qū)分各個軸的坐標。
ABB機器人(server)端建立socket通信及坐標發(fā)送可以參考源代碼1。
在實際的工程項目實施時需要注意以下兩點:
如果想在ABB機器人向上位機發(fā)送三軸坐標的同時執(zhí)行其他運動指令,首先需要ABB工業(yè)機器人系統(tǒng)軟件中配置623-1 multitasking(多任務(wù))模塊,其次需要使用multitasking新建一個“任務(wù)模塊T2”,并配置成Normal類型,如圖3所示。再將通信程序代碼(源代碼1)移植到T2任務(wù)模塊中。在多任務(wù)情況下,一般將數(shù)據(jù)通信放在后臺運行(T2模塊),而進行人運動程序則放在前臺運行(T_ROB1),因為在后臺運行的程序不能執(zhí)行運動指令,如果執(zhí)行,系統(tǒng)會報錯。
如果想以上位機為server、機器人為client嘗試建立二者之間的通信,建議直接使用實體ABB機器人。當使用虛擬機器人時,其IP地址雖然一般默認為“127.0.0.1”,但是其通信端口會隨機跳變,無法實現(xiàn)二者之間的連接綁定。而實體機器人則不存在該問題,其通信端口是固定的,不會任意改變。
4 使用LabVIEW讀取socket套節(jié)字數(shù)據(jù)
上位機PC端使用LabVIEW接收讀取ABB機器人發(fā)送的坐標數(shù)據(jù)。使用Labview進行socket“套接字”(ABB機器人的socket通信本質(zhì)就是TCP/IP)通信時,需要監(jiān)聽機器人(server)的IP地址和通信端口。
以虛擬的ABB機器人為例,默認的IP地址為127.0.0.1,通信端口為8001。在LabVIEW中建立程序框圖的步驟,如圖4所示。由此可以實現(xiàn)上位機每100ms讀取一次ABB機器人的坐標值,并顯示在人機交互界面中。也可以根據(jù)實際應(yīng)用場景的需求,靈活的調(diào)整機器人套接字循環(huán)發(fā)送間隔時間和上位機接收讀取周期,以期達到最佳效果。
讀取坐標的程序框圖如圖4所示。需要注意的有3點:
1.設(shè)定讀取的字符串長度需要大于機器人發(fā)出的總字符串長度(最多80個字節(jié))。
2.使用LabVIEW中“TCP協(xié)議”里 “TCP讀取”模塊讀取的字符串數(shù)據(jù),進行識別的時候正好可以借助機器人發(fā)出的坐標字符串中的特殊字符進行解碼。利用字符串中的“匹配模式”模塊即可靈活便捷的分離出X、Y、Z三軸坐標。
3.程序框圖中的while循環(huán)的間隔時間建議為機器人發(fā)送數(shù)據(jù)循環(huán)間隔時間的2倍。
5 結(jié)束語
隨著工業(yè)通信領(lǐng)域技術(shù)的飛速發(fā)展,越來越多的通信方式會被應(yīng)用到工業(yè)機器人領(lǐng)域,以便于更大程度的提高生產(chǎn)、協(xié)作效率。而基于工業(yè)以太網(wǎng)的通信協(xié)議正在飛速的發(fā)展和應(yīng)用于工業(yè)制造生產(chǎn)、檢測監(jiān)控行業(yè)。希望僅借此文能為工業(yè)機器人領(lǐng)域的二次開發(fā)提供更多可供選擇的思路和通信方式。
參考文獻:
[1]葉暉. 工業(yè)機器人實操與應(yīng)用技巧. 北京: 機械工業(yè)出版社2010.10.
[2]陳瞭.ABB工業(yè)機器人二次開發(fā)與應(yīng)用? 北京:電子工業(yè)出版社2021.4.
[3]陳樹學(xué). Labview寶典(第2版)? 北京: 電子工業(yè)出版社2017.9.