Go Down

Topic: Reading data from energy meter using modbus protocols (Read 1 time) previous topic - next topic

reva23

Quote
DI is probably floating, so any information may be sent to the RS-485 bus while DE is high.
Sir, sorry to ask again but how to verify if DI is floating or not?

Quote
That might mean that the hardware is less probably the source of your problems. My guess is a wrong configuration on the energy meter side. Triple check that. Don't miss any configuration option that relates to the external communication.
https://www.elmeasure.com/storage/app/media/resources/documents/elmeasure-multifunction-meter-multifunction-programming-guide.pdf

The energy meter settings are done as per this manual link. As far as I see there is no specific settings/configuration related to external communication

pylon

Quote
Sir, sorry to ask again but how to verify if DI is floating or not?
If you connected it the way you described, it's floating. That means it doesn't have a defined state and depending on the electrical noise in it's environment it changes erratically between HIGH and LOW. It's not easy to measure such a state as the measurement tool might influence the state.


Quote
The energy meter settings are done as per this manual link. As far as I see there is no specific settings/configuration related to external communication
Parameter 13, 14 and 15 are definitely relevant. Parameter 16 is rather special as the Modbus protocol doesn't specify any authentication. Check that in the manual!

reva23

Quote
Parameter 13, 14 and 15 are definitely relevant. Parameter 16 is rather special as the Modbus protocol doesn't specify any authentication. Check that in the manual!
As far as Baud Rate, Parity and Device Id concerned, its been taken care in programming and the same has been verified using USB to RS485 converter.

Parameter 16 i.e. Password parameter- I think this parameter will not be specified in our Arduino code.
This we are using for entering into the programming mode of energy meter.

reva23

Meanwhile I tested RS485 converter as per the below example link:

https://circuitdigest.com/microcontroller-projects/rs485-serial-communication-between-arduino-uno-and-arduino-nano

I used Arduino Mega as Master and Arduino Uno as slave. I can successfully control the brightness of LED from master.

I tried another example from this link:

https://www.engineersgarage.com/arduino/rs485-communication-between-arduino-mega-and-arduino-pro-mini/

I used again Arduino Mega as Master and Arduino Uno as slave but Im not successful with this example.

Arduino Mega Serial Monitor prints nothing...

Please let me know what could be the reason

pylon

The first example does only transfer in one direction, from Mega to UNO. The second example expect both directions to work. If the second example does not work but the first works you have a hardware problem. Either one of the RS-485 adapters are faulty or the TX pin of the UNO, the DE pin of the UNO or the RX pin of the Mega is damaged.

reva23

Quote
Either one of the RS-485 adaptors are faulty or the TX pin of the UNO, the DE pin of the UNO or the RX pin of the Mega is damaged.
In this context I checked the voltage levels of RS485 converters of both master and slave.

At Master Side

The Voltage levels on pins are (w.r.t GND):

DI - 5.00V
RO- 5.00V

DE & RE jumpered together- 0.0V

At Slave Side

DI - 5.00V
RO- 5.00V

DE & RE jumpered together- 0.0V

pylon

Quote
In this context I checked the voltage levels of RS485 converters of both master and slave.

At Master Side

The Voltage levels on pins are (w.r.t GND):

DI - 5.00V
RO- 5.00V

DE & RE jumpered together- 0.0V

At Slave Side

DI - 5.00V
RO- 5.00V

DE & RE jumpered together- 0.0V
That doesn't tell anything, unfortunately.

reva23

That doesn't tell anything, unfortunately.
Does voltage levels are expected or unexpected values?

Please let me know..

pylon

The bus in idle state with the usual hardware I would expect about these voltage levels.

But as I wrote: that's completely irrelevant.

Go Up