KUKA EKI功能Socket通讯

Posted 东莞机器人之家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KUKA EKI功能Socket通讯相关的知识,希望对你有一定的参考价值。

淘宝搜索工业机器人1号店,获取更多机器人实用资料

点击蓝色字体加关注,猩猩用心分享每一篇好文





通过KUKA机器人的EtherNetKRL软件功能包实现同外界智能设备或者上位机进行基于TCP/IP的Socket通讯,以便进行数据交互处理。

必备的软件选项


1,特性:

KUKA机器人相对于其他机器人socket不同的是,无论收发数据均是将.XML文件进行发送并且也是由XML进行配置连接的。

KUKA EKI功能Socket通讯


2,可连接数量

KUKA EKI功能Socket通讯


3,开始配置XML连接文件

KUKA手册带有5个示例的XML文件模板,作为应用阶段不做过多的说明。选取其中的BinaryStream.xml文件来进行修改使用。此文件需要放在指令目录,具体如下:

KUKA EKI功能Socket通讯


KUKA EKI功能Socket通讯


添加随机附带的程序示例BinaryStream.src程序到KRC TP文件夹中,当然可以随意放置在其他程序文件夹中,便于项目规范以及自己查找。

KUKA EKI功能Socket通讯


常用指令:

RET=EK1_Init(CHAR[]) -----初始化连接

RET=EK1_Open(CHAR[]) -----打开连接

RET=EK1_Close(CHAR[]) -----关闭连接

RET=EK1_Clear(CHAR[]) -----清空连接数据,退出连接

 

RET=EK1_Send(CHAR[],CHAR[],INT)-----发送数据

参数CHAR[]1:连接通道名称

参数CHAR[]2:定义发送数据的范围

INT:最大发送数据数量

 

RET=EK1_GetString(CHAR[],CHAR[],CHAR[])-----从存储器读取字符串

参数CHAR[]1:连接的通道名称

参数CHAR[]2:XML结构中的位置名称或原始数据中的元素名称

参数CHAR[]3:从存储器中读取的字符串最大字符数量

 

Strfind:搜素字符串功能函数

StrToReal:字符转实数


以下是实际的同视觉项目示例代码,仅供参考:

&ACCESS RV&REL 1&PARAM DISKPATH = KRC:\R1\Program&PARAM SensorITMASK = *&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabeDEF BinaryStream( );FOLD Declaration;变量声明,注意此处 CHAR Bytes[]需要和XML文件中的变量想对应 INT i DECL EKI_STATUS RET CHAR Bytes[64]
;此处定义声明至全局变量中$config.dat DECL INT CL1 DECL INT CL2 DECL CHAR CCD_X[20] DECL CHAR CCD_Y[20] DECL REAL VISION_XX DECL REAL VISION_YY ;**********************************;ENDFOLD (Declaration);FOLD INI ;FOLD BASISTECH INI BAS (#INITMOV,0 ) ;ENDFOLD (BASISTECH INI) ;FOLD USER INI ;Make your modifications here
;ENDFOLD (USER INI);ENDFOLD (INI);FOLD Initialize sample data FOR i=(1) TO (64) Bytes[i]=0 ENDFOR ;ENDFOLD (Initialize sample data)RET=EKI_Init("BinaryStream");初始化连接“BinaryStream”RET=EKI_Open("BinaryStream");打开连接“BinaryStream”Bytes[]="Stream ends with CR,LF";将需要发送的字符串写入到Bytes[]中RET = EKI_Send("BinaryStream",Bytes[]);将Bytes[]中的内容通过“BinaryStream”连接的XML结构文件发送出去;并且返回出RET的状态(也就是True或者FALSE)WAIT FOR $FLAG[1];等待接收数据标志(视觉发送数据需要“+CRLF”结尾)RET=EKI_GetString("BinaryStream","Buffer",Bytes[]);将接收到的字符串数据存入到Bytes[]$FLAG[1]=FALSE;清除接收数据后的标志RET=EKI_Close("BinaryStream");关闭连接“BinaryStream”RET=EKI_Clear("BinaryStream");清空连接“BinaryStream”CL1=STRFIND(1,Bytes[],"1",#CASE_SENS);对Bytes[]字符串进行搜索,从第1个字节开始截止到搜索到“1”并且返回为“1”的字节数位置CL1FOR i=1 To (CL1-1) CCD_X[i]=Bytes[i] ENDFOR;通过循环赋值,从第1个字节到搜索到的位数CL1-1的字节转存到CCD_X[]字符串中CL2=STRFIND(CL1+1,Bytes[],"1",#CASE_SENS);对Bytes[]字符串进行搜索,从第CL1+1个字节开始截止到搜索到“1”并且返回为“1”的字节数位置CL2FOR i=1 To (CL2-1) CCD_Y[i]=Bytes[i+CL1] ENDFOR;通过循环赋值,将CL1+1开始到CL2-1的字节数据转存到CCD_Y[]字符串中OK=STRTOREAL(CCD_X[],VISION_XX)OK=STRTOREAL(CCD_Y[],VISION_YY);将字符串数据转换成实数缓存至变量VISION_XX;将字符串数据转换成实数缓存至变量VISION_YYEND

小编太懒了,内容缓慢更新中.....

对于工业机器人感兴趣的小伙伴,可以扫描下方二维码进入微信群聊......


KUKA EKI功能Socket通讯KUKA EKI功能Socket通讯


文章都看完了不点个 吗


以上是关于KUKA EKI功能Socket通讯的主要内容,如果未能解决你的问题,请参考以下文章

上位机基于C#通过TCP/IP和库卡机器人通讯

golang代码片段(摘抄)

KUKA KR C4机器人的OPC通信如何配置?

KUKA iiwa — SmartServo随动

聊天功能插件Socket.io

socket 编程实现文件传输功能!强无敌,网络通讯的必备知识储备!