fkeickl
搞电的没前途
级别: 略有小成
精华主题: 0
发帖数量: 96 个
工控威望: 221 点
下载积分: 1815 分
在线时间: 120(小时)
注册时间: 2010-12-14
最后登录: 2024-10-28
查看fkeickl的 主题 / 回贴
楼主  发表于: 2021-10-22 13:27
MODULE MainModule
    VAR socketdev socket_client;
    VAR robtarget zhuaqudian{4, 6} := [
        [[[304.27,-308.43,388.88],[0.00605288,-0.921946,0.386945,-0.0159119],[-1,0,-3,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],
    [[302.63,-500.33,388.88],[0.00611035,-0.921938,0.386966,-0.0158309],[-1,0,-3,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],
    [[301.71,-691.96,388.88],[0.00627679,-0.921946,0.386953,-0.0156304],[-1,0,-3,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],
    [[103.85,-307.68,388.88],[0.00626996,-0.921947,0.386949,-0.0156282],[-1,0,-3,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],
    [[105.97,-499.35,388.88],[0.006271,-0.921942,0.386961,-0.0156303],[-1,0,-3,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],
    [[103.92,-690.97,388.88],[0.00627827,-0.921947,0.386949,-0.0156317],[-1,0,-3,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]],
    
        [[[-122.05,-310.89,388.88],[0.00645941,-0.921936,0.386973,-0.0156182],[-2,0,-3,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],
    [[-124.22,-502.28,388.88],[0.00648626,-0.921942,0.38696,-0.0156026],[-2,0,-3,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],
        [[-117.92,-694.13,388.88],[0.00646402,-0.921923,0.387005,-0.0155904],[-2,0,-3,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],
    [[-316.41,-307.47,388.88],[0.00645302,-0.921949,0.386938,-0.0156957],[-2,0,-4,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],
    [[-319.25,-504.26,388.88],[0.00656645,-0.921893,0.387072,-0.0156806],[-2,0,-3,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],
    [[-314.56,-695.07,388.88],[0.00652637,-0.921896,0.387066,-0.0156755],[-2,0,-3,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]],
    
        [[[300.57,694.78,388.88],[0.00621611,-0.921927,0.386999,-0.0155978],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],
    [[302.88,502.19,388.88],[0.00621539,-0.921926,0.387003,-0.0155974],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],
    [[301.33,309.79,388.88],[0.00621415,-0.921925,0.387004,-0.0156002],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],
    [[107.10,694.54,388.88],[0.0062171,-0.921926,0.387002,-0.0155948],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],
    [[105.49,503.12,388.88],[0.00621575,-0.921925,0.387004,-0.0155983],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],
      [[106.00,311.19,388.88],[0.00621052,-0.92192,0.387017,-0.0156025],[0,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]],
        
        [[[-122.27,693.85,388.88],[0.00620335,-0.921927,0.386999,-0.0156261],[1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],
    [[-122.85,502.21,388.88],[0.00621437,-0.921928,0.386997,-0.0156302],[1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],
    [[-125.59,309.09,388.88],[0.00622092,-0.921929,0.386993,-0.0156214],[1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],
    [[-320.87,694.16,388.88],[0.0062127,-0.921927,0.386998,-0.0156269],[1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],
    [[-320.92,503.94,388.88],[0.00621883,-0.921923,0.387007,-0.0156311],[1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],
        [[-323.41,311.32,388.88],[0.00621518,-0.921925,0.387003,-0.015623],[1,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]]
        ];
        
      
    
      

    VAR robtarget yuandian := [[584.30,98.67,388.88],[0.000927732,0.9636,-0.267343,0.00115184],[0,-1,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
    VAR robtarget touliao :=  [[595.42,114.45,115.41],[8.54151E-05,0.951234,-0.308469,-6.39389E-05],[0,-1,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
    VAR robtarget newguodudian := [[111.88,-309.89,388.88],[0.000206237,2.54575E-05,-1,-0.000101683],[-1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
    

    PROC main()
        VAR bool retval;
        SocketClose socket_client;
        SocketCreate socket_client;
        SocketConnect socket_client, "192.168.100.61", 8088;
        
        WHILE TRUE DO
            WaitDI DI02,0;
            Reset DO00;    
            Reset DO01;    
            Reset DO02;
            Reset DO03;
            Reset DO04;
            IF DI00=0 AND DI01= 0 THEN
                gotoAreaRobotPos 1, retval;
            ELSEIF DI00 = 1 AND DI01= 0 THEN
                gotoAreaRobotPos 2, retval;
            ELSEIF DI00 = 0 AND DI01= 1 THEN
                gotoAreaRobotPos 3, retval;
            ELSEIF DI00 = 1 AND DI01= 1 THEN
                gotoAreaRobotPos 4, retval;
            ENDIF
            
            IF(not retval) THEN
               WHILE DI04=0 DO
                    WaitDI DI04, 1;
                    WaitTime 0.05;
               ENDWHILE
            
            ENDIF
            
        ENDWHILE
      
    ENDPROC

    PROC jiexiweizhi(string sp, num index, inout robtarget data{*}, inout bool isError, inout bool isLastLayer)        
        VAR num count := 1;
        VAR num pos_count := 1;
        VAR bool is_sucess := TRUE;
        VAR num para{7}:=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0];
        VAR string inputstr;
        VAR num found;
        
        VAR string split_string := "";
        VAR num split_index;
        
        VAR string remain_string := "";
        VAR bool isRecvComplete := FALSE;
        VAR bool isParseComplete := FALSE;
        
        isError := FALSE;
        isLastLayer := FALSE;
        
        WHILE not isRecvComplete DO
            SocketReceive socket_client, \Str:=inputstr, \Time:=WAIT_MAX;
            
            found := StrMatch(inputstr, 1, ";");
            
            IF found <= StrLen(inputstr) THEN
                isRecvComplete := TRUE;
                inputstr := StrPart(inputstr, 1, found - 1);
            ENDIF
            
            split_index := 1;
            split_string := "";
            isParseComplete := FALSE;
            
            WHILE not isParseComplete DO
                found := StrMatch(inputstr, split_index, sp);
                
                IF found <= StrLen(inputstr) THEN
                    
                    IF strLen(remain_string) > 0 THEN
                        split_string := remain_string + StrPart(inputstr, split_index, found - split_index);
                        remain_string := "";
                    ELSE
                        split_string := StrPart(inputstr, split_index, found - split_index);
                    ENDIF                
                
                    is_sucess := strtoval(split_string, para{count});
                    IF is_sucess THEN
                        Incr count;
                    ENDIF      
                    
                    IF count = 8 THEN
                        parsePos para, data{pos_count};
                        Incr pos_count;
                        count := 1;
                    ENDIF
                    split_index := found + 1;
                    
                ELSE
                    isParseComplete := TRUE;
                    remain_string := StrPart(inputstr, split_index, StrLen(inputstr) - split_index + 1);
                ENDIF
            
            ENDWHILE
                        
        ENDWHILE
        
        found := StrMatch(remain_string, 1, "error");  
        IF found <= StrLen(remain_string) THEN
            isError := TRUE;
        ENDIF
        
        found := StrMatch(remain_string, 1, "yes");
        IF found <= StrLen(remain_string) THEN
            isLastLayer := TRUE;
        ENDIF
        
    ENDPROC
    
    PROC parsePos(num data{*}, inout robtarget robpos)
        robpos.trans.x := data{1};
        robpos.trans.y := data{2};
        robpos.trans.z := data{3};
        robpos.rot.q1 := data{4};
        robpos.rot.q2 := data{5};
        robpos.rot.q3 := data{6};
        robpos.rot.q4 := data{7};
    ENDPROC
    
    PROC gotoAreaRobotPos(num index, inout bool retVal)
        VAR robtarget new_position{6};
        VAR string inputstr;
        VAR num found;
        VAR bool flag2 := TRUE;
        VAR bool isError;
        VAR bool isLastLayer;
        
        retval := TRUE;





程序如上,其中
PROC main()
        VAR bool retval;
        SocketClose socket_client;
        SocketCreate socket_client;
        SocketConnect socket_client, "192.168.100.61", 8088;
不知道什么意思









有压力就有动力
zmc5552008
级别: 探索解密
精华主题: 0
发帖数量: 57 个
工控威望: 147 点
下载积分: 1971 分
在线时间: 97(小时)
注册时间: 2015-04-26
最后登录: 2024-06-30
查看zmc5552008的 主题 / 回贴
1楼  发表于: 2021-10-22 17:29
ABB机器人的socket通讯,找相关资料看看就知道怎么回事了
gander2020
智能制造
级别: 家园常客
精华主题: 0
发帖数量: 105 个
工控威望: 853 点
下载积分: 1833 分
在线时间: 90(小时)
注册时间: 2020-05-26
最后登录: 2024-11-22
查看gander2020的 主题 / 回贴
2楼  发表于: 2021-10-23 00:25
大概解释下,就是一个  Socket通讯的过程,连接相机或PC时使用:
PROC main()    
        VAR bool retval;     //定义一个数据类型为bool  的变量 retval
        SocketClose socket_client;  //关闭Socket连接 socket_client,这个socket_client变量在最顶部有定义,数据类型为socketdev
        SocketCreate socket_client;//创建Socket连接 socket_client
        SocketConnect socket_client, "192.168.100.61", 8088; //连接目标或地址:192.168.100.61 端口号 8088
本帖最近评分记录:
  • 下载积分:+1(写程序的电工)
  • 下载积分:+1(xfxiaoxin) 真诚感谢!
  • 下载积分:+1(18168137791) 真是好人!
  • 下载积分:+1(海见雨) 热心助人!
  • 工业机器人智能制造应用服务 15915776420
    fkeickl
    搞电的没前途
    级别: 略有小成
    精华主题: 0
    发帖数量: 96 个
    工控威望: 221 点
    下载积分: 1815 分
    在线时间: 120(小时)
    注册时间: 2010-12-14
    最后登录: 2024-10-28
    查看fkeickl的 主题 / 回贴
    3楼  发表于: 2022-07-26 21:20
    谢谢了
    有压力就有动力
    无缘做大神
    级别: 略有小成
    精华主题: 0
    发帖数量: 70 个
    工控威望: 217 点
    下载积分: 1150 分
    在线时间: 77(小时)
    注册时间: 2021-09-16
    最后登录: 2024-11-22
    查看无缘做大神的 主题 / 回贴
    4楼  发表于: 2022-07-27 08:24
    这个程序是通讯程序模板,没什么好解释的啊
    gi_robot
    级别: 正式会员
    精华主题: 0
    发帖数量: 34 个
    工控威望: 87 点
    下载积分: 344 分
    在线时间: 5(小时)
    注册时间: 2022-08-09
    最后登录: 2024-11-18
    查看gi_robot的 主题 / 回贴
    5楼  发表于: 2022-08-11 09:51
    自己挖自己
    ldf710613
    级别: 论坛先锋
    精华主题: 0
    发帖数量: 367 个
    工控威望: 1154 点
    下载积分: 1301 分
    在线时间: 31(小时)
    注册时间: 2022-04-09
    最后登录: 2023-12-18
    查看ldf710613的 主题 / 回贴
    6楼  发表于: 2022-08-12 13:33
    谢谢分享
    ldf710613
    级别: 论坛先锋
    精华主题: 0
    发帖数量: 367 个
    工控威望: 1154 点
    下载积分: 1301 分
    在线时间: 31(小时)
    注册时间: 2022-04-09
    最后登录: 2023-12-18
    查看ldf710613的 主题 / 回贴
    7楼  发表于: 2022-08-23 12:40
    amwjetu
    级别: 正式会员
    精华主题: 0
    发帖数量: 31 个
    工控威望: 84 点
    下载积分: 527 分
    在线时间: 11(小时)
    注册时间: 2022-08-19
    最后登录: 2024-11-18
    查看amwjetu的 主题 / 回贴
    8楼  发表于: 2022-08-24 12:35
    金信集团2022
    级别: 网络英雄
    精华主题: 0
    发帖数量: 1791 个
    工控威望: 5003 点
    下载积分: 722 分
    在线时间: 123(小时)
    注册时间: 2022-09-13
    最后登录: 2024-11-22
    查看金信集团2022的 主题 / 回贴
    9楼  发表于: 2023-01-06 08:05
    谢谢分享