# Call Program in any way possible?

**URL:** https://forum.universal-robots.com/t/call-program-in-any-way-possible/18071
**Category:** Technical Questions
**Created:** [December 9, 2021, 9:40am UTC](https://forum.universal-robots.com/t/call-program-in-any-way-possible/18071 "2021-12-09T09:40:20Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![k.koenders](https://avatars.discourse-cdn.com/v4/letter/k/45deac/32.png) [@k.koenders](https://forum.universal-robots.com/u/k.koenders)
#### Post date: [December 9, 2021, 9:40am UTC](https://forum.universal-robots.com/t/call-program-in-any-way-possible/18071/1 "2021-12-09T09:40:20Z")

</div>

I have a UR10 CB3.1 (Polyscope 3.15) variant that im using for automated bending scheetmetal.  
The idea for the program was that a barcode scanner would scan the product number and the software would call up the right program if avaliable.

At the moment this is all done in 1 program with blocks and i set the block as active.  
But this way im worried ill hit a limit or problems. Im not talking about 5 or 10 programs blocks, im talking about at least 100 mayby up to a 1000 programs cropt in 1 program over time.  
I know there are subprograms but i have workerd with those and i wasnt a fan. It worked oke but had some problems. (mayby because of the way i programmed it.)

Is there a way i can call a program. Not like a subprogram but reload the controller with a new program and installation. (installation may be important for some tasks.)  
I havent found a way to call other programs in any way, not even via script.

If anyone knows the anwser, please share.

---

<div class="post-metadata">

### Author: ![cg1](https://avatars.discourse-cdn.com/v4/letter/c/c77e96/32.png) [@cg1](https://forum.universal-robots.com/u/cg1)
#### Post date: [December 9, 2021, 2:01pm UTC](https://forum.universal-robots.com/t/call-program-in-any-way-possible/18071/2 "2021-12-09T14:01:55Z")

</div>

Do look into the Dashboard server as its possible to load and play/start programs through it, using a socket connection.  
[https://www.universal-robots.com/articles/ur/dashboard-server-e-series-port-29999/](https://www.universal-robots.com/articles/ur/dashboard-server-e-series-port-29999/)

Best Regards Casper

---

<div class="post-metadata">

### Author: ![k.koenders](https://avatars.discourse-cdn.com/v4/letter/k/45deac/32.png) [@k.koenders](https://forum.universal-robots.com/u/k.koenders)
#### Post date: [December 9, 2021, 7:30pm UTC](https://forum.universal-robots.com/t/call-program-in-any-way-possible/18071/3 "2021-12-09T19:30:29Z")

</div>

thank you for the reply but i have a UR10 not a UR10e.  
This doesnt work for my application.

also this is not what im looking for for this application.  
I need to load it from a program because a operator will be right next to it.

Interesting read tho.

---

<div class="post-metadata">

### Author: ![cg1](https://avatars.discourse-cdn.com/v4/letter/c/c77e96/32.png) [@cg1](https://forum.universal-robots.com/u/cg1)
#### Post date: [December 10, 2021, 12:58pm UTC](https://forum.universal-robots.com/t/call-program-in-any-way-possible/18071/4 "2021-12-10T12:58:34Z")

</div>

> [@k.koenders](#):
>
> thank you for the reply but i have a UR10 not a UR10e.

wrong link then  
[https://www.universal-robots.com/articles/ur/dashboard-server-cb-series-port-29999/](https://www.universal-robots.com/articles/ur/dashboard-server-cb-series-port-29999/)  
but it Should still work, you will properly need to use it through a URcap then to fit it your application.

---

<div class="post-metadata">

### Author: ![anon24091142](https://avatars.discourse-cdn.com/v4/letter/a/dfb087/32.png) [@anon24091142](https://forum.universal-robots.com/u/anon24091142)
#### Post date: [December 14, 2021, 7:05pm UTC](https://forum.universal-robots.com/t/call-program-in-any-way-possible/18071/5 "2021-12-14T19:05:11Z")

</div>

You may be able to do it using a Switch Statement.

I’m currently using a UR5 CB3.1 (Polyscope 3.15) integrated with a camera system to do part inspections. Currently have separate programs for each part, up to over 65 parts now. I have setup a top level program (loads on default) that uses Switch Statement and Subprograms. The subprogram just call the inspection part program. When shop floor operator powers on system, this top level program loads by default, a numeric keypad is displayed, operator enters part number, part inspection program runs for entered part number. The only limitation is the keypad is numeric - not alpha-numeric.

General program structure for using Switch Statement and Subprograms in my application is -

Top Level Program  
Popup statement (Requesting user to enter part number)  
Switch (user defined name) - i just used “partNum” for fx  
Case 1 (where 1 is replaced by numeric number associated for a given part number - this is the number the operator will enter into the keypad)  
Call Subprogram X (selected from list of Subprograms below)  
Case 2  
Call Subprogram Y  
Case n  
Call Subprogram Z

Subprogram X (Load desired part number program into Subprogram, and check “keep subprogram file updated with this program”)  
Subprogram Y  
Subprogram n

---

<div class="post-metadata">

### Author: ![maximilian.palm](https://avatars.discourse-cdn.com/v4/letter/m/258eb7/32.png) [@maximilian.palm](https://forum.universal-robots.com/u/maximilian.palm)
#### Post date: [April 22, 2025, 2:29pm UTC](https://forum.universal-robots.com/t/call-program-in-any-way-possible/18071/6 "2025-04-22T14:29:01Z")

</div>

Just in case anyone stumbles upon this thread in the future:  
I’ve built a URCap called **ScanPilot** that lets you load programs from barcodes on a Universal Robot. It also includes a switch-case node for barcode logic and a program switcher that works during execution. Could be useful if you’re dealing with lots of program changes or want to reduce operator errors.

There’s a demo version available here if you want to try it out:  
👉 [ScanPilot URCap - Palm Software](https://palm-software.de/scanpilot-urcap/)

---

<div class="post-metadata">

### Author: ![palm-software](https://avatars.discourse-cdn.com/v4/letter/p/f05b48/32.png) [@palm-software](https://forum.universal-robots.com/u/palm-software)
#### Post date: [April 24, 2025, 8:33am UTC](https://forum.universal-robots.com/t/call-program-in-any-way-possible/18071/7 "2025-04-24T08:33:58Z")

</div>

Just in case anyone stumbles upon this thread in the future:  
I’ve built a URCap called “ScanPilot” that lets you load programs from barcodes on a Universal Robot. It also includes a switch-case node for barcode logic and a program switcher that works during execution. Could be useful if you’re dealing with lots of program changes or want to reduce operator errors.

There’s a demo version available here if you want to try it out:  
👉 [ScanPilot URCap - Palm Software](https://palm-software.de/scanpilot-urcap/)

Hope that helps!

---

<div class="post-metadata">

### Author: ![Leonard.Lucas](https://avatars.discourse-cdn.com/v4/letter/l/bcef8e/32.png) [@Leonard.Lucas](https://forum.universal-robots.com/u/Leonard.Lucas)
#### Post date: [May 6, 2025, 1:07pm UTC](https://forum.universal-robots.com/t/call-program-in-any-way-possible/18071/8 "2025-05-06T13:07:36Z")

</div>

Hoi K.Koenders,

I work at a facility where we do a lot of HMLW (High mix low volume) production.  
One way we found to work around this was to make a ‘recipe’ section in your program.  
The idea is to have a popup, where the operator fills a product number, which is used to select a case corresponding to the product number.  
In this switch case, you write into variables as per your recipe.  
Let’s say for example how far in X and Y you want to make a bend, the angle for each etc.

Then once this has run, you can run a program that looks at specific things in your recipe, for example

If X bend = true,  
do some stuff  
end of if

If Y bend = true,  
do some stuff  
end of if.

I’m not sure if this is exactly what you will need.  
This method makes it easy to generate new programs, but it is a pain to test, as you cannot just ‘move to’ variable waypoints.  
But parameterized programs with recipes makes the workflow for adding new products much quicker. (Assuming it has been set up really good)
