Showing results for 
Search instead for 
Did you mean: 

What to do with Data coming from P200 Energy Meter that uses modbus rtu

Go to solution

Hi, I started using this  Chauvin Arnoux Memo P200 Energy Meter and by using modbus rtu communication to labview, I used modscan32 to test for any data and I have received some data from it but am unsure how to make it into feasible readings like voltage readings or current readings. I have tried using this convert raw decimal data to ieee floating point but to no avail, there might be some errors in that too.

0 Kudos
Message 1 of 18

Well, what does the manual say?


Pick a value you are looking for.  Does it only use one register to get the data or two?


A register is a U16 integer.  The manual should tell you how to translate the register to a value.  A U16 can be 0 to 65535.  That might be a scaled value where it maps something like 0 to 100 to 0 to 65535.  Sometimes if it is a value that might be two decimal places, you take the value in the register and divide by a hundred so a register has a value of 12345 and that means 123.45.


If it takes 2 registers, they are probably converted to a single point floating position number which you can do by combining the two value (join number, or take the array of 2 elements) then typecast to a single point float.


Just read the manual!

Message 2 of 18

hi thanks for the fast reply, the manual says it takes 2 registers to get the data. thanks for your explanation it did cleared some misconceptions i had before, it says it takes 2 registers but on the array i only see one only shown(it ranges from 7000-29000) and the other register being 0, i have tried using the typecast to a single point float and the value at the end of it seems very inaccurate, giving 2.5 - 5.5 while this being on the voltage line on neutral register parameter.

0 Kudos
Message 3 of 18

There will be scales in the manual 


This let's the sender just update a few bits in its limited on board memory and still quickly communicate meaningful information to the receiver in a somewhat reasonable quickness!  


MODBUS itself is designed to optimize data transfer between a semiautonomous controller to a data acquisition client.  The SCADA (System Control And Data Acquisition) target needs most of its resources to "Just Do It" and really needs to concentrate on doing the job.... Think, "Shut up and let me work " MODBUS communications are supposed to be fast, abrupt and tiered (tiered is mode) with as little  chatter as possible. 


Think of a 1960s space launch!  Each console manager in the  control room says Go or No Go . I think that should help because it is not an analogy.  That's why we have MODBUS!  

"Should be" isn't "Is" -Jay
0 Kudos
Message 4 of 18

Are you sure you are looking at the correct registers?


You are reading holding registers, and the scanning program you show starts at 40001.  The prefix 4 means a holding register.  While Modbus defines registers starting as 1, the underlying protocol starts at 0.  When you use the Modbus code, it is also zero based.  So if you want 40001 you drop the 4 and subtract 1 and read register 0.   If you want 40030, you drop the 4, subtract 1, and thus read address 29.


You didn't say exactly what register you are trying to read.  But you said "at the end" so I'll take the last two in your screen shot that starts at 40049.  That means you read address 48 with a length of 2.  When I typecast that to a single, I get the number 400.



If you still need help, then attach your VI with any controls and indicators saved with the values you used as default.



0 Kudos
Message 5 of 18

thanks for pointing that out, the manual did state input registers,  modbus protocol function code 04 is used to access all parameters, i might be confused with that so i used the prefix4.  I have attached both input registers and holding files. what do you think about it

Download All
0 Kudos
Message 6 of 18

Of course then I looked up the hardware...


POS! what would anyone use it for?


Seriously,  the unit is cheap but does nothing but monitoring and the choice of communication bus has me thinking that nobody around them has even heard about IoT.  Or maybe the VP of engineering is suffering from Alzheimers,   my condolence but seriously,  wrong engineering for 2021!


You did say you recently started using the device.    Now, is this a "Direct Drop in Replacement" for obsolete devices or, are you intending to develop a system that is already obsolete using stuff like that?

So, what are your system needs?

"Should be" isn't "Is" -Jay
0 Kudos
Message 7 of 18

right now its just a simple energy meter for monitoring voltage/current readings. I'm planning have a back log of data of those readings that can be backed up into a excel file or something along the lines of it. 

edit: im planning to develop a system using it, so just normal power monitoring using the this device

0 Kudos
Message 8 of 18

@Zaeun wrote:

right now its just a simple energy meter for monitoring voltage/current readings. I'm planning have a back log of data of those readings that can be backed up into a excel file or something along the lines of it. 

You do understand that a Bluetooth low energy or Wi-Fi network has about a gahggilean times the bandwidth and several times the range of an rs485 network at about the same price as copper wire and 1/ 100 the price for maintenance.?????


Or maybe you are hoping that all the copper wire you install at the first place can be reused in the next place?  Get yourself a few wire stretchers? 

That device is obsolete! It was Engineered by obsolete engineers! And the engineering staff has been working with obsolete salespeople to sell their obsolete products. 


Why buy that meter?  Demand better!

"Should be" isn't "Is" -Jay
0 Kudos
Message 9 of 18

had to work with what I was given, I don't really have a choice in choosing.😅

0 Kudos
Message 10 of 18