分享

RAPID带分隔符字符串数据直接转数组

 诗和远方calptz 2022-06-10 发布于广东

转载请先后台留言,大家一起支持原创,推动机器人使用和发展

本公众号对各类ABB机器人应用,仿真,毕业设计提供技术支持,详细后台留言

本公众号诚挚希望与各机器人培训机构,机器人使用单元合作,提供技术支持,详细后台留言

   1. 例如机器人通过socket,接收到相机发来的数据为-1,2.3,4.5(表示x=-1y=2.3rz=4.5,通常做法为在字符串中寻找分隔符“,”,然后分割成若干数字字符串,再转化。具体参见拆分字符串并放入数组
   2. 实际boo1:=StrToVal(string,variable)在使用时,只要前面字符串string与后面需要转化的变量形式一致,即可直接转化。
PERS num data{3}:=[-1,2.3,4.5];  VAR String s_recv:= '-1,2.3,4.5'  !字符串为'-1,2.3,4.5'  VAR bool flag1;  flag1:=StrToVal('['+s_recv+']',data);  !将字符串前后增加[],构成与data一致形式     x:=data{1};     y:=data{2};     rz:=data{3};

   3.又例如,可以将字符串”[1,2,3,4,5,6]”整体转化到jointtarget的robax中

VAR jointtargetjtmp:=[[1,2,3,4,5,6],[9E9,9E9,9E9,9E9,9E9,9E9]];flag1:=StrToVal('[1,2,3,4,5,6]',jtmp.robax);

4.若接受的数据包括字符和数字,也可自己创建数据类型(例如以下的cvdata第一个数据为string,其他数据为num

RECORD cvdata        string name;        num x;        num y;        num rz;ENDRECORD
    VAR socketdev socket1;    var string s_recv:='';    PERS cvdata d1:=['abc',6,7,8];
    PROC test1111()        VAR bool flag1;        SocketClose socket1;        SocketCreatesocket1;        SocketConnectsocket1,'127.0.0.1',8025;        WHILETRUEDO            SocketReceivesocket1\Str:=s_recv;            flag1:=StrToVal('['+s_recv+']',d1);             ENDWHILE

图片

********************************

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多