Modbus TCP error code -7006 in MBTCPRead block

Hi All,
We are interfacing Modbus TCP communication between CI867 and Adam Converter 6017. The MBTCPConnect block status is ok. However, the MBTCPRead block is indicating status code -7006. We have tried as both gateway and direct TCP Slave but still the same error.
Only 3 holding registers are used. Refer above screen shot.
800xA software version: 800xA 6.1
To troubleshoot the issue we have created only one tag in a separate application but still the same issue.
CI867 module IP address: 10.100.7.1 / 255.255.240.0
Adam converter IP address: 10.100.8.14 / 255.255.240.0
Attached are the wire shark results and screen shot of the settings.
Answers
Please go through an old question
https://forum-controlsystems.abb.com/8443606/CI867-Modbus-TCP-error-code-7006-s
lave-is-a-PC-software#:~:text=for%20%2D7006%20status%20code.,Try%20to%20increas
e%20it.
this may help you
https://forum-controlsystems.abb.com/8443606/CI867-Modbus-TCP-error-code-7006-s
lave-is-a-PC-software#:~:text=for%20%2D7006%20status%20code.,Try%20to%20increas
e%20it.
this may help you
Hi,
The communication between CI867 and Adam converter should work perfect, recently I tried it.
At first looking of your question seems that the IP addresses of CI867 and Adam are configured wrong, they should be in the same area e.g. 10.100.8.x with the same subnet mask.
Channel = 1.1
Partner=1
You don't need a dateway, use direct TCP slave for adam in CI867 config.
Set diagnostic poll time=0 for the slave
The communication between CI867 and Adam converter should work perfect, recently I tried it.
At first looking of your question seems that the IP addresses of CI867 and Adam are configured wrong, they should be in the same area e.g. 10.100.8.x with the same subnet mask.
Channel = 1.1
Partner=1
You don't need a dateway, use direct TCP slave for adam in CI867 config.
Set diagnostic poll time=0 for the slave
Hello,
try to read just one Value.
I had a Problem in the past where at the Commpartner a 4 Byte Adressrange was set! In that case we able to Read only one value.
After changing to 2 Bytes everything worked Fine.
br
Reinhard
try to read just one Value.
I had a Problem in the past where at the Commpartner a 4 Byte Adressrange was set! In that case we able to Read only one value.
After changing to 2 Bytes everything worked Fine.
br
Reinhard
Hi Senthil,
Couple of suggestions:
1. Disable Diagnostic Polling: If this parameter "Diagnostic Poll time" is set to zero (0), diagnostic polling is disabled. Not sure Adam converter supports this Diagnostic Polling Function.
2. Check the offset philosophy followed in Adam Converter. Since you have defined database from 01 to 03 in Adam, But the below snapshot from your attachment shows when Adam is connected with MB Simulator, it was read from 00 with qty 03 which means it read from 00 to 02 and it positively replied too. Then try to read the same register address from 0 and Qty 3 with CI867 too.

Couple of suggestions:
1. Disable Diagnostic Polling: If this parameter "Diagnostic Poll time" is set to zero (0), diagnostic polling is disabled. Not sure Adam converter supports this Diagnostic Polling Function.
2. Check the offset philosophy followed in Adam Converter. Since you have defined database from 01 to 03 in Adam, But the below snapshot from your attachment shows when Adam is connected with MB Simulator, it was read from 00 with qty 03 which means it read from 00 to 02 and it positively replied too. Then try to read the same register address from 0 and Qty 3 with CI867 too.

Hi,
Try incorporating the following steps:
1. Keep IP address of CI867 & Converter in same series and keep same subnet for both.
2. Keep CI867 Default diagnostic poll function for serial slaves as - LoopBaclk
3. Keep CI867 Default diagnostic poll time for serial slaves as - 0
4. Keep CI867 Default diagnostic poll function for TCP slaves as - LoopBaclk
5. Keep channel address & partner address as - "1" & "1.1"
6. If you are reading Holding registers (FC-3) use %MW10#startaddress, if using Input registers (FC-4) then use %IW10#startaddress.
7. Use datatypes properly in accordance with the device data as per the manual.
Sometimes serial devices support reading of registers as groups. In that case it won't allow reading anything that is out of group. Check manual of the device for the same.
If by applying above steps still you are not able to read any value, try adding a Gateway at location-1 and under the gateway add a modbus serial slave at position-1. This time your partner address will be "1.1.1"
Br,
Saurish
Try incorporating the following steps:
1. Keep IP address of CI867 & Converter in same series and keep same subnet for both.
2. Keep CI867 Default diagnostic poll function for serial slaves as - LoopBaclk
3. Keep CI867 Default diagnostic poll time for serial slaves as - 0
4. Keep CI867 Default diagnostic poll function for TCP slaves as - LoopBaclk
5. Keep channel address & partner address as - "1" & "1.1"
6. If you are reading Holding registers (FC-3) use %MW10#startaddress, if using Input registers (FC-4) then use %IW10#startaddress.
7. Use datatypes properly in accordance with the device data as per the manual.
Sometimes serial devices support reading of registers as groups. In that case it won't allow reading anything that is out of group. Check manual of the device for the same.
If by applying above steps still you are not able to read any value, try adding a Gateway at location-1 and under the gateway add a modbus serial slave at position-1. This time your partner address will be "1.1.1"
Br,
Saurish
Add new comment