Metering & Power Quality
Schneider Electric support forum about Power Meters (ION, PowerTag, PowerLogic) and Power Quality from design, implementation to troubleshooting and more.
Link copied. Please paste this link to share this article on your social media post.
Hi, has anyone had an issue with setting up KepserverEX to read the Modbus kWh address 45100 which is a 32bit float on a IEM3255 energy meter? KepserverEX reads all the other registers such as Voltage & Current registers which are also 32bit float and returns the correct values. It won't read the kWh value and just returns a Zero. I've tried other SCADA platforms such as Ignition and this reads it fine. Any help appreciated
Link copied. Please paste this link to share this article on your social media post.
Looking at my documentation for the iEM32xx devices the kWh registers are in the 32xx range (and not in 45xxx or 5xxx depending on how KepserverEX is using that address (either implied as 4xxxx to perform a Read Holding register or simply as xxxx). In other words, in some cases, our map might indicate to read 45xxx and that is what the Read Holding register would ask for (and not just 5xxx).
Most =S= documentation do not imply addresses and are listed as 1 to 65535.
So it looks like you'd want to request 3203, with 2 registers to get the FLOAT32.
This assumes that to read current Ph A your doing a read of register 2999 of 2 registers as well
Link copied. Please paste this link to share this article on your social media post.
Thank you for your reply Robert, I've also tried 3203; with Kepware to read a holding register, the address has to start with 4 so the 3023 becomes 43203, but with the addressing shift it becomes 43204. I've attached the client output. I've also used Wireshark to capture the packets on both platforms to compare, but that's out of my knowledge base. I've asked the same question on the KepServer forums too. Hopefully someone has seen this before. I don't think it's an issue with the Schneider meter as they work fine with Ignition.
Link copied. Please paste this link to share this article on your social media post.
Hello @ChickenRich
Did you try with Address shift the other direction, 43202? Are you able to collect 16 register readings with modbus and from front panel of the meter to see if there could be a way to explain what the meter is returning?
Regards,
Charles
Link copied. Please paste this link to share this article on your social media post.
Most present Schneider documentation states the Modbus address using standard Modbus Power Data Model (PDM) addressing. In some instances, products may be published using PDU addressing (which is the address sent over communication to the actual device).
Now, I don't know how Kepware wants the address to be entered via its UI. I would not think it would want to have users enter in Data Model addressing with a 4 prefix (wanting you to enter 43202 for example). This would restrict the address range Kepware would want to request to only 10000 registers max (from data model address 1 to 9999).
By the looks of those values supposed being returned, I suspect you are reading registers in the 40000 range (and not 3200). Current average isn't even the average of the 3 current phases.
I believe you should attempt to read PDM address 3000 (PDU address 2999) and read those 4 addresses which should be the current readings as shown below from the iEM3xxx User Guide
Also note that the current readings are returned in FLOAT32 (IEEE-754) while the kWh ones are returned using INT64 (low to high order) and by the looks of that addressing, Kepware should be requesting PDM address 3204 (or PDU address 3203) and asking for 4 registers (since it is INT64 in size).
Link copied. Please paste this link to share this article on your social media post.
Hi Charles, I have tried all options. Kepserver does not like to read the registers at all, whereas Ignition reads them perfectly. I understand that this is not a Schneider issue, and have contacted Kepware support who are assisting. It is really strange!
Many thanks,
Link copied. Please paste this link to share this article on your social media post.
Thank you Robert for your reply. This isn't a Schneider issue, it is a Kepserver issue and so I've raised a support request with them. Just for your information, ignition reads the values perfectly, even if we're using zero based addressing which normally means the the 4 is omitted hence 43202 becomes 3202 and so on. Many thanks for your help though.
Create your free account or log in to subscribe to the board - and gain access to more than 10,000+ support articles along with insights from experts and peers.