Today is...
Monday, August 20, 2018
Welcome to, the global online
community of automation professionals.
Featured Video...
Featured Video
Wiring and programming your servos and I/O just got a lot easier...
Our Advertisers
Help keep our servers running...
Patronize our advertisers!
Visit our Post Archive
modbus RTU 485 2 wire
no receive data from slave

I try to communicate with slave device by using Modbus RTU RS 485 2 wire connection. It appears that the slave device is receiving data as the COMM LED on the slave device flashes when I ask it via Modscan64.

Problem is that there is no data comming back. All I get is an "received invalid response to modbus query" error message. Any suggestions to what might be wrong or how to check would be appreciated greatly.

Maybe you should reduce number of registers that read by ModScan.

Some devices cannot read with many registers in one polling time.

Yes I have tried that already. The slave device has 5 options for the comm port. Command reply mode, continuous transmission method, RS485 mode, 4-wire Modbus, 2-wire Modbus. I tried cross over cable, I tried straight through cable. I wire pins 3, 5, 8. I plug into com port on PC. I try serial-to-USB adaptor. Anyone with any suggestions????

"continuous transmission mode" is NOT Modbus. RS-485 is probably some proprietary protocol.

You should start with configuring the Comm port for "2 wire Modbus" (I'm presuming "2 wire" means 2 wire half duplex RS-485).

Make sure that the serial communication parameters are identical on the slave and Modscan 32 .

In Modscan32, Connection > Connect > Connection Details dialog box

If you are using a USB/485 converter, the virtual comm port for the USB device has to match the COM port used by Modscan.

The other serial settings - baud rate, word length = 8, parity, stop bits, must be the same in Modscan and the slave.

The "Protocol Selection" defaults to RTU, but check it.

Confirm that Modscan's Device ID is the same as the slave device node ID, which has to configured on the slave.

Reduce the Modscan "Length" setting to 2 or 4, some small number that is easily viewed and does not take a long time to fetch.

Select the MODBUS Point Type to correspond to the data format for the slave register that you want to read, for instance, 03: HOLDING REGISTER.

Modscan's Address is decimal and starts its count from one, not zero. Do not insert/type the leading (x) numeral, like the numeral (4) in the register address (4)0033. Modscan uses the indexed offset, 0033, for the register address (4)0033.

If there's no communication, try swapping the driver lines on one end, sometimes one vendor's labels are the opposite of another vendor's labels.

Then poll a register with a known, non-zero value with Modscan.

Can you check the request and response? You can do this in Modscan by selecting 'Setup', 'Display options', 'Show Traffic'. Response should be according to manual

If response is invalid, doublecheck baud rate, data bits, stop bits and/or swap wires.

If you are using an RS485 to USB convertor, try replacing by a different type/brand.

I use no converter only use gender bender to swap pinout for DB9 so patch cable will connect to com port on PC. Slave device has markings of R+ R- T+ T-. I connect R+ and T+. And R- and T-. Ii try swapping pins 3 and 8 over at PC.

I tried odd , even and No parity. I reduce address down to length 5 in modscan. All I manage to get is com LED on slave to flash but nothing at modscan except incorrect response message.

Any more ideas?