KUKA机械臂submit解释器将当前位置发送给C#上位机

KUKA机械臂submit解释器将当前位置发送给C#上位机

一、先安装好EthernetKRL选项包,并配置完成

KUKA机械臂使用EthernetKRL配置与C#上位机实现TCP通讯

二、新建一个.sub程序文件

使用WorkVisual或者示教器新建一个.sub程序文件,程序文件位于C:\KRC\ROBOTER\KRC\R1\System此目录下。如下图所示:
在这里插入图片描述
ACT_X…ACT_C是定义在**$config.dat**的全局变量,文件目录为C:\KRC\ROBOTER\KRC\R1\System。如下图所示:

   ACT_X = $POS_ACT.X
   ACT_Y = $POS_ACT.Y
   ACT_Z = $POS_ACT.Z
   ACT_A = $POS_ACT.A
   ACT_B = $POS_ACT.B
   ACT_C = $POS_ACT.C

在这里插入图片描述

我这里初始化和打开连接,添加了一个WAIT FOR $IN[1],作为一个外部信号去触发连接服务器。在想要开启通信的时候打开通信并连接。

WAIT FOR  ( $IN[1] )
   RET=EKI_Init("BinaryStream")
   RET=EKI_Open("BinaryStream")

当$IN[2]为True的时候或者通信状态为False的时候关闭连接,并清理通道。当机器人程序一直运行,服务器关闭的情况下,目的是为了跳出循环,避免出现报连接不上的错误。

IF  ( $IN[2] ) OR (NOT RET.Connected) THEN
   RET=EKI_Close("BinaryStream")
   RET=EKI_Clear("BinaryStream")
   EXIT
ENDIF

在程序里我加了一个0.2秒的等待,避免数据下发过快。

WAIT SEC 0.2

三、提交submit解释器

SYS是系统默认的一个,EX1所选的是自己编写的.sub程序文件。如下图所示:
在这里插入图片描述
启动submit解释,会发现musps.sub程序一直停留在24行,此时程序处于WAIT FOR $IN[1]的语句行,当条件满足的时候,程序就会进入loop循环一直循环,直到$IN[2]为True的时候或者通信状态为False的时候,循环就会退出,然后程序结束。如下图所示:
在这里插入图片描述

四、测试

1.运行运动程序

随便写了一个运动主程序,如下图所示:
在这里插入图片描述

2.初始化并打开链接

当将$IN[1]置为true时,服务器端显示客户端已连接,并连续接收到客户端发过来的数据。
在这里插入图片描述

3.关闭连接

当将$IN[2]置为true时,服务器端显示客户端断开连接,mysps.sub程序运行结束。如下图所示:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yongshao8

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值