优傲机器人UR ROBOTS如何解析 30002 数据表

1.0
介 绍 
1.1  目 的
本文包含优傲机器人30002数据表如何正确解析的方法
本方案的目的是详细介绍了如何去解析机器人30002端口的数据,通过解析此端口数据,能够
得到机器人的相关数据,可发送脚本指令到此端口,从而控制机器人。本文适合需要开发上位
机应用但对于数据解析了解比较少的用户做一个参考。
1.2 软件 要求
本方案应用以下产品:
优傲机器人型号: UR3 UR5 UR10
URSoftware 3.5 以下版本,解析数据时数据表位数会与 3.5 及以上的版本存在偏差,解析时请
注意。
2.0 准备工作 
2.1 如何获得数据流
可下载 TCP/IP 测试软件访问机器人 30002 端口,机器人会以 10Hz 的频率发送字节流,获得字节
流我们可以对其进行解析。 注:最初得到的为 16 进制数据。
对于不同的 IDE 平台,只需编写 ICP/IP socket 客户端 , 就能够与机器人进行交互,至于在不同的脚
本语言上如何编写上位机,请自行百度查找相关的例子。
注:请参阅《 Client_Interface & 如何解析实施反馈端口 Port30003 中数据。
2.2 进制转换概要
以下案例我们对 X 坐标进行转换,其双精度 (64 ) 浮点数的结构
名称                                     长度                              比特位置
符号位 Sign (S) :             1bit                               b63
指数部分 Exponent (E) : 11bit                               b62-b52
尾数部分 Mantissa M : 52bit                               b51-b0
双精度的指数部分(E)采用的偏置码为 1023
求值方法 :(-1)^S*(1.M)*2^(E-1023) Doc No. :T201711
2.3 数据规划表
得到一串数据流后,需要根据 <<Client_Interface>> 查找到想要的值,以下举个例子:
00 00 02 A8 10 00 00 00 2F 00 00 00 00 03 8B 86 2C 00 00 01 01 00 00 00 00 07 00 3F F0 00 00 00 00 00 00 00
00 00 00 00 00 00 00 3F F0 00 00 00 00 00 00 00 00 00 00 FB 01 BF E6 0D 03 A2 21 68 C0 BF E6 0D 04 02 6F BD
70 00 00 00 00 00 00 00 00 A2 7C BA 61 00 00 00 00 42 20 00 00 00 00 00 00 FD BF FF 37 C9 D1 10 B4 60 BF FF
37 C9 9E DA D1 58 00 00 00 00 00 00 00 00 40 4D 4A 6B 00 00 00 00 42 20 00 00 00 00 00 00 FD BF FE 69 EF 51
10 B4 60 BF FE 69 EF 68 BA 53 5C 00 00 00 00 00 00 00 00 3F E5 1E C4 00 00 00 00 42 20 00 00 00 00 00 00 FD
BF EB 6C 01 A2 21 68 C0 BF EB 6C 01 B8 86 92 28 00 00 00 00 00 00 00 00 3E CC 8C C1 00 00 00 00 42 20 00 00
00 00 00 00 FD 3F F9 B2 30 E0 00 00 00 3F F9 B2 30 DB 85 39 BE 00 00 00 00 00 00 00 00 3C 0D 82 9A 00 00 00
00 42 20 00 00 00 00 00 00 FD 3F EC 31 07 20 00 00 00 3F EC 31 07 22 FA 33 88 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 42 20 00 00 00 00 00 00 FD 00 00 00 65 04 40 76 54 BC 6A 7E F9 DB BF DB A2 01 75 22 EF C4
3F C2 B2 81 03 36 70 E3 BF 54 03 60 3D F9 89 FA 40 08 EE 22 48 C4 E3 D4 3F A3 E9 9F A7 E7 B0 D3 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 35 09 BA E9 8F FF FE 70 00 00 BE A0 DE F3 EE 80 00 00 BE A4 B9 48 87 94 00
00 3E 6E 55 8F B7 34 32 CB BE 2D 7E 2C B0 22 F1 AA 00 00 00 00 00 00 00 00 00 00 00 4A 03 00 00 00 00 00 00
00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3F 70 62 4D E0 00 00 00 3F 70 62 4D E0 00
00 00 41 F0 00 00 42 40 00 00 41 2C FC 74 00 00 00 00 01 00 00 1D 67 17 9C 00 00 00 00 00 25 02 01 01 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 00 00 00 00 00 00 00 00 FD 00 00 00 3D 07 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 3F 7E C1 3F 78 BD 86 86 00 00 00 08 08 00 01 00 00 00 00 2B 0A 1D 67 17 9C 00 00
3F BF 2C 54 F2 C6 94 EE BF B9 AE 3C F5 F2 31 CD 3F DE F6 6B FB 6D 7D C0 00 00 00 00 00 00 00 00
得到了以上一堆字节流后,现需要解析机器人的 X 坐标。我们参阅 Client_Interface 》得知 X Value 4 表格
下且总长度为 101 bytes
字节流已经使用了颜色区分方便阅读。从《 Client_Interface 》得知前四位为( Value X )的字节大小,第 五位为当前的 Value 值,我们可找到 Value 4 如下:
Contains Confidential Information of UR, do not distribute without permission
Page 4 of 6
Contains Confidential Information of UR, do not distribute without permission
Page 5 of 6
Doc No. :T201711
00 00 00 65 04 40 76 54 BC 6A 7E F9 DB BF DB A2 01 75 22 EF C4 3F C2 B2 81 03 36 70 E3 BF 54 03 60 3D F9 89
FA 40 08 EE 22 48 C4 E3 D4 3F A3 E9 9F A7 E7 B0 D3 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
如何确认查找的表格是否正确,可通过前面 4 个字节进行一个计算:将前 4 个字节转换为 10 进制后,代入以下公
式可得到表格 vlaue 4 的长度: [a],[b],[c],[d]: Length is c*256+d = 101
所以对应 Cartesian Info (value 4),我们可知道 X 的值就是 40 76 54 BC 6A 7E F9 DB
3.0
方案说明和结果
3.1 数据解析
1 、以下我们通过最基础的方法解析我们得到的数据,解析 X 坐标值。
解析: 40 76 54 BC 6A 7E F9 DB
1 、把十六进制转换为二进制:得到 64 位的二进制,第 1 位为符号位,第 2 位至 11 位位阶码,其余为
尾数,如以下使用了颜色做区分:
0 1000000 0111 0110 01010100 10111100 01101010 01111110 11111001 11011011
把阶码转换为 10 进制: 1031 (2 进制转换 10 进制 )
通过以下计算到: 1X2^0+1X2^1+1X2^2+1X2^10=1031
3 、利用计算公式把数值代入公式: (-1)^S*(1.M)*2^(E-1023)
因为代入公式后得知 -(1)^0*(1. 01100101010010111100011010100111111011111001)*2^8
所以将小数点往右边移动 8 位得 101100101.010010111100011010100111111011111001
101100101.010010111100011010100111111011111001 转换为 10 进制得
4 、如何计算的?请看下面:
整数部分人工转换位 10 进制:
101100101
1 X2^0+ 0 X2^1+ 1 X2^2+ 0 X2^3+ 0 X2^4+ 1 X2^5+ 1 X2^6+ 0 X2^7+ 1 X2^8=357
小数点后三位人工计算方法:
.010010111100011010100111111011111001
0^(1/2)+1^(1/4)+0^(1/8)+ 0^(1/16)+ 1^(1/32) + 0^(1/64)+ 1^(1/128) + 1^(1/256) + 1^(1/512)+ 。。。。。。
0.25+0.03125+0.007+0.0039+0.001953=0.29…….
通过上位机获取机器人的坐标值、 IO 信号、电流、电压等进行二次开发。
通过以上的例子,我们可知道得到数据字节流后应该如何着手进行开发,以上是最基本的整个转换 原理,再在其他脚本语言利用代码进行转换数据,相信会对大家有一定的帮助。

 

菁特智能提供上述技术资料

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

菁特智能KingTech

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

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

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

打赏作者

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

抵扣说明:

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

余额充值