PC SDK 5.13: Execute single RAPID command
Achim
✭
Hi all,
I want to use the PC SDK to move an IRB 120 to a position (specified by axes positions).
Did I get it right, that the only way to do so, is to create a small RAPID program and transfer it to the controller? Or can I execute a single RAPID command directly?
Or is there any other (more straightforward) way to move the robot from PC SDK?
Best regards,
Achim
I want to use the PC SDK to move an IRB 120 to a position (specified by axes positions).
Did I get it right, that the only way to do so, is to create a small RAPID program and transfer it to the controller? Or can I execute a single RAPID command directly?
Or is there any other (more straightforward) way to move the robot from PC SDK?
Best regards,
Achim
0
Comments
-
Hi Achim,you can create the RAPID program in advance, which you start with PC SDK, and then update a jointtarget data from PC SDK.The program would run in a loop likeWHILE TRUE DOMoveAbsJ myJointtarget....;ENDWHILEIt can be stopped again using PC SDK.I have not tried this myself so it is just an idea. Anyone else on the forum that have done something similar?You can also use the Messaging class in PC SDK to send information to the RAPID program, like joint values or other things.I would try option 1 first.I have seen several people asking for this function in PC SDK. I'm a bit interested in the usage scenario. Do you mind share something about it here, or otherwise you can send a PM, if you like.0 -
Hi Niklas,
thank you for your reply. We are working on a research project in which a kinect sensor recognizes a scene and the software shell command the robot arm to grab objects in the scene. That's why i'm trying to avoid "hard-coded" RAPID programs. I'm new to PC SDK, so I wondered if there isn't some kind of command like SetPosition() (analog to the MechanicalUnit's GetPosition()).
0 -
Hi Achim,unfortunately there is no SetPosition(). The RAPID code does not need to be exactly hard coded with regards to the position. ABBs product PickMaster 3 for example is implemented using a static pice of RAPID (its a lot of code since it is a complex thing it does, but anyway) which extremely simplifed could be seen as an infinite loop where new position/robtarget data is aquired from the vision system and put on a queue. The infinite loop pops positions from the queue. As long as there is something on the queue the robot moves.So the RAPID code is hardcoded, but not the actual position.I will leave for vacation today so I'll not be able to assist you for some time. Hope you get more help from other users.Hints: Check the PC SDK Application Manual / API Reference for:* starting/stopping RAPID execution* loading RAPID module* writing to a RAPID data (variable)0 -
Hi,
I can suggest a similar method.
You can write a simple rapid code that sets and waits for inputs and between them goes to a robtarget. Such that:
WaitDI di1, 1;
MoveL myrobtarget, v1000, z10, tool0;
WaitRob InPos;
PulseDO do1;
You can listen the input do1 in a different thread then when the new position ready you can change the variable "myrobtarget" and set the input di1. This will make the robot move to new target in each time.
You can load this rapid code from pc to controller and start it.
So the position is not hard coded,and the rapid code is only a few lines.
0
Categories
- All Categories
- 5.5K RobotStudio
- 396 UpFeed
- 18 Tutorials
- 13 RobotApps
- 297 PowerPacs
- 405 RobotStudio S4
- 1.8K Developer Tools
- 249 ScreenMaker
- 2.7K Robot Controller
- 310 IRC5
- 59 OmniCore
- 7 RCS (Realistic Controller Simulation)
- 786 RAPID Programming
- AppStudio
- 3 RobotStudio AR Viewer
- 18 Wizard Easy Programming
- 105 Collaborative Robots
- 5 Job listings