Modbus communication
Hello,
In addition to the web connection, I am getting data via Modbus communication (RS485 port) from an i-Meter WEM3080 connected to the grid
, having noticed that the value of active power obtained by Modbus always maintains a positive sign whether importing or exporting energy. How to distinguish these two situations?
please use the high byte of this register 0x50H
Hello. Can you help me how could you communicate with the meter? What is the id and the baud rate? Or are there anything else trick, because i have no lick with it :(.
Thanks
If you are not familiar with RS485 and Modbus rtu, we do not recommend using it.
There is a lot of work that need to do , wiring ,request Modbus command , parse the return hex code. Limited by the hex length, the sign of the active power is stored in an independent register, not together with the active power. you need to do more coding work to read the finally result from the modbus communication.
Compared to the modbus,you can try read the energy data from the local API, it is easier and more friendly
Like this https://www.iammeter.com/docs/integrate-with-PVOutput
Thanks. I am not a programmer, but i have a device and i try to help the programmer who want to communicate with the device. So, please help me how can we do it? Unfortunately the web spi 6sec isn't enough :(.
Give the protocol to the programmer, and tell him/her the RS485 is 9600/8/N/1.
The software will work like a Modbus master, polling the data from the energy meter.
Before doing the development, you can use some current software such as Modbus polling or some serial communication software to try the communication.
Thanks!
Hi, how can I change the SLAVE ID eg. from 1 to 2 or 3?
Reason being, I have another RS485 device on ID 1.
Thank you
Please refer to the below, please note, do not change anything else in the command except the slave ID.
If you modify any other register occasionally, it may cause the device not to reply the command anymore.
Read slave id
Command: 00 03 00 04 00 01 C4 1A (00:Broadcast address)
Reply: 01 03 02 01 06 39 D6(01:slave id,06:Baudrate 9600)
Set slave id
00 10 00 04 00 01 02 05 06 29 16 00
00 broadcast address
10 ---fixed (set command)
00 04 --- fixed (start address)
00 01 --- fixed (length of register)
02 --- fixed (length of byte)
05 --- new address
06--- fixed
29 16 ---CRC16
reply: 01 10 00 04 00 01 40 08
Thanks!
Also, where can I find the Modbus register address list, so I can read the values via RS485 and decode?
Cheers,
Barny
Please refer to https://imeter.club/topic/611