KUKA机器人通过EthernetKRL控制
KUKA.EthernetKRL軟件包提供了通過網(wǎng)絡和機器人控制器進行雙向通信的功能。使用TCP/IP協(xié)議,通過服務器端和客戶端方式進行通信,網(wǎng)絡傳輸通過xml進行配置,傳輸內(nèi)容也是xml格式。通信延遲在2ms以下。因此可以做一些實時性比較高的任務,比如在線分揀等。
軟件包安裝
確保KUKA控制器安裝了EthernetKRL軟件包。如果沒有安裝,查看機器人D盤的kuka_option文件夾下是否有,如果有,點擊setup安裝,如果沒有,需要聯(lián)系機器人廠家購買該軟件包。
網(wǎng)線連接與IP地址配置
使用網(wǎng)線把KUKA控制器的x66或者x67接口和pc的網(wǎng)口直接連接到一起。設置KUKA控制器的IP地址和PC端的IP地址,兩個IP地址需要在同一個網(wǎng)段,比如192.168.1.100和192.168.1.101。
下載官方例程
庫卡官方提供了幾個例程:目錄結構如下
首先當然是TCP/IP的基礎部分,服務器和客戶端。這里將庫卡機器人作為客戶端,上位機作為服務器進行通訊。
通過按鈕事件,創(chuàng)建后臺線程用于TCP服務端,創(chuàng)建服務端并開啟監(jiān)聽后,就可以等待機器人客戶端發(fā)來的消息了。
庫卡機器人TCP通訊存在三種數(shù)據(jù)發(fā)送格式:固定長度字節(jié),任意長度字節(jié),和xml格式。個人感覺xml格式比較好用,這里介紹xml的通訊。
xml的通訊,其實可以分解為幾個步驟:
機器人發(fā)送到上位機:機器人程序?qū)⒆兞炕蛘邤?shù)值寫入xml的元素中→機器人將xml發(fā)送通過服務端發(fā)送到上位機的服務端→服務端接受到數(shù)據(jù),按照xml的格式解析其中元素。
上位機服務端獲取到的數(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>然后對數(shù)據(jù)進行逐個元素的解析就可以了。要增加變量,只要對應在mxl文件,機器人程序和上位機解析過程中添加就可以了。
上位機發(fā)送到機器人:上位機將變量寫成xml格式,利用客戶端發(fā)送到機器人中的xml文件→機器人讀取xml文件中的元素值到程序中的變量
寫成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ā)送完成之后,機器人再讀取
機器人從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)然后就可以在機器人程序中使用,或者通過查看變量值檢測是否正確
本例中的xml文件和機器人程序文件src由ETHERNETKRL軟件中自帶的測試例子修改而來。不用原例子的原因是,原例子只有程序文件src而沒有數(shù)據(jù)文件dat,程序里的變量都是臨時變量,無法在示教器上查詢變量的值。所以新建了一個程序,將原例子的變量定義放在dat數(shù)據(jù)文件中,處理過程放在src程序文件中。另外,對上位機發(fā)送到機器人的元素有做一些刪改。
參考文獻:
https://zhuanlan.zhihu.com/p/154135593
公眾號:機器人視覺
總結
以上是生活随笔為你收集整理的KUKA机器人通过EthernetKRL控制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue时间转换为字符串
- 下一篇: c语言logout_用C语言编写一个Li