Universal Robots Forum

Job Change/Call from case statment

I am a new UR user, setting up my first project. I have my UR10e talking to a MITS plc over modbus (finally got this working after too much time)

Now I am beginning the programming, and wondered how people are doing job changes.

Normally, I have a MASTER job that waits for a part ready input, and a case statement to call different jobs based on the model of part presented.
In the polyscope, i have only found a call sub program option, which then gets added to the bottom of the MASTER program. Is this the only way to do this?
Has anyone written a URCAP to improve this ?

Hi @m.ricchino
More information would be required to offer any specific adviec. What exactly do you mean whewn you say “job changes”? What is a “job” in this process? is it a polyscope program? Is it a function the robot must perform? is it a PLC program? All these will affect what potential solutions the community can try and offer.

What is the wider application and the context behind this? Can you offer us a more detailed explanation of the current robot program and how it interacts with the PLC? With a more detailed description of your problem we will be able to see if we can offer a solution.

To use CASEs you need to use SWITCH. It’s on the Advanced tab. Inside the Switch is where all your CASEs go to determine program flow.

Hope this is what you’re looking for.

I am referring to separate robot jobs. My system runs 10-15 different models, all will require a different robot path to take.

In a standard industrial robot there is a normal job call command, where the program will load the job called.
From what i am seeing in the polyscope system, the other job is only called as a sub job, and those all show up at the bottom of the job file.

your statement about subprograms is correct. Inside of a given robot program, you have the ability to call another robot program as a sub program. These sub programs can be defined either from scratch at the bottom of the program tree, or if you have another program saved on the robot, you can also call an existing program as a subprogram. In this case, the program you have imported from a file will also appear as another program at the bottom of the program tree, and you can edit it there. If you would like to save any changes you make to the imported to program, there is a tick box on the sub program heading that will keep the program saved in the file system up to date when any changes are made to the imported copy.

That’s how I was understanding it.
Going to make for a crowded Master job, but that will just have to be how it is.


If you want to keep the program tree a little tider, if you have the header of a subprogram selected, there is a tick box in the command screen called “hide subprogram tree”, which will hide all noes within the subprogram, and neaten up the rest of the program.

1 Like

Depending on the abilities of your PLC, you can also put the robot in remote control mode and tell it to load a program by name over TCP port 29999 with the dashboard interface.

The string would look something like:
“load myProgram.urp\n”