I have an application where a beckhoff PLC is controlling a nachi robot. the PLC sends XYZ positions to the robot and i want to use the same positions and send them via OPC-UA to Visual components. are there variables to connect to control the TCP position ?

I haven’t used the OPC-UA functionality inside VC yet, but I have built a digital twin inside VC, using the .NET api to drive a robot using data arriving over TCP and UDP, so I can give you a little advice. The problem with sending a robot to a Cartesian pose is that there isn’t enough data to fully define how the robot should achieve it.

The two pictures above show the robot at the exact same position and orientation, but with different configurations. There are in fact 8 possible configurations for every pose when using a 6 axis robot. You can see these inside VC in the programming tab when you select a robot. So when you specify a pose, you need to specify the configuration also. An easy way of doing this, and is the way I do it in my digital twin, is to just send the joint positions. You can then write a script to take the OPC-UA data and move the robot to the given joint positions. As long as you are using the correct 3D model, it will mirror the real robot without having to deal with configurations…