![RobotStudio event](https://new.abb.com/images/librariesprovider89/default-album/robotstudio-webinar-arc-welding.jpg)
Step by step
![Mippaloo](https://secure.gravatar.com/avatar/0cb700ea9e458e6bb512da411ff1e9cf/?default=https%3A%2F%2Fus.v-cdn.net%2F5020483%2Fuploads%2Fdefaultavatar%2FK2266OAKOLNC.jpg&rating=g&size=200)
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
-
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
0 -
But i dont want the robot to stop after every instruction. Just after every move instruction.0
-
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 Engineering0 -
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]
0 -
How do you men to write an overloaded instruction. Can you give me an example.0
-
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;
ENDPROCPer Svensson
Robotics and Vision Specialist
Consat Engineering0 -
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.
0 -
The suggestion i got from Per worked perfectly.
Thanks!
0
Categories
- All Categories
- 5.5K RobotStudio
- 397 UpFeed
- 18 Tutorials
- 13 RobotApps
- 299 PowerPacs
- 405 RobotStudio S4
- 1.8K Developer Tools
- 250 ScreenMaker
- 2.8K Robot Controller
- 319 IRC5
- 63 OmniCore
- 7 RCS (Realistic Controller Simulation)
- 804 RAPID Programming
- 4 AppStudio
- 3 RobotStudio AR Viewer
- 19 Wizard Easy Programming
- 105 Collaborative Robots
- 5 Job listings