日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

KUKA机器人通过EthernetKRL控制

發(fā)布時(shí)間:2024/3/24 编程问答 110 豆豆
生活随笔 收集整理的這篇文章主要介紹了 KUKA机器人通过EthernetKRL控制 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

KUKA.EthernetKRL軟件包提供了通過(guò)網(wǎng)絡(luò)和機(jī)器人控制器進(jìn)行雙向通信的功能。使用TCP/IP協(xié)議,通過(guò)服務(wù)器端和客戶(hù)端方式進(jìn)行通信,網(wǎng)絡(luò)傳輸通過(guò)xml進(jìn)行配置,傳輸內(nèi)容也是xml格式。通信延遲在2ms以下。因此可以做一些實(shí)時(shí)性比較高的任務(wù),比如在線(xiàn)分揀等。

軟件包安裝
確保KUKA控制器安裝了EthernetKRL軟件包。如果沒(méi)有安裝,查看機(jī)器人D盤(pán)的kuka_option文件夾下是否有,如果有,點(diǎn)擊setup安裝,如果沒(méi)有,需要聯(lián)系機(jī)器人廠(chǎng)家購(gòu)買(mǎi)該軟件包。

網(wǎng)線(xiàn)連接與IP地址配置
使用網(wǎng)線(xiàn)把KUKA控制器的x66或者x67接口和pc的網(wǎng)口直接連接到一起。設(shè)置KUKA控制器的IP地址和PC端的IP地址,兩個(gè)IP地址需要在同一個(gè)網(wǎng)段,比如192.168.1.100和192.168.1.101。

下載官方例程
庫(kù)卡官方提供了幾個(gè)例程:目錄結(jié)構(gòu)如下

首先當(dāng)然是TCP/IP的基礎(chǔ)部分,服務(wù)器和客戶(hù)端。這里將庫(kù)卡機(jī)器人作為客戶(hù)端,上位機(jī)作為服務(wù)器進(jìn)行通訊。

通過(guò)按鈕事件,創(chuàng)建后臺(tái)線(xiàn)程用于TCP服務(wù)端,創(chuàng)建服務(wù)端并開(kāi)啟監(jiān)聽(tīng)后,就可以等待機(jī)器人客戶(hù)端發(fā)來(lái)的消息了。

庫(kù)卡機(jī)器人TCP通訊存在三種數(shù)據(jù)發(fā)送格式:固定長(zhǎng)度字節(jié),任意長(zhǎng)度字節(jié),和xml格式。個(gè)人感覺(jué)xml格式比較好用,這里介紹xml的通訊。

xml的通訊,其實(shí)可以分解為幾個(gè)步驟:

機(jī)器人發(fā)送到上位機(jī):機(jī)器人程序?qū)⒆兞炕蛘邤?shù)值寫(xiě)入xml的元素中→機(jī)器人將xml發(fā)送通過(guò)服務(wù)端發(fā)送到上位機(jī)的服務(wù)端→服務(wù)端接受到數(shù)據(jù),按照xml的格式解析其中元素。

上位機(jī)服務(wù)端獲取到的數(shù)據(jù)是:

<Robot><Data><LastPos X="483.980011" Y="7.210000" Z="239.869995" A="0.000000" B="0.000000" C="0.000000"></LastPos><ActPos X="1000.119995"></ActPos></Data><Status>12345678</Status><Mode>ConnectSensor</Mode><RobotLamp><GrenLamp><LightOn>1</LightOn></GrenLamp></RobotLamp></Robot>

然后對(duì)數(shù)據(jù)進(jìn)行逐個(gè)元素的解析就可以了。要增加變量,只要對(duì)應(yīng)在mxl文件,機(jī)器人程序和上位機(jī)解析過(guò)程中添加就可以了。

上位機(jī)發(fā)送到機(jī)器人:上位機(jī)將變量寫(xiě)成xml格式,利用客戶(hù)端發(fā)送到機(jī)器人中的xml文件→機(jī)器人讀取xml文件中的元素值到程序中的變量

寫(xiě)成xml格式:

sendstr = sendstr + "<Sensor><Status><IsActive>FALSE</IsActive></Status></Sensor>"; sendstr = sendstr + "<Sensor><Read><xyzabc X='10.0' Y='20.0' Z='30.0' A='40.0' B='50.0' C='60.0'></xyzabc></Read</Sensor>";

然后是tcp發(fā)送

等發(fā)送完成之后,機(jī)器人再讀取

機(jī)器人從xml元素中讀取值或者屬性并賦予創(chuàng)建的變量

RET=EKI_GetString("XmlCallBack","Sensor/Message",valueChar[]) RET=EKI_GetInt("XmlCallBack","Sensor/Nmb",valueInt) RET=EKI_GetBool("XmlCallBack","Sensor/Status/IsActive" ,valueBOOL) RET=EKI_GetFrame("XmlCallBack","Sensor/Read/xyzabc",valueFrame)

然后就可以在機(jī)器人程序中使用,或者通過(guò)查看變量值檢測(cè)是否正確

本例中的xml文件和機(jī)器人程序文件src由ETHERNETKRL軟件中自帶的測(cè)試?yán)有薷亩鴣?lái)。不用原例子的原因是,原例子只有程序文件src而沒(méi)有數(shù)據(jù)文件dat,程序里的變量都是臨時(shí)變量,無(wú)法在示教器上查詢(xún)變量的值。所以新建了一個(gè)程序,將原例子的變量定義放在dat數(shù)據(jù)文件中,處理過(guò)程放在src程序文件中。另外,對(duì)上位機(jī)發(fā)送到機(jī)器人的元素有做一些刪改。

參考文獻(xiàn):

https://zhuanlan.zhihu.com/p/154135593

公眾號(hào):機(jī)器人視覺(jué)

總結(jié)

以上是生活随笔為你收集整理的KUKA机器人通过EthernetKRL控制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。