fkeickl
搞電的沒前途
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 95 個
工控威望: 219 點
下載積分: 1810 分
在線時間: 119(小時)
注冊時間: 2010-12-14
最后登錄: 2024-09-14
查看fkeickl的 主題 / 回貼
樓主  發(fā)表于: 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
發(fā)帖數(shù)量: 57 個
工控威望: 147 點
下載積分: 1971 分
在線時間: 97(小時)
注冊時間: 2015-04-26
最后登錄: 2024-06-30
查看zmc5552008的 主題 / 回貼
1樓  發(fā)表于: 2021-10-22 17:29
ABB機器人的socket通訊,找相關(guān)資料看看就知道怎么回事了
gander2020
智能制造
級別: 家園常客
精華主題: 0
發(fā)帖數(shù)量: 104 個
工控威望: 852 點
下載積分: 1661 分
在線時間: 88(小時)
注冊時間: 2020-05-26
最后登錄: 2024-08-21
查看gander2020的 主題 / 回貼
2樓  發(fā)表于: 2021-10-23 00:25
大概解釋下,就是一個  Socket通訊的過程,連接相機或PC時使用:
PROC main()    
        VAR bool retval;     //定義一個數(shù)據(jù)類型為bool  的變量 retval
        SocketClose socket_client;  //關(guān)閉Socket連接 socket_client,這個socket_client變量在最頂部有定義,數(shù)據(jù)類型為socketdev
        SocketCreate socket_client;//創(chuàng)建Socket連接 socket_client
        SocketConnect socket_client, "192.168.100.61", 8088; //連接目標或地址:192.168.100.61 端口號 8088
本帖最近評分記錄:
  • 下載積分:+1(寫程序的電工)
  • 下載積分:+1(xfxiaoxin) 真誠感謝!
  • 下載積分:+1(18168137791) 真是好人!
  • 下載積分:+1(海見雨) 熱心助人!
  • 工業(yè)機器人智能制造應用服務 15915776420
    fkeickl
    搞電的沒前途
    級別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 95 個
    工控威望: 219 點
    下載積分: 1810 分
    在線時間: 119(小時)
    注冊時間: 2010-12-14
    最后登錄: 2024-09-14
    查看fkeickl的 主題 / 回貼
    3樓  發(fā)表于: 2022-07-26 21:20
    謝謝了
    有壓力就有動力
    無緣做大神
    級別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 68 個
    工控威望: 215 點
    下載積分: 1016 分
    在線時間: 68(小時)
    注冊時間: 2021-09-16
    最后登錄: 2024-09-19
    查看無緣做大神的 主題 / 回貼
    4樓  發(fā)表于: 2022-07-27 08:24
    這個程序是通訊程序模板,沒什么好解釋的啊
    gi_robot
    級別: 正式會員
    精華主題: 0
    發(fā)帖數(shù)量: 34 個
    工控威望: 87 點
    下載積分: 344 分
    在線時間: 5(小時)
    注冊時間: 2022-08-09
    最后登錄: 2024-05-16
    查看gi_robot的 主題 / 回貼
    5樓  發(fā)表于: 2022-08-11 09:51
    自己挖自己
    ldf710613
    級別: 論壇先鋒
    精華主題: 0
    發(fā)帖數(shù)量: 367 個
    工控威望: 1154 點
    下載積分: 1301 分
    在線時間: 31(小時)
    注冊時間: 2022-04-09
    最后登錄: 2023-12-18
    查看ldf710613的 主題 / 回貼
    6樓  發(fā)表于: 2022-08-12 13:33
    謝謝分享
    ldf710613
    級別: 論壇先鋒
    精華主題: 0
    發(fā)帖數(shù)量: 367 個
    工控威望: 1154 點
    下載積分: 1301 分
    在線時間: 31(小時)
    注冊時間: 2022-04-09
    最后登錄: 2023-12-18
    查看ldf710613的 主題 / 回貼
    7樓  發(fā)表于: 2022-08-23 12:40
    amwjetu
    級別: 正式會員
    精華主題: 0
    發(fā)帖數(shù)量: 31 個
    工控威望: 84 點
    下載積分: 527 分
    在線時間: 11(小時)
    注冊時間: 2022-08-19
    最后登錄: 2024-09-17
    查看amwjetu的 主題 / 回貼
    8樓  發(fā)表于: 2022-08-24 12:35
    金信集團2022
    級別: 工控俠客
    精華主題: 0
    發(fā)帖數(shù)量: 1765 個
    工控威望: 4773 點
    下載積分: 380 分
    在線時間: 120(小時)
    注冊時間: 2022-09-13
    最后登錄: 2024-09-20
    查看金信集團2022的 主題 / 回貼
    9樓  發(fā)表于: 2023-01-06 08:05
    謝謝分享