RobotStudio event

Step by step

Options

Is there some way that i can make the robot execute the next move instruction and then stop when the robot gets lets say a pulse from a PLC. Today i have solved it with a routine that checks the signal after every movement but i want to solve it without all the extra routine calls that my solution demands. All ideas are welcome.

Below is an example on my solution.

MoveJ

  If diStep=1 Step;

MoveJ

If diStep=1 Step;

MoveJ

And so on and on and on.

Comments

  • j_proulx
    Options

    Hello,

    Use the System input Stop At End of Instruction.

    The action value Stop at End of Instruction stops program execution after the current<?:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

    instruction is completed. A program cannot start when this signal is high.

    Stop at end of Instruction can be used by a PLC to stop the program execution when the current instruction is completed.

    Jim Proulx

  • Mippaloo
    Options
    But i dont want the robot to stop after every instruction. Just after every move instruction.
  • PerSvensson
    Options

    Hi
    One idea is to write an overloaded Move instruction that includes the MoveJ and also the IO signal control.

    Per Svensson
    Robotics and Vision Specialist
    Consat Engineering
  • f you can use linear movement then maybe this could work...

    [CODE]

    PROC temp()

    SearchLStop,diStep,pStoredPos,pYourPos1,v100,tTempWObj:= wobjtemp;

    !...!

    SearchLStop,diStep,pStoredPos,pYourPos2,v100,tTempWObj:= wobjtemp;

    !....

    ERROR

        IF ERRNO=ERR_WHLSEARCH THEN

          !Error, no signal until position pYourPos reached.

          !Do your stuff.

        ENDIF

    ENDPROC
    [/CODE]



  • Mippaloo
    Options
    How do you men to write an overloaded instruction. Can you give me an example.
  • PerSvensson
    Options

    Hi
    What i mean is that you write your own procedure that contains the move and the wait for signal.

    Something like this
    PROC MoveLStop(robtarget inTarget,speeddata inSpeed,zonedata inZone,PERS tooldata inTool,PERS wobjdata inWobj)

    !Move to position
    MoveL inTarget,inSpeed,inZone,inToolWObj:=inWobj;
    !Wait for continue signal
    WaitDI diContinueMove,1;
     ENDPROC

    Per Svensson
    Robotics and Vision Specialist
    Consat Engineering
  • j_proulx
    Options

    Hello,

    Have you looked at CheckTriggIO? The trap routine could be a STOP or WAIT instruction. You need fixed position events  option.

    TriggCheckIO is used to define conditions for testing the value of a digital, a group of digital, or an analog input or output signal at a fixed position along the robot's movement path. If the condition is fulfilled then there will be no specific action. But if it is not then an interrupt routine will be run after the robot has optionally stopped on path as fast as possible. To obtain a fixed position I/O check, TriggCheckIO compensates for the lag in the control system (lag between servo and robot).<?:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

    The data defined is used for implementation in one or more subsequent TriggL, TriggC, or TriggJ instructions.

  • Mippaloo
    Options

    The suggestion i got from Per worked perfectly.

    Thanks!