Modbus Communication Partially Working Through RS485


Thread Starter


Hello Engineers...

Recently we change one energy meter with another one which is communication with a charge controller through Modbus. the problem is the charge controller can poll V1 and V2 and I2, and three other figures are not shown. I checked Modbus addresses too. Any Idea?
Did the 1st meter work properly?
For how long?
Why was the 1st meter replaced?

Were the three values available from the 1st meter before it was replaced?

1st energy meter: manufacturer? Model?
2nd energy meter: manufacturer? Model?

What happens when the controller polls for the three values that are not available?
Does the controller time out after each?

Does the controller get an exception code response?

What three values were available in the 1st meter that are not available from the 2nd meter?
The first energy meter is working fine. we got a new version of that energy meter. it is socomec countis E24, and we just got this new model in better price and functionality. But we can read and poll values from energy meter through serial culminating on laptop, but the problem is charge controller can not polls all values. I try to upload some screenshots maybe it be handy.
Hello Chormang,

First thing you may want to check is to make sure that the Modbus port of the new energy meter is working properly and the data mapping are available in proper format. since in this configuration Socomec energy meter will be the Modbus slave. I suggest to use ModScan or ModPoll software to check and verify the data mapping.

If the Modbus slave on Socomec side is verified to be working properly, then the next step is to verify the Modbus Master in the charge controller, that the Modbus port of the charge controller is working properly and the Modbus function code are setup and configured properly. I suggest to use ModSlave software to check and verify the Modbus Master functionality.

Last check, if above items have been verified, then integrate the slave and master (Energy Meter and Charge Controller). if the problems still exists, there are still data that can't be gathered by master from slave. I suspect the problems come from serial connection between master and slave. either the mismatched baudrate configuration, unproper serial communication line connection or external interference such as EMI.

For guidance on Modbus troubleshooting on physical connection , you may want to reference to below documents:

Another advance method to troubleshoot is to use wireshark software that available for free:

Hope this helpful

Best regards
Apparently, the Energy Meter (EM) register addresses polled by the charge controller (the Modbus master) are configured via web browser connected to the charge controller.

The EM (Energy Meter) configuration is accessed from a button labeled EM Config on the Energy tab page in the web browser. (see charge controller manual, page 93).

On page 95 of the charge controller manual (104924 Rev 4) an example Modbus setup is shown; a screen shot of the Energy EM Configuration Modbus setup page in a web browser. That web page uses the default Modbus register addresses for a Phoenix Contact EEM-MA200/EEM-MA250 Energy Meter. Those register addresses are very likely not the same as Sonomec's register/addresses.

The exact configuration technique using the web browser is not clear, meaning how register/address or format changes are made. In particular, the submit button is defined as "this button transmits the parameters from the charging controller". One would expect the browser to load the setting changes into the charging controller, not from the charging controller. Some experimentation might be needed. An example of an xml file is given also.

You'll have to find the document with the Sonomec Countis E24 energy meter Modbus map slave register/addresses and edit the Modbus register/address page in the charge controller with the appropriate Sonomec address, replacing the default addresses.
Thank you for your reply!

But the problem is the frame start which is 3.5 Char. I want to ask it should be greater than this number which at 9600 kbps is 0.36 ms, but this socomec takes 10ms which I think it makes some troubles. But I am not completely sure that it is an issue.