MiR and UR Communications - Modbus TCP

We’ve been working on setting up a demo at our company linking a MiR500 and UR5e to share a task. We decided to use Modbus TCP to do so and set up the UR as the client and the MiR as the server. Doing so was not difficult and we found good support from documentation share by a distributor (Allied Automation out of Indianapolis).


The trick came in determining what address should be used on the UR for the PLC register addresses in the MiR. In the MiR control panel, the PLC registers for integers are listed as 41001/41002 through 41199/41200 (each has two 16-bit words, so 2 “addresses”). To configure these within the UR with Modbus Client Register Input/Output, the leading 4 should be moved. Therefore:

MiR PLC Register 1 (32-bit integer) = MiR 41001/41002 = UR Modbus Client Register 1001 and 1002
(it seems that the UR can only recognize 16-bits at a time)

This isn’t a major reveal to Modbus veterans, but would have been helpful info to those of us just starting out with this kind of integration. Does anyone else has other getting-started hints that could help us others?

Hey @torrey.bievenour,

Sounds interesting! MiR have a URCap that does assist with the sync of the two systems: GitHub - mir-robots/MiR-URCaps-integration: URCaps project for integration with MiR robots


@Ebbe ,

Thanks for the link. We found one at the link below (MiRintegration-1.0.3.urcap) that may be the same, but not sure.

Unfortunately, when we tried to put it into a program as a node, it seemed to lock up with UR (to the point of needing to force shutdown the robot). Lock up actually came during program creation, not even when trying to run the program. If we could get it to work, it would probably be much easier than messing with Modbus.


UR+ | MIR / UR synchronisation URCap (universal-robots.com)


It is the same, but the source is available on Github.

Ok, so the program node freezes when you open the view?

Where you able to establish connection to the MiR?



Yes, if you add the node and view it, the whole system was freezing up. We were never able to tell if it connected.

We were able to connect through Modbus though, so we know we had the IP address correct.


I experienced the same issue with MiR URcap. Since the URcap only read and wrote to the PLC registers, I decided to use the native UR Modbus read and write.

I also use the native ur modbus to communicate with MIR,but sometime ur will pop up an error ‘modbus signal disconnect with the device’,I must refresh the ur modbus button and can run the program.And i set the refresh frequency 1Hz.The problem still appears.Do you have the same problem?

@tszhang Our application was only for a short period and is no longer active. I do not recall ever getting that error though. Sorry to not be able to offer more.


When using the UR robot modbus/tcp client interface you should always enable ‘‘sequential mode’’ to make the communications more robust. This is done within the advanced settings of the driver. Sequential mode is not enabled by default.

you should always enable ‘‘sequential mode’’

Sequential mode is not enabled by default.

Seems like an easy quality of life fix for your users to default it to that mode if it should always be that way, right?