sMdl15 allow SCL floating point value can have minor difference in DUT
sMdl15 requires that the SCL value matches the value in the DUT. For floating point the value can be slightly different due to rounding off errors and less number of bits used in the DUT.
I propose we allow a minor difference for floating points. For example 0.1% of the min/max range:
- If the range is 1000 we allow a difference of 1
- If the range is 1 we allow a difference of 0.001
Updated by Richard Schimmel 4 months ago
Instead of using a percentage it's better to use number of significant digits. The maximum number of significant digits for FLOAT32 is 6 to 7 digits (depending on the value). Not every device / data point may support the maximum number of significant digits. We allow a lower number of significant digits when specified/documented in the MICS (and/or PIXIT). sMdl15 allows differences in the non-significant digits.
- SCL value = 5.1234567
- the number of significant digits is 5 => the significant value becomes = 5.1235
- sMdl15 does allow all (MMS) values from the device between 5.1234501 and 5.1235499 because the significant value is 5.1235
Updated by Ursula Kramarczyk 4 months ago
The IEC 61850-7-2 defines BasicType FLOAT32 as the IEEE 754 single-precision floating point (61850-7-2 Table 2 - BasicTypes).
The IEEE 754 standard specifies this format as having: a sign bit, 8 bits of exponent and explicitly stored 23 significant bits of fraction (in sum occupying 32 bits). The single-precision floating point format covers a large range of values -3.4E+38 to+3.4E+38, but it has limited precision. The format gives 6 to 9 significant decimal digits precision. When converting decimal values to values of the Float32 data type, depending on the value, a rounding error might occur from the seventh decimal place on. From technical point of view the float32 encoded values have guaranteed only 6 significant digits.
In my opinion, if a DUT does not state explicitly - in MICS, for BasicType FLOAT32 - its limitation in the internal float precision, then the expected result are 6 significant digits. As well by decimal values read from SCL as mapped to/from MMS or GOOSE.
Updated by IEC 61850 TPWG 3 months ago
- Due date changed from 11/28/2023 to 12/12/2023
if a DUT does not state explicitly - in MICS, for BasicType FLOAT32 - its limitation in the internal float precision, then the expected result are 6 significant digits.
Update MICS template to indicate limits in Float precision.
Richard to add solution.
Updated by Richard Schimmel 2 months ago
- File Solution to redmine 6541 sMdl15 floating point digits.docx Solution to redmine 6541 sMdl15 floating point digits.docx added