Overview of client interfaces
Overall explanation of client interfaces
UR robot can interact with external devices by different types of communication interfaces.
- Primary/Secondary Interfaces
UR controller provide servers to send robot state data and receive URScript commands. The primary interface transmits robot state data and additional messages. The secondary interface transmits robot state data only. The data is mainly used for communication between GUI and controller. Both accept URScript commands with 10 Hz update rate. It makes possible to control robot remotely without robot program. Information in regards to ports and update, please check this article: Remote Control Via TCP/IP
- Real-time Interfaces
The functionality of real-time interface is similar with primary/secondary interfaces. The controller transmits the robot state data and receives URScript commands. The main difference is update rate. Information in regards to ports and update, please check this article: Remote Control Via TCP/IP
- Dashboard Server
A Universal Robot can be controlled from remote by sending simple commands to the GUI over a TCP/IP socket. This interface is called the "Dashboard Server". Main functions of the server are to load, play, pause, and stop a robot program, set user access level, and receive feedback about robot state.
- Socket Communication
UR robot can communicate with outside equipment through TCP/IP protocol. Data can be transferred via socket communication between robot and other device. In the socket communication, robot acts as client and other device play a role as server. URScript provides commands which open and close sockets, and send and receive different data formats.
- XML-RPC
XML-RPC is a Remote Procedure Call method that uses XML to transfer data between programs over sockets. With it, the UR controller can call methods/functions (with parameters) on a remote program/server and get back structured data. By using it, a complex calculation which is not available in URScript can be performed. In addition, other software packages can be combined with URScript.
- RTDE (Real-Time Data Exchange)
RTDE is designed as robust replacement for the real-time interface. This allows UR controller to transmit custom state data and accept custom set-points and register data. Information in regards to ports and update, please check this article: Remote Control Via TCP/IP - 16496
- ROS/ROS2 Driver
The ROS driver is developed on top of the Universal_Robots_Client_Library and supports key cobot functionalities such as: pause at emergency stop, safeguard stop, automatic speed scaling to avoid violating safety settings, and manual speed scaling from the teach pendant. In addition, the externalControl URCap allows the integration of ROS2 behaviors into the robot program.
The driver is compatible with the entire UR robot lineup, from 3 kg payload to 30 kg payload, and includes all robots from the CB3 series and newer. For more detailed documentation, consult the GitHub repository.
Interface Type
Link |
|
Primary/Secondary Interfaces |
|
Real-time Interface |
|
Dashboard Server |
|
Socket Communication |
|
XML-RPC |
|
Real-Time Data Exchange (RTDE) |
|
ROS/ROS2 Driver |
Good Practice
If you try connecting to a port which is already being used, it would cause a conflict and communication failure. It is recommended to use other ports than occupied ports and frequently used ports to avoid conflicts.
Ports used in UR robots include the followings.
Port Number | Interface |
80 | Reserved by UR |
502 | Modbus TCP |
2222 | Ethernet/IP |
7827 | Internally used |
7828 | Internally used |
8080 | Not recommended since many old URCaps default to this port |
29919 | Internally used |
29998 | Internally used |
29999 | Dashboard server |
30001 | Primary |
30002 | Secondary |
30003 | Real-time |
30004 | RTDE |
30011 | Primary read only |
30012 | Secondary read only |
30013 | Real-time read only |
30020 | Interpreter mode |
34964 | Profinet |
40000 | Ethernet/IP |
40002 | Profinet |
44818 | Ethernet/IP |
49152 | Profinet |
50003 | Internally used (e-Series only) |
50004 | Internally used (e-Series only) |
50005 | Internally used (e-Series only) |
50006 | Internally used (e-Series only) |
An overview of local host usage(include 3rd party contributors) is available here: https://forum.universal-robots.com/t/overview-of-used-ports-on-local-host/8889