# Combination of Communication Methods

**URL:** <https://forum.universal-robots.com/t/combination-of-communication-methods/41993>\
**Category:** Technical Questions\
**Created:** [December 12, 2025, 8:28pm UTC](https://forum.universal-robots.com/t/combination-of-communication-methods/41993 "2025-12-12T20:28:54Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![s2510828010](https://avatars.discourse-cdn.com/v4/letter/s/5f9b8f/32.png) [@s2510828010](https://forum.universal-robots.com/u/s2510828010)\
**Post date:** [December 12, 2025, 8:28pm UTC](https://forum.universal-robots.com/t/combination-of-communication-methods/41993/1 "2025-12-12T20:28:54Z")

</div>

For my project i want two main things:

- On the Robot a .urp programm should be executed, Here it is essential, that this programm is made on the teach panel (Later i want to remotely load/play/etc.)
- Secondly I want to change variables or position variables, For example the var changes and now the Robot moves to a point but the new x,y or z is x + var

Since Dashboard does not allow the change of variables and RTDE cannot call .urp programms like the Dashboard …

Which combination of communication methods should be used here? Is there also a way to get both functionalities within one method?  
REPEAT: I do not want to fully send ur-script commands

NOTE: I am using Python and a UR15 e-Series Robot

Structure schould be like:

– .urp “normal” commands"  
– robot signals for new variable (Here Python and Robot should both know when to send and expect)  
– python sends this variable  
– Robot continues with “normal” .urp commands  
– And repeat

---

<div class="post-metadata">

**Author:** ![s2510828010](https://avatars.discourse-cdn.com/v4/letter/s/5f9b8f/32.png) [@s2510828010](https://forum.universal-robots.com/u/s2510828010)\
**Post date:** [December 12, 2025, 8:32pm UTC](https://forum.universal-robots.com/t/combination-of-communication-methods/41993/2 "2025-12-12T20:32:55Z")

</div>

\*Addition  
The Interpreter Mode sounds somewhat promising for this, however how can I check for, when Python and Robot are allowed to exchange  
In .urp the Interpreter is started by calling interpreter\_mode()  
However how can i signal this to Python?

---

<div class="post-metadata">

**Author:** ![efn](https://avatars.discourse-cdn.com/v4/letter/e/35a633/32.png) [@efn](https://forum.universal-robots.com/u/efn)\
**Post date:** [December 15, 2025, 6:07am UTC](https://forum.universal-robots.com/t/combination-of-communication-methods/41993/3 "2025-12-15T06:07:22Z")

</div>

How about calling your programs as subprograms inside a main program instead of actually loading new .urp files? This way, you would not have to deal with the dashboard server, as you point out yourself.

The drawbacks are that you will have to edit the main program each time a new program is introduced. And you cannot keep track of the sequence execution as easily.

But it’ll be a much simpler setup communication-wise, since you can just alter a variable to call a new program. And you can have a general home sequence in the BeforeStart, which does not need to be included in each program.

---

<div class="post-metadata">

**Author:** ![abelch](https://avatars.discourse-cdn.com/v4/letter/a/b4bc9f/32.png) [@abelch](https://forum.universal-robots.com/u/abelch)\
**Post date:** [December 15, 2025, 5:19pm UTC](https://forum.universal-robots.com/t/combination-of-communication-methods/41993/4 "2025-12-15T17:19:14Z")

</div>

I use a combination of the Dashboard and the Modbus Server build into the UR.

I use a script on the computer to give Dashboard commands then the HMI sends offsets via Modbus. I don’t use Python; however, I am sure there is a Modbus lib out there that you could use rather than the HMI like I am.  
I basically have my program written and when needed the waypoint is a variable that can be offset by a specific Modbus address value.

> **[Modbus Server - 16377 | Universal Robots Support](https://www.universal-robots.com/articles/ur/interface-communication/modbus-server/)**

---

<div class="post-metadata">

**Author:** ![s2510828010](https://avatars.discourse-cdn.com/v4/letter/s/5f9b8f/32.png) [@s2510828010](https://forum.universal-robots.com/u/s2510828010)\
**Post date:** [December 15, 2025, 7:07pm UTC](https://forum.universal-robots.com/t/combination-of-communication-methods/41993/5 "2025-12-15T19:07:13Z")

</div>

I tried Dashboard with combination of Interpreter. It may not be the most elegant way, but works properly. (I feel RTDE sometimes behaves more complex, compared to socket communication.  
Thank you for your idea, I solved my problem

In addition I noticed: Do not believe AI-Tools. In my experience the AI tells you, that using Interpreter on 30020 will not work, and everything strictly has to be done on Secondary Interface
