Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

Issues with IO control with RoboDK socket Driver and IRC5 controller

#1
Hello and thank you in advance.

I am quite new to the RoboDK environment and robotics in general actually.
I am trying to control an ABB robot (IRB 1200) with the IRC5 controller, through RoboDK. For online programming I am using the standard RoboDK socket driver module. I am able to control the movements of the robot without any issues with this method. Everything works fine but the moment I try to control any of the digital output signals of the robot, the socket driver stops running on the robot and I get the message "Implement setting Digital Outputs" on the flex pendant. I have to run the module again to be able to connect and control the movements again. I have attached the image of the messages on the Flex Pendant. The pointer seems to stop the program at line 288 (case 13). I have also tried trying multiple combinations for the name of the digital output to check if I am entering something wrong, but that doesn't seem to affect anything. 

   

Please let me know if I am missing something, or if any modifications to the driver mod file is required. I tried looking through the forum for similar issues, and found people facing similar issues. But none of the resolutions seems to be working for me. Kindly let me know if more details are required, any help is much appreciated.

Best regards,
Vivek


Attached Files Image(s)
   
#2
You should manually edit the MOD file to convert the numeric ID (num1) to a DO_Signal value for ABB IRC5 controllers. These are usually mapped by name in the ABB controller. Therefore, you may need to implement a custom Switch case to convert the ID to a variable name.
#3
Hello and thank you for your response.
I modified the MOD file and nested a long switch case for all the output signals with their respective names (for the ABB controller). I added this within the default condition of the main routine's switch case which is called by the RoboDK driver, to avoid modifying the driver.
I was also trying to convert the signal number received through the communication socket (from the RoboDK UI running on PC) directly to the name of the actual output signal, to avoid a long switch case. I thought it would work like concatenating a string, but RAPID environment dose not allow that for the 'signalxx' data type.

Overall, the nested switch case is not an elegant solution but it seems to work. I will probably have to figure out a similar work-around for the input channels.
Thank you so much for your input.
Regards,
Vivek
#4
Thank you for your feedback. I'm happy to hear you were able to make it work.

For your information, you may be able to run lines of code dynamicall calculated as a string using the % symbol. Example:
%function-string%
You can find an example here:
https://robodk.com/doc/en/Robots-ABB.html#FTP-ABB

I'm not sure if you can use it with variable assignments but you can try.

Another option is to trigger a function call to other procedures that can be defined later on.
  




Users browsing this thread:
1 Guest(s)