RobotStudio event

independent axis

pugalenthi
edited January 28 in Robot Controller
I have two modules: one for my robot and another for my external axis mechanism. I use independent movement to control the external axis, and it works fine. However, the robot program must also run simultaneously; the external axis must operate independently of the robot and spin on its own. I want to run both at the same time.

Best Answer

  • Forge_Engineering
    Answer ✓
    Hi Pugalenthi,

    It sounds like you are on the right track; for multimove to work you need multitasking, then you need 2 separate tasks, one for the robot and one for the external axis, each running their own separate programs.

    They will move independently by default, but you can get them to move together by using certain synchronization commands. There is a lot to learn here, but I recommend you start by looking at the RAPID Instructions, Functions & Data Types manual. There is an example under the 'SyncMoveOn' command that shows a lot of the functions involved and how they are used, you will need to look at each of these functions to see how they work.

    Bear in mind also that you will need to use an extra optional argument in your Move commands, which is \ID, this option specifies an ID for the movement command, so that the multimove system knows which move commands are synchronized.

    Good Luck,

    Harry

Answers

  • MODULE Module1
        CONST robtarget Target_20:=[[1561.913429511,0,1697.5],[0.5,0,0.866025404,0],[0,0,0,0],[0,9E+09,9E+09,9E+09,9E+09,9E+09]];
        CONST robtarget Target_10:=[[1761.913429511,0,1697.5],[0.5,0,0.866025404,0],[0,0,0,0],[0,9E+09,9E+09,9E+09,9E+09,9E+09]];
        CONST robtarget Target_9:=[[1761.913429511,200,1697.5],[0.5,0,0.866025404,0],[0,0,0,0],[0,9E+09,9E+09,9E+09,9E+09,9E+09]];
        CONST robtarget Target_8:=[[1761.913429511,200,1497.5],[0.5,0,0.866025404,0],[0,0,0,0],[0,9E+09,9E+09,9E+09,9E+09,9E+09]];


        PROC Path_10()
            MoveL Target_20,v1000,z100,tool0\WObj:=wobj0;
            MoveL Target_10,v1000,z100,tool0\WObj:=wobj0;
            MoveL Target_9,v1000,z100,tool0\WObj:=wobj0;
            MoveL Target_8,v1000,z100,tool0\WObj:=wobj0;


        ENDPROC
        PROC main()
            Path_10;
            ActUnit M7DM1;
            IndCMove M7DM1,1,70\Ramp:=100;
            WHILE TRUE DO
                Path_10;
            ENDWHILE
        ENDPROC
    ENDMODULE this code help me to run both the robot and external axis separately