中职组定制码垛


    PROC gjxinhao(robtarget dw,num x,num py)
        MoveL Offs(dw,0,0,py), v1000, fine, tool0;
        MoveL dw, v1000, fine, tool0;
        TEST x
        CASE 1:
            Set kh;
            WaitTime 1;
        CASE 2:
            Reset kh;
            WaitTime 1;
        CASE 5:
            Reset jz;
            WaitTime 1;
        CASE 6:
            Set jz;
            WaitTime 1;
        CASE 3:
            Set dxp;
            WaitTime 1;
        CASE 4:
            Reset dxp;
            WaitTime 1;
        CASE 7:
            Reset xxp;
            WaitTime 1;
        CASE 8:
            Set xxp;
            WaitTime 1;
        ENDTEST
        Reset kh;
        MoveL Offs(dw,0,0,py), v1000, fine, tool0;
    ENDPROC
    PROC zgj()
        IF gjxz = 1 THEN
            !reg1 := 3;
            !reg2 := 4;
            gjxinhao gjdw{1}, 1, 200;
            MoveL p80, v1000, fine, tool0;
        ELSEIF gjxz = 2 THEN
            !reg1 := 5;
            !reg2 := 6;
            gjxinhao gjdw{2}, 1, 200;
            MoveL p80, v1000, fine, tool0;
        ENDIF
    ENDPROC
    PROC main()
        WaitDI yunxing, 1;
        home;
        csh;
        zgj;
        FOR i FROM 1 TO 3 DO
            gjxinhao mdpta, 5, 150;
            MoveJ p70, v1000, fine, tool0;
            MoveL p60, v1000, fine, tool0;
            gjxinhao maptbdx{duoxing{1},mdsx{i}}, 6, 50;
        ENDFOR
        Routine1;
        home;
        WaitDI yunxing, 1;
        csh;
        zgj;
        MoveJ p90, v1000, z1, tool0\WObj:=wobj0;
        FOR i FROM 1 TO 6 DO
            pp Offs(mmdpta,0,reg1,0), 3, -100;
            WaitTime 0.5;
            Reset dxp;
            IF xpjz = 1 THEN
                Reset dxp;
                reg1 := reg1 + 65;
                Incr reg2;
            ELSE
                Reset dxp;
                MoveJ p50, v1000, fine, tool0;
                GOTO aaa;
            ENDIF
        ENDFOR
        MoveJ p50, v1000, fine, tool0;
        aaa:
        reg7 := reg2;
        TEST duoxing{1}
        CASE 1:
            FOR i FROM 1 TO 3 DO
                bb mmdptB{1,i}, 3, 100;
                WaitTime 0.5;
                IF xpjz = 1 THEN
                    Incr reg3;
                    Reset dxp;
                ENDIF
                IF xpjz = 0 THEN
                    Reset dxp;
                    buliao{i} := 1;
                ENDIF
                IF buliao{i} = 1 THEN
                    iii{i} := i;
                ENDIF
            ENDFOR
        CASE 2:
            FOR i FROM 1 TO 3 DO
                bb mmdptB{2,i}, 3, 100;
                WaitTime 0.5;
                IF xpjz = 1 THEN
                    Incr reg3;
                    Reset dxp;
                ENDIF
                IF xpjz = 0 THEN
                    buliao{i} := 1;
                    Reset dxp;
                ENDIF
                IF buliao{i} = 1 THEN
                    iii{i} := i;
                ENDIF
            ENDFOR
        CASE 3:
            FOR i FROM 1 TO 3 DO
                bb mmdptB{3,i}, 3, 50;
                WaitTime 0.5;
                IF xpjz = 1 THEN
                    Incr reg3;
                    Reset dxp;
                ENDIF
                IF xpjz = 0 THEN
                    buliao{i} := 1;
                    Reset dxp;
                ENDIF
                IF buliao{i} = 1 THEN
                    iii{i} := i;
                ENDIF
            ENDFOR
        ENDTEST
        MoveL p110, v1000, fine, tool0;
        MoveJ p100, v1000, fine, tool0;
        IF reg2 = 1 OR reg2 = 2 OR reg2 = 0 THEN
            FOR i FROM 1 TO 3 DO
                pp Offs(mmdpta,0,0,0), 3, -50;
                WaitTime 0.5;
                IF xpjz = 1 THEN
                    MoveL p130, v1000, fine, tool1\WObj:=wobj1;
                    MoveL p140, v1000, fine, tool0\WObj:=wobj0;
                    reg11 := reg11 + 25;
                    bb Offs(mmdptB{duoxing{1},i},0,0,reg11), 4, 8;
                    MoveL p150, v1000, fine, tool0;
                ELSE
                    home;
                ENDIF
            ENDFOR
        ENDIF
        IF reg2 >= 3 THEN
            FOR i FROM 1 TO 3 DO
                pp mmdpta, 3, -100;
                reg11 := reg11 + 20;
                MoveL p120, v1000, fine, tool1\WObj:=wobj1;
                MoveL p190, v1000, fine, tool1\WObj:=wobj1;
                bb Offs(mmdptB{duoxing{1},mdsx{i}},0,0,reg11), 4, 8;
                Incr reg2;
            ENDFOR
            home;
            Routine1;
            home;
        ENDIF
        IF reg2 < 3 OR reg3 < 3 THEN
            FOR y FROM 1 + reg2 TO 7 - reg3 DO
                IDelete intno1;
                IDelete intno2;
                CONNECT intno1 WITH buliao1;
                CONNECT intno2 WITH buliaowancheng;
                ISignalDO\Single, do0, 1, intno1;
                ISignalDO\Single, do1, 1, intno2;
                IF reg2 < 3 OR reg3 < 3 THEN
                    Set do0;
                    WaitTime 4;
                    Reset do0;
                    Set do1;
                    Reset do1;
                ENDIF
                IF reg3 < 3 THEN
                    pp mmdpta, 3, -100;
                    MoveL p120, v1000, fine, tool1\WObj:=wobj1;
                    MoveL p210, v1000, fine, tool1\WObj:=wobj1;
                    bb Offs(mmdptB{duoxing{1},y},0,0,20), 4, 50;
                    Incr reg3;
                    Incr reg2;
                ENDIF
                IF reg7 = 1 THEN
                    reg5 := 2;
                    pp mmdpta, 3, -100;
                    MoveL p120, v1000, fine, tool1\WObj:=wobj1;
                    MoveL p210, v1000, fine, tool1\WObj:=wobj1;
                    bb Offs(mmdptB{duoxing{1},reg5},0,0,20), 4, 8;
                    Incr reg2;
                    Incr reg5;
                ENDIF
                IF reg7 = 2 THEN
                    reg6 := 3;
                    pp mmdpta, 3, -100;
                    MoveL p120, v1000, fine, tool1\WObj:=wobj1;
                    MoveL p210, v1000, fine, tool1\WObj:=wobj1;
                    bb Offs(mmdptB{duoxing{1},reg6},0,0,20), 4, 8;
                    Incr reg2;
                ENDIF
            ENDFOR
        ENDIF
        Routine1;
        home;
        WaitDI yunxing, 1;
        csh;
        zgj;
        FOR i FROM 1 TO 3 DO
            bb Offs(mmdptB{duoxing{1},mdsx{i}},0,0,20), 3, 0;
            MoveL p50, v1000, fine, tool0;
            pp Offs(mmdpta,0,350,0), 4, -100;
            MoveL p50, v1000, fine, tool0;
        ENDFOR
        FOR i FROM 1 TO 3 DO
            bb mmdptB{duoxing{1},mdsx{i}}, 3, 50;
            MoveL p50, v1000, fine, tool0;
            pp Offs(mmdpta,0,350,0), 4, -100;
            MoveL p50, v1000, fine, tool0;
        ENDFOR
        home;
    ENDPROC
    PROC csh()
        SocketClose socket1;
        SocketCreate socket1;
        SocketConnect socket1, "192.168.2.101", 1400;
        WaitTime 1;
        SocketSend socket1\Data:=byte3;
        SocketReceive socket1\Data:=byte4;
        SocketClose socket1;
        gjxz := byte4{4};
        duoxing{1} := byte4{1};
        mdsx{1} := byte4{7};
        mdsx{2} := byte4{10};
        mdsx{3} := byte4{13};
        reg2 := 0;
        reg3 := 0;
    ENDPROC
    TRAP buliao1
        StopMove;
    ENDTRAP
    TRAP buliaowancheng
        reg2 := 7;
        reg3 := 7;
        StartMove;
    ENDTRAP
    PROC Routine1()
        IF gjxz = 1 THEN
            MoveAbsJ jpos10\NoEOffs, v1000, fine, tool0;
            MoveJ Offs(gjdw{1},0,0,150), v1000, fine, tool0;
            MoveL gjdw{1}, v1000, fine, tool0;
            Set kh;
            WaitTime 1;
            MoveL Offs(gjdw{1},0,0,150), v1000, fine, tool0;
        ENDIF
        IF gjxz = 2 THEN
            MoveAbsJ jpos10\NoEOffs, v1000, fine, tool0;
            MoveJ Offs(gjdw{2},0,0,150), v1000, fine, tool0;
            MoveL gjdw{2}, v1000, fine, tool0;
            Set kh;
            WaitTime 1;
            MoveL Offs(gjdw{2},0,0,150), v1000, fine, tool0;
        ENDIF
    ENDPROC
    PROC Routine2()
        SocketClose socket1;
        SocketCreate socket1;
        SocketConnect socket1, "192.168.100.101", 1400;
        SocketReceive socket1\Data:=byte3;
        SocketSend socket1\Data:=byte4;
        gjxz := byte4{4};
        duoxing{1} := byte4{1};
        mdsx{1} := byte4{7};
        mdsx{2} := byte4{10};
        mdsx{3} := byte4{13};
    ENDPROC
    PROC pp(robtarget ddw,num xx,num ppy)
        MoveL Offs(ddw,0,0,ppy), v1000, fine, tool1\WObj:=wobj1;
        MoveL ddw, v1000, fine, tool1\WObj:=wobj1;
        TEST xx
        CASE 1:
            Set kh;
            WaitTime 1;
        CASE 2:
            Reset kh;
            WaitTime 1;
        CASE 5:
            Reset jz;
            WaitTime 1;
        CASE 6:
            Set jz;
            WaitTime 1;
        CASE 3:
            Set dxp;
            WaitTime 1;
        CASE 4:
            Reset dxp;
            WaitTime 1;
        CASE 7:
            Reset xxp;
            WaitTime 1;
        CASE 8:
            Set xxp;
            WaitTime 1;
        ENDTEST
    ENDPROC
    PROC bb(robtarget dwww,num xxx,num pyy)
        MoveL Offs(dwww,0,0,pyy), v1000, fine, tool0\WObj:=wobj0;
        MoveL dwww, v1000, fine, tool0\WObj:=wobj0;
        TEST xxx
        CASE 1:
            Set kh;
            WaitTime 1;
        CASE 2:
            Reset kh;
            WaitTime 1;
        CASE 5:
            Reset jz;
            WaitTime 1;
        CASE 6:
            Set jz;
            WaitTime 1;
        CASE 3:
            Set dxp;
            WaitTime 1;
        CASE 4:
            Reset dxp;
            WaitTime 1;
        CASE 7:
            Reset xxp;
            WaitTime 1;
        CASE 8:
            Set xxp;
            WaitTime 1;
        ENDTEST
    ENDPROC
    PROC home()
        MoveAbsJ home1\NoEOffs, v1000, fine, tool0;
        Reset jz;
        Set jz;
        Reset dxp;
        Reset xxp;
    ENDPROC

ENDMODULE

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值