How to connect Visual Components and Robotstudio for simulation commissioning

Hello, everyone.
I’m tryin to connect VC to Robotstudio for simulation commission, but keep failing.

  1. IRC5 OPC Server need to be used?
  2. How do I set the Robot’s IP address so that the VC can connect?
    Both software are installed on the same computer.
    Has anyone encountered this problem, please help me with this, thank you.
1 Like

That IRC5 OPC Server seems to be a “classic” OPC DA server instead of the modern OPC Unified Architecture (UA). VC can’t connect to that directly but DA <=> UA middleware software exists.

Thank you for your reply. I’m using IRC5 OPC Server which is the latest version.
You’re right, IRC5 OPC Server mode is DA.

Anyone else have suggestions?

Hi,

I have made VC-RS connection with UDP socket. Check the attached zip. There is a RS Pack&Go and a VC model. Unpack RSPAG and open the project on RS. Open VC model on same PC. Hit play on VC and then try jogging RS model or run the program on it. RS should echo joint values and outputs to the VC model. And VC model should return inputs to RS.

RS model does the communication in background tasks and robot system must have Multitasking and PC Interface options. VC model communicates via python script in “UDP link” component. Script uses standard python socket module to establish UDP socket.

And OPC cannot be used as VC support OPC UA and as far as I know ABB still only has support for OPC DA.

VC_RS_Demo.zip (798.4 KB)

-k

2 Likes

Perfect, your program solved my problem.You’re so cool.

Hi Keke,

Thank you for the information.Have tried this and its working fine In this add-on robot is controlled in rs & same joint movements are shown in VC, but is it possible to control the robot in Robot studio through VC so that there is no need of importing mod file or creating program separately?.

By the way how could you able to add new task to IRB 120 controller? I tried to add task to IRB 2600ID and not able to in controller configuration settings.

Please let me know.

Thank you

Hi @satish,

For doing the opposite control flow you could have a main program in RS that has a while loop and one MoveJ inside it. Target would be persistent robtarget that you would write in background task and input coordinates would come as UDP message from VC. I don’t have an example of this unfortunately.

To add a background task make sure that system has option “Multitasking”. That enables you to create new tasks. You should look for RobotWare documentation for Multitasking option. I’m pretty sure it would explain this in detail.

-k

Hi @keke

I am quite new with ABB robot but I need to make a connection between MATLAB and RoboStudio to follow the path that is generated in MATLAB software using UDP connection. Also, I need to receive the joints feedback signal from RoboStudio because to be sure the robot is reached to the desire position, then I will send the increments untill to reach the desired position. I have seen you are quite familiar in this topic, I hope that you have some code or any sugession to help me doing that.

I should initially check in in RoboStudio using virtual controller, and if the results are satisfying, then I will implemented in the real robot which is ABB irb120 (controller is irc5 m2004).

Hi,

I’ve used Matlab in the past but I don’t have experience in establishing a socket connection with it. You could probably find answers for that on Matlab’s help or forum.

On RobotStudio you should be able to use the code from my example on earlier message. The RAPID background task in it doesn’t really care which software connects to it via socket.

-k

I see you very familiar with the software of VC, I now have a ABB robot program files (mod), the robot’s motion, linear motion program to import, I tried to not have a problem, but there have a lot of logic, pickle involve the input and output, I now want to import the application in VC, how should i do?
regards


I successfully connected VC and Robot Studio with IRC5 OPC UA SERVER, but I do not know how to relate VC and the variables in RS. I did not find the corresponding VC variables in the RS variable scale. Please kindly give me some guidance, thank you.

how to connect Robotstudio with emulate 5000

Generally, you would map the joint value of each axis, so in robot component, look for VALUE property of each axis, and check Objects in server for the axis values from the controller.

Not a question for this forum.

@tzmshbzx refer to the IRC5 OPC UA Server manual and info on its information model. The server uses similar data model as other robot controllers, so look for MotionDevice node. To be more specific, look for ActualPosition variable for each axis in the server structure.

The ABB OPC UA server does allow you to access to the ActualPosition values.

With KUKA OPC UA, basic package restricts access to ActualPosition but gives access to system variables like $ACT_POS. The premium package does allow access to ActualPosition variables.

VC 4.3 now supports connection to SIMIT, which in turn can connect to RobotStudio. The connection between RobotStudio and SIMIT uses a smart component in RobotStudio, and the connection uses shared memory. So there are several ways to connect VC to RobotStudio.

Apologies for reviving an ancient thread, but I didn’t want to make a new thread specifically for my question:
Would this same approach work on a real robot and if not, what needs to be done differently? We have a test setup with an ABB IRB 1200 that is controlled by a Siemens PLC via Profinet, and it would be great if we could mirror the physical robot’s movements on Visual Components.

Also, I would like to wish happy holidays for everyone here!

With a real IRC5 controller you have few options.

First of all my example (How to connect Visual Components and Robotstudio for simulation commissioning - #5 by keke) with a socket will surely work but it requires those few robot options I mention.

Secondly if you have fieldbus connection from robot to PLC and if you have Multitasking robot option you can write a background task that reads current robot joint values and writes them to signals mapped to the fieldbus. And from PLC you have few different options to relay that info to VC, namely OPC.UA and S7 protocols for Siemens.

And thirdly you can possibly use OPC.UA which has been introduced to ABB robots not too long ago. I haven’t tried that and don’t know how to set it up. But I would imagine that you can use that with both virtual and real controllers. But for that I would ask support from ABB on how to setup OPC.UA server for your case.

-k

Thank you for your quick reply, keke.

We do have the controller options that you mentioned, and we also have access to VC Premium so we can try the direct S7 approach… We will probably try both the socket and the fieldbus methods, and see which one works the best for us.

Is there anything extra to note with the socket method compared to the virtual controller setup? I’m assuming it wouldn’t work without some modifications to both the RAPID and Python code.

I don’t think you need to modify anything except the IP address on the code. RAPID and python should work as is I think. Nice thing about RobotStudio is that whatever RAPID code you get running on virtual controller that usually also runs on the real controller as long as the systems match (same options etc.).

-k

A little update in case you’re interested:

We built the fieldbus connection and got it up and running fairly smoothly.

The RobotStudio/RAPID part is simply just a bunch of analog outputs i.e. one per robot axis (axis values are read & updated constantly in a background task similar to the socket method).

The values are then sent to the PLC to be scaled, and eventually to VC using the S7 connection plugin. It runs very smoothly, and we’re quite happy with the results. Will definitely be using this method in the future as well.

I suppose the hardest part here was the signal scaling, otherwise it was all fairly straight-forward.

Thank you for the tips keke!

1 Like