Issue
Many electrical power meters provide a high resolution Modbus or M-Bus output for cumulative parameters such as kWh, kVAh and kVARh. This output can be displayed in Vista or on an Xenta Server web page, but the resolution can be degraded by inappropriate conversions in XBuilder and choice of display format. This article shows how to maintain the full resolution of a meter reading from acquisition through to display on a Vista graphic or Xenta Server web page.
Environment
Xenta 511, 527, 555, 701, 711, 721 (5.1.5 up)
Xenta 731, 913 (all versions)
XBuilder
PM710
Cause
Applying scaling or connections in XBuilder, or processing in Menta, reduces the precision of a high resolution Modbus value to that of a Real or Float.
Resolution
The following comments refer to Modbus registers in the Schneider Electric PM710 energy meter, although many other meters deal with extended precision values in a similar manner.
Acquiring Data from the meter:
1. If you want to maintain the full precision of the meter 'Real Energy, Total' reading, use register 4000 which is a 32 bit signed integer, representing scaled kWh. The scale factor is stored in register 4108 as a 16 bit integer and the two registers should be used in conjunction for display purposes. The maximum full precision value that can be displayed this way is: 2147483647 - 10 decimal digits - before the scale factor is applied.
2. An alternative to register 4000 is provided in register 1000, which is of type 'Float'. This equates to the REAL type in XBuilder, so it already has only 21 bit precision. However, there is no need to scale it as the exponent is built in to the Float type.
Processing input in XBuilder:
3. For register 4000 in the device template, apply a gain of 1 and keep the converted value as INTEGER. This will maintain the full 32 bit precision of the Modbus register. If you apply any gain less than 1 or convert the value to a REAL, you will only end up with a 21 bit precision result. This equates to a loss of 2 decimal digits approximately.
4. Avoid using Connection objects. For example, a variable of type 'SNVT_elec_kwh_l' has theoretically the same precision as register 4000 in the PM710, so it would seem to be a direct conversion. However, because you have to use a Connection object to link the two in XBuilder, the value is converted to a REAL internally and you end up with a 21 bit precision result.
5. Xenta Servers can provide full precision Modbus values for display in Vista. Create new Signal objects in the System pane in XBuilder and drag and drop the Modbus values from the Network pane onto the Signal objects. The Signal objects will have the same precision as the original Modbus registers and are visible in Vista.
Displaying values in Xenta Server and Vista:
6. Value pages in the Xenta Server and TGML graphics pages in Xenta Server and Vista can display a 10 digit integer. In the case of item 1 above, all 10 digits will be accurate. In the case of item 2 above, only the most significant 8 digits will be accurate.
7. A value page in the Xenta Server will display a real as 8 digits plus exponent. However, only the 7 most significant digits will be accurate.
8. The object view in Vista will display a real up to 8 significant digits, with only the most 7 significant digits being accurate. Vista will attempt to show this as fixed point 6.2 and no exponent. If the actual value is too big or small for this format it reverts to 3 significant digits plus 3 digit exponent.