Modbus TCP Communication Issue


Thread Starter



I am trying to communicate Emerson F300 powerdrive with Modbus application to confirm the data transfer for integration to SCADA system. I have configured IP and subnet mask of with no gateway address. I am able to ping the drive, but fail to see the data transfer. I have already received Modbus address data from manufacturer and trying to read those address. But it says "Modbus exception response from slave device". I have set slave id as 1 because there is no slave id provided in the drive. I am able configure the parameters of drive through its software Powerdrive F300 connect.

Kindly help
You are using Modbus over TCP, so the device ID is of no importance, its IP addr is unique! Figure out if your port address is properly configured - usually it is 502. SCADAs are usually unfriendly if you are not acquainted with all the details. Try using a simple tool like ModScan or a similar test program - you receive errors either because of inappropriate timing parameters or false variable addresses. ModScan will give you direct access to these settings.

Wish you success!


Thanks for ur reply.

By the way i have already tested through modscan app. But it says exceptional response. The port number as you said is the same 502. Anything that i should be looking at other than this?
In Modbus TCP you require to define IP address, Port number (usually it is 502), and Slave ID. As in Modbus TCP one byte in MBAP header is used for unit identification. So test with Modscan tool.
In Modscan tool check what is the exception code. This you can know by using the option of "Setup > Display options > Display traffic". If IP address, port and Id is correct, the you will see one grey part that is request from Modscan and another part which is received message from PLC will be dark colored. So the last byte gives the exception code. If that value is 02 then usual causes are:

1. If reading wrong address table that may not be in PLC like you are reading Holding register but data in PLC is given in Input registers.

2. If range of data your are requesting is out of range like if in PLC data is in Holding register and 1st register is 40100 but you are requesting 40098 as this register not available in PLC so you will get exception response 02.

3. Continue to above point some time if for example the number of register defined in PLC are 20 but you are requesting to read 21 or more than 20 then also you will get exception code 02 error.

Hope above help you.