DoF - a Robotiq Community
Warning sign
The Dof Community was shut down in June 2023. This is a read-only archive.
If you have questions about Robotiq products please reach our support team.

Hello Everyone! I am working on a project in my company where we are introducing a UR10 robot in between 2 machines for material handling. We have integrated UR10 with Modbus TCP which will communicate with Machine#2 (a measurement instrument) which is operating on Java.

Modbus TCP has 2 Input Registers and 8 Output Registers all working on the same Slave address and same IP Address. Each time Machine#2 starts & stops, it send a signal to Input Register #1, as a 1 & 0 respectively. Machine#2 decides Pass/Fail of the component and sends a signal as 1 or 2 to Input Register#2.

The Issue I am currently having is:

1) Somehow nothing gets written to Input Register#2, while Input Register#1 works perfectly fine, 1 & 0 gets written to it at the correct time. The java code which handles sending of signal, is simple and correct. No added loops, proper wait times to complete the 1st process, before starting the next. Also, after writing a value to Modbus, the Java code reads back from Input Register#2, it receives the value as 65536, which nobody knows what it means. The UR robot program, is suppose to act as per the Input Register#2, but since it does not get any value, it just skips everything and returns to Home. Is there something on the Modbus setup that i might be doing wrong? what could be a solution for this? I am using Register# (133-134) for inputs and (135-142) for outputs, which are general purpose registers.

I would really appreciate any insight and suggestions from the community. I have always followed the discussions, and questions and have gained good confidence for working with UR Robots through the solutions seen here.

Thanks to everyone in advance.