Metering & Power Quality
Schneider Electric support forum about Power Meters (ION, PowerTag, PowerLogic) and Power Quality from design, implementation to troubleshooting and more.
Posted: 2017-07-04 03:41 PM
Link copied. Please paste this link to share this article on your social media post.
Does anyone can help me find the Modbus Register Map / List for the PM800 as follows:
String example for an ION6200:
LbVln a,SR40100,FUINT16,NR1,S0.1,O0,
LbVln b,SR40101,FUINT16,NR1,S0.1,O0,
LbVln c,SR40102,FUINT16,NR1,S0.1,O0,
LbVln avg,SR40103,FUINT16,NR1,S0.1,O0,
LbVll ab,SR40104,FUINT16,NR1,S0.1,O0,
LbVll bc,SR40105,FUINT16,NR1,S0.1,O0,
LbVll ca,SR40106,FUINT16,NR1,S0.1,O0,
LbVll avg,SR40107,FUINT16,NR1,S0.1,O0,
LbI a,SR40108,FUINT16,NR1,S0.1,O0,
LbI b,SR40109,FUINT16,NR1,S0.1,O0,
LbI c,SR40110,FUINT16,NR1,S0.1,O0,
LbI avg,SR40111,FUINT16,NR1,S0.1,O0,
LbI dmd,SR40112,FUINT16,NR1,S0.1,O0,
LbI pk dmd,SR40113,FUINT16,NR1,S0.1,O0,
LbI 4,SR40114,FUINT16,NR1,S0.1,O0,
LbFreq us,SR40115,FSINT16,NR1,S1,O0,
LbPF sign tot us,SR40116,FSINT16,NR1,S1,O0,
LbkW tot,SR40120,FSINT16,NR1,S1,O0,
LbkVAR tot,SR40121,FSINT16,NR1,S1,O0,
LbkVA tot,SR40122,FSINT16,NR1,S1,O0,
LbkWh del,SR40138,FU32-2143,NR2,S1,O0,
LbkWh rec,SR40140,FU32-2143,NR2,S1,O0,
LbkVARh del,SR40142,FU32-2143,NR2,S1,O0,
LbkVARh rec,SR40144,FU32-2143,NR2,S1,O0,
LbkVAh del+rec,SR40146,FU32-2143,NR2,S1,O0,
to fill the "Device Map" Setup Register of the Modbus Master Map module in PME / IONSetup??
Link copied. Please paste this link to share this article on your social media post.
There are several thousand registers available on the PM800. There is no list in the format above.
It is possible to manually create the register mappings required by using the native PM800 device driver as a source template. The file that contains this information is located at <PME install>/system/translators/pm800.xml. The steps for conversion should be reasonably obvious for most registers once you examine the file.
Link copied. Please paste this link to share this article on your social media post.
There are several thousand registers available on the PM800. There is no list in the format above.
It is possible to manually create the register mappings required by using the native PM800 device driver as a source template. The file that contains this information is located at <PME install>/system/translators/pm800.xml. The steps for conversion should be reasonably obvious for most registers once you examine the file.
Posted: 2017-07-05 06:48 AM
Link copied. Please paste this link to share this article on your social media post.
Thank you very much Hal! I will check it out.
Posted: 2017-07-06 07:48 AM
Link copied. Please paste this link to share this article on your social media post.
Hi Hal Etheridge. I have the following questions, I wonder if you may give some help:
- I still have the doubt for the scaling value since this info doesn't show in the .xml file. How do I know what value corresponds to each variable?
- Shall I assume the Offset value to be "0"?
- RequestType, NotAvailableValue and Multiplier, what does this refer to or what are they for?
Part of the .xml file:
<ModbusInfo IONHandle="161480961" Name="Current N" ModbusAddress="401103" RequestType="R" Format="SINT16" NotAvailableValue="-32768" Multiplier="0xfffe"/>
<ModbusInfo IONHandle="161481217" Name="Current A" ModbusAddress="401100" RequestType="R" Format="SINT16" NotAvailableValue="-32768" Multiplier="0xffff"/>
<ModbusInfo IONHandle="161481473" Name="Current B" ModbusAddress="401101" RequestType="R" Format="SINT16" NotAvailableValue="-32768" Multiplier="0xffff"/>
<ModbusInfo IONHandle="161481729" Name="Current C" ModbusAddress="401102" RequestType="R" Format="SINT16" NotAvailableValue="-32768" Multiplier="0xffff"/>
If you can help with this I would appreciate it.
Link copied. Please paste this link to share this article on your social media post.
Unless specified otherwise in the .xml file the following default values are used:
- Offset - 0
- Divisor - 1
- Multiplier - 1
RequestType defines if the register is ReadOnly, WriteOnly, ReadWrite. There are a few other special case values for this field but they are not important for this discussion.
The Offset, Divisor, Multiplier fields can also refer to another register for their value. By convention the value will always be a hex number which means that it is a register "reference". In the above register snippets the Multiplier fields are referencing registers with the IONHandle values of 0xfffe and 0xffff (65534 and 65535 in decimal respectively). Search the .xml file and you will find registers with those handles present that define how to get the multiplier factor from the device. The purpose of this feature is to allow the scaling factors to be used as dynamically defined by the *device* instead of being a hardcoded value in the device driver itself. For this device type the channel Current registers are dynamically scaled using register at ION handle 65535 and the Current N register is scaled by the register at ION handle 65534.
The dynamic scaling of the modbus registers can not be directly converted into the Modbus Map Module format so you will need to pick a scaling factor that the device uses most of the time. If the device changes then the output values from the MMM will be incorrect. Alternatively you could scale the values after the MMM via an arithmetic module using another MMM to read the scaling factor and then the ART module to do the math required.
The NotAvailable value field is used to force the register output to be N/A if the modbus register value matches the specified value in the .xml file. Basically if -32768 is read from the modbus register then none of the offset/multiplier/scaling is done but N/A is returned as the ION register value instead.
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.