RobotStudio event

Loading custom dll in Robotstudio Program

Hi Community, 

I have written a custom application in C++ which in theory I can convert to a dll. I was wondering  if it is possible to include these dlls in a regular RobotStudio Program, and eventually run them on the Robot Controller. 
I was thinking since it is possible to use the sdk inside of RobotStudio to create addins, maybe there is a way to sort of "reverse" the process by calling my dll from inside a robot routine or something similar.

Any help towards a solution would be greatly appreciated.

Thank you
Yanik N.

Comments

  • John Wiberg
    John Wiberg ✭✭✭
    edited June 2013
    Don't know if I fully understand what you are trying to accomplish.

    But for the specific question - you will never get a dll to run on the Robot Controller.

    However what you can do is have a PC application with access to your dll which communicate with the Robot Controller (using PC SDK). That way whatever your dll is doing its results could become accessible for the controller.

    Example 
    In RAPID you set a number of variables/IOs.
    The PC app monitors those RAPID varialbes/IOs and wait for specific conditions.
    When those conditions arise the app makes some calculations/whatever.
    Then writes the end result directly to the RAPID program.

    Recommendations are:
  • Hi John,

    Thank you very much for your reply; I have written an algorithm that performs a few operations, and uses Matlab for the final processing. I was hoping to run the whole process on the Robot controller as I have found a way to turn the whole algorithm into a dll.

    In fact part of what I am trying to do is something which I am not sure is well supported in RAPID (Multithreading). I read about the semi-parrallel task in the manual, but I dont think it will be fit for my work. 
    The idea here is to continuously record data from a laser range sensor, while the robot moves over a certain distance, this gives a specific pair of distance data. The problem is if those data are not acquired at the same rhythm, they will be useless as it will not be possible to match the distance travelled by the robot to the distance measured by the sensor. I thought maybe one way of reducing the overhead would be to run the algorithm directly on the Robot Controller. But seems like this is a dead end now.
    Going to have to thinker a bit more on how to achieve that.

    Regards

    Yanik N.
  • Hi Yanick,

     

    While I have not set them up I have seen several robot cells with functionality like this. They have been set up using RAPID Multitasking [option 623-1] and in some cases Sensor Interface [option 628-1]. If you contact your local ABB they can give you the corresponding manuals.

    You can easily test Multitasking in a RobotStudio simulation, but Sensor Interface would require a hardware setup.

     

     

    A workaround if what is in your dll is truly important to you, you could maybe include it in a FlexPendant SDK application, but you'd have to make it smallish (due to memory) and have it compatible with Compact Framework .NET.

    Then it wouldn't recide on the controller but it would still be always available, etc.

     

    With the regards to the rythm etc, how precise do you have to be? It should be possible to have timestamps on both measuring the laser and the robot motion to be able to sync calculations.

     

     

     

  • Hi John, 

    Thanks again for your reply. I am trying to avoid using extra hardwares as my ressources are currently very limited. I saw your suggestion about using the PC SDK I was just hoping there was a more straightforward way for me to achieve this without having to rewrite my application using C#. 

    You have been a great help, Thank you.
    Yanik N.
  • Back after summer chaos - just curious how it wen't.  If you explain the process you are trying to achieve I could probably ask some colleagues and come with some suggestions. Like is the laser on the robot or next to it? etc

     

    You can have oldstyle dlls in .NET, you just have to handle them properly
    http://msdn.microsoft.com/en-us/library/aa290048(v=vs.71).aspx

    There is also some .NET C++ stuff that could be a bridge.

     

  • Hi Yanick,

    is the laser sensor connected to the robot controller or to an external PC that records the data?

    We have several customers who use the RobotReferenceInterface to send out robot position data in up to 4ms rate including a time stamp when the data was measured / the robot will reach the position (you may send measured position and planned robot position)...

    Could provide you an example, if useful

    regards

     

    regards
    Christian