MBTCPRead Sending Data to Slave but no Read (Status Error -4904 Generated)
We have confirmed with a Modbus sniffer (see attached Modbus polling tool screenshot) that data is being sent and received to the boiler unit we are trying to connect. We have converted these values to unsigned ints (u16 per manual) and they match up with the values that we would expect to see.
On the ABB system however, we are getting an error from the MBTCP Read function (labeled as Read_Bool, configured to read(1) to a uint variable) when the function tries to communicate with the Boiler controller. At the boiler diagnostics page there is a 64bit frame (same as Modbus polling tool) that is received every time that the Read function activates via the Req parameter. The address currently in the StartAddr parameter is per the “read register code” seen in the ABB manual for FC03 of the Modbus standard.
We have also tried to use a variety of different function codes per https://forum-controlsystems.abb.com/... that the Modbus polling tool uses to gather the data successfully. When looking at the boiler diagnostics page it is the same frame size on the Rx line, w/ a differing Tx amount based on the amount of data requested.
Any help would be appreciated
Answers
Have your ever tried to read data with Modbus TCP Gateway instead of Modbus TCP Slave.
You need to define Gateway first, and then define Modbus TCP Slave with ID number.
Hope it helps you.
Add new comment