ABB机器人以太网通讯大数据接收

更新时间:2023-07-19 04:30:11 阅读: 评论:0

ABB机器人以太网通讯大数据接收
ABB机器人以太网通讯,在接收上位机的数据时通常使用String数据类型来存放接受的数据,但是一个String型数据最多只能存放80个字节的数据,如果我们接收的是相机发给机器人的XY数据,那么单一个X的数据加上分隔符就有9个字节(-000.000_),一个点位有XY占用18个字节,80个字节仅仅只能存4个点位数据,如果视觉需要一次发200个点位那是远远不够的,所以我们就不能用string型数据来接收,而用rawbytes型数据来接收,一个rawbytes型数据有1024个字节,再用字符串流的型式就可以接收无限长度的数据,下面我以:VTGC 0 +009 +111.111 -222.222 +111.113 -222.224 +111.115 -222.226 +111.117 -222.228 +111.119 -222.210………………..
的数据格式做例子:
VAR socketdev socket1;
VAR rawbytes rawbytel{100};
风水大忌VAR num count1;
VAR num reg1;
VAR string recvdata{2000};
PROC main_socket()
SocketClo socket1;
SocketCreate socket1;
SocketConnect socket1,"127.0.0.1",8050;
FOR i FROM 1 TO 100 DO
ClearRawBytes rawbytel{i}; !循环清空数组
ENDFOR香炸鸡腿
reg1:=1;
老人言
SocketReceive socket1\rawdata:=rawbytel{1};
reg1:=reg1+1;
WHILE SocketPeek(socket1)>0  DO
大猩猩电影
SocketReceive socket1\rawdata:=rawbytel{reg1};
reg1:=reg1+1;
ENDWHILE
reg1:=reg1-1;
count1:=1;
ENDPROC
以上程序实现了读取和储存,因为一个rawbytes型数据也就只有1024个字节,要接收的200个点位远远超过1024个字节,所以其实200个点位的数据,被截取成多个1024分别存到rawbytes数据里面,接下来我们就要对rawbytes里面储存的数据进行截取:
截取的规则是:1.先把“VTGC”截取出来;2.再把0 +009,这个是个数也先截取出来,后面的数据按9位截取
梭形程序如下:
UnpackRawBytes rawbytel{1},1,recvdata{1}\ASCII:=5;
UnpackRawBytes rawbytel{1},6,recvdata{2}\ASCII:=7;
FOR j from 1 to reg1 DO
FOR i FROM 1 TO (RawBytesLen(rawbytel{i})-12)/9  DO
UnpackRawBytes rawbytel{j},4+I*9,recvdata{count1}\ASCII:=9;
count1:=count1+1;
ENDFOR
当归ENDFOR
这样截取以后
我和李老师做性示范23Recvdata{1}就会是VTGC
Recvdata{2}就会是+009
偏分发型女
Recvdata{3}就会是+111.111
下面是实际运行情况:
数据已经按我们需要的格式解析出来。
总结:
此处的难点在于:1.上位机发送的数据格式要固定;
2.我们储存到rawbytes里面的数据并不是有顺序的,也就是一
组数据是-222.223;那么有可能-22存在了rawbytes{1};而
2.223存在了rawbytes{2}里面;这时候需要截取rawbytes{1}
的后三位和rawbytes{2}的前5位凑成一组数据,余下的
rawbytes{2}在按照9个字节一组截取,其余的类似。

本文发布于:2023-07-19 04:30:11,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1087276.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   截取   接收
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图