we want to integrate a digital device with a UR robot via Modbus.
Our problem is, that the device is sending Modbus in Float or in integer 32bit. But the UR robot expects integer 16bit.
Unfortunately we cannot set the device to send in integer 16bit.
Maybe someone has experienced similar problems and found a solution for it?
Hi, Both the UR modbus client and server drivers will only support 16bit integers and do not support floating point data types. The only solution is going to be to have some intermediate device that can behave as a protocol gateway. This could be a PLC or some device from a company like AnyBus (if you just search ‘industrial communication protocol gateway’ you will find many). The URscript environment supports 32 bit integers and floating point number variables and so does the ethernetIP driver (adapter) of the robot so I would use a gateway that will behave as an EthernetIP scanner on one side (communicating to robots adapter as the slave) and then a modbus client or server on the other side (talking to your device).
You can create a Daemon that communicates with your external device via modbus. This will save the hassle of buying a bunch of equipment. However, there is a bunch of coding involved.
RTDE can be used for exchanging floating point values through general purpose registers.
My developed urcap for monitoring ethernet/ip register is able to show the values of general purpose integer and float register.