当前位置:   article > 正文

KUKA机器人EthernetKRL通讯客户端(ASCII码格式)_ethernetkrl2.8

ethernetkrl2.8

1. 编写XML格式通讯配置文件

配置文件示例(KUKA_EKL.xml):

  1. <ETHERNETKRL>
  2. <CONFIGURATION>
  3. <EXTERNAL>
  4. <IP>192.168.0.1</IP>
  5. <PORT>8080</PORT>
  6. </EXTERNAL>
  7. <INTERNAL>
  8. <ALIVE Set_Flag="100"/>
  9. </INTERNAL>
  10. </CONFIGURATION>
  11. <RECEIVE>
  12. <RAW>
  13. <ELEMENT Tag="recv" Type="STREAM" EOS="13" Set_Flag="101"/>
  14. </RAW>
  15. </RECEIVE>
  16. <SEND>
  17. <RAW>
  18. <ELEMENT Tag="send" Type="STREAM" EOS="13"/>
  19. </RAW>
  20. </SEND>
  21. </ETHERNETKRL>

配置文件结构如下:

配置文件完成后需要拷贝到机器人的C:/KRC/ROBOTER/Config/User/Common/EthernetKRL文件夹内。

2. 编写机器人SRC程序

通讯使用到的EKI函数:
EKI_STATUS=EKI_Init(CHAR[]) ; 初始化连接
EKI_STATUS=EKI_Open(CHAR[]) ; 打开连接
EKI_STATUS=EKI_Close(CHAR[]) ; 关闭连接
EKI_STATUS=EKI_Clear(CHAR[]) ; 删除连接
EKI_STATUS=EKI_Send(CHAR[],CHAR[],INT) ; 发送数据
EKI_STATUS=EKI_GetString(CHAR[],CHAR[],CHAR[]) ; 读取数据

案例程序流程:

案例程序代码:

  1. _ret=EKI_Init(XML_KRL[])
  2. _ret=EKI_Open(XML_KRL[])
  3. wait for $flag[100]
  4. Offset = 0
  5. SWRITE(_byte_send[], State, Offset,"%d,%d,%d", 100, 200, 300)
  6. _ret = EKI_Send(XML_KRL[], _byte_send[])
  7. wait for $flag[101]
  8. _ret=EKI_GetString(XML_KRL[],"recv",_byte_recv[])
  9. halt
  10. ;parse received data
  11. cnt=-1
  12. i=1
  13. indx=1
  14. while(cnt<>0)
  15. delim=44
  16. cnt=StrFind(i, _byte_recv[], delim, #NOT_CASE_SENS)
  17. if cnt<>0 then
  18. for j=1 to cnt-1
  19. _recv_buffer[j]=_byte_recv[i+j-1]
  20. endfor
  21. ok=STRTOREAL(_recv_buffer[], _recv_data[indx])
  22. if ok then
  23. indx=indx+1
  24. else
  25. halt
  26. endif
  27. for j=1 to cnt-1
  28. _recv_buffer[j]=0
  29. endfor
  30. i=i+cnt
  31. halt
  32. else
  33. 6
  34. cnt=StrLen(_byte_recv[])
  35. for j=1 to cnt-i+1
  36. _recv_buffer[j]=_byte_recv[i+j-1]
  37. endfor
  38. ok=STRTOREAL(_recv_buffer[], _recv_data[indx])
  39. if ok then
  40. indx=indx+1
  41. else
  42. halt
  43. endif
  44. for j=1 to cnt-i+1
  45. _recv_buffer[j]=0
  46. endfor
  47. cnt=0
  48. halt
  49. endif
  50. ENDWHILE
  51. _ret=EKI_Close(XML_KRL[])
  52. _ret=EKI_Clear(XML_KRL[])

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/831871
推荐阅读
相关标签
  

闽ICP备14008679号