Modbus Receive Timeout Error


Thread Starter



I am new to Modbus. Right now I am trying to communicate and read registers from PM5100 Schneider Digital Meter via USB485B (USB to RS485 Converter) using ModScan32.

For PM5100 baudrate can setup from 9600/19200/38400.
Parity Even/Odd/None.
No setup for data bit.

I have tried all of the connection but the result shows timeout error.

Communication traffic show:

Tx:010-01 04 0B B8 00 0A F2 0C

CRC Checked:

Query Sent : 01 03 00 00 00 02 C4 0B
Response : 01 03 00 00 00 02 C4 0B 00 00

Is it because of wiring or something else? When connect it shows 'Timeout error'

Much appreciated for your kind help...

My email : [email protected]

Thank you so much.
1) You are doomed to failure if you experiment with the serial settings (baud rate, parity). Don't experiment. Configure the settings to match on both ends. Settings must be identical.

Modscan configures the serial settings for the PC under Connection (connection > connect > Connection Details > Configuration)
The energy meter must have some form of serial setting setup as well.

2) You must confirm which virtual COM port the USB/485 converter is on.

Look in Windows' Device Manager under Ports and see which COM port is in use. In Modscan 32 under "connect using", select Direct Connection to COMx, where x = whatever the virtual COM port is in use by the converter.

3) RS-485 driver line labeling is not consistent from manufacturer to manufacturer. If the driver lines are reversed, then communication fails. Reversed wiring will not damage the drivers, but it won't work.
Try swapping the lines on one end to see if that establishes communication.

4) I avoid the Modscan's "traffic" view as too noisy.
Under Setup > Display Options > I pick Data, not traffic, and I pick Length of, say, 4, to limit the number of register displayed. Point type should be 03 Holding register.

5) I have no idea what Tx: 010-01 means. The 01 04 0B B8 00 0A F2 0C look like a legitimate query to slave 1 for input registers (I did not check the CRC).

The Response makes no sense. The first 00 byte means zero data bytes being returned.

The "Query Sent" is right out of the Modbus spec example. Is that real traffic or just what you think should be going out?

6) which register are you trying to read? With which function code (point type to Modscan)