## Issues #6541

### sMdl15 allow SCL floating point value can have minor difference in DUT

**Description**

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

**Files**

#### Updated by IEC 61850 TPWG 4 months ago

**Due date**set to*11/14/2023***Status**changed from*New*to*In Progress***Assignee**set to*Richard Schimmel*

Accepted.

Limits should be based on the precision of FLOAT32

#### Updated by IEC 61850 TPWG 4 months ago

**Due date**changed from*11/14/2023*to*11/28/2023*

Please add comments before next meeting.

#### 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.

For example:

- 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

added attachment