Please Note This forum exists for community support for the Mango product family and the Radix IoT Platform. Although Radix IoT employees participate in this forum from time to time, there is no guarantee of a response to anything posted here, nor can Radix IoT, LLC guarantee the accuracy of any information expressed or conveyed. Specific project questions from customers with active support contracts are asked to send requests to support@radixiot.com.

Radix IoT Website Mango 3 Documentation Website Mango 4 Documentation Website

Problem with decimals in DNP3 datapoints


  • I'm facing a problem with decimals in DNP3 Datapoints. I have Simatic RTU3041C as an outstation and I'm reading analog (32-bit floating point) values to Mango. For some reason the integer part of the number is correct but all decimals are replaced by zeros in Mango datapoint. For example the value 33.87 is shown as 33.00 in Mango. Does anybody have ideas what could cause this and how to solve the problem?

    I'm using DNP3 Data source version 3.7.1 and Mango Core version 3.7.7.


  • @tepes Check your text rendering settings for a start under the individual points themselves. Maybe even change the renderer type to plain to see if you have a more "raw" value...

    Fox


  • @mattfox Hi, thanks for the tip. In text rendering I've tried both: Plain and Analog with format 0.00 and the result was same (decimals have value 0).


  • How bizarre...
    I don't honestly know anything about dnp3. So I'm not even sure if it's the parsing of the data or the format being sent..
    Are you viewing this in a watchlist or in a dashboard page?


  • @mattfox I've used watchlist so far.


  • @Tepes I've done some work recently on a new DNP3 module with better support for floating point values. The module is still in development but a pre-release is available for Mango 3.7 you can download it here or change your release channel to development in Mango's System Settings.

    https://store.infiniteautomation.com/module/dnp3


  • @terrypacker Hi Terry and thanks for your response. Now I've installed DNP 3.7.2-beta.0. I'm still testing but it seems that all decimals in floating point values are always floored to zero or then I've missed some setting. Picture below is from the last test run and there should be fluctuation also in the decimal part of the value. Text rendering is set to plain.

    0_1591898080413_3a3063af-d720-488a-83c6-d5bb44783595-image.png


  • @Tepes I am fairly confident we implemented support for all the different data types in DNP3 for that release but it is possible there is a type we were unable to test and there could be a bug. Would it be possible to get a Wireshark capture of a few polls of Mango? If so I can triple check our code or it may be that the device is actually sending an integer data type.


  • @terrypacker Thanks for your response again. I'm also quite sure that the implementation of the floating point data type is done correctly in Mango DNP3. If there would be something wrong with the data type support the integer part of the value wouldn't be correct at all. But could there be any other setting or something else that causes value to floor? We will record communication with wireshark during next weeks. It's still possible that our outdevice floors value before sending data eventhough it shouldn't behave like that.


  • @Tepes I can't think of anything in Mango that would cause this besides the text renderer. The more I think about this the more I believe that your device is sending the value as one of the DNP3 Integer data types, Mango then would use our Numeric data type for any Analog Input or Analog Output thus converting the value to <integer value>.0 when it is saved into Mango.

    The Wireshark capture will be the best way to confirm what is really happening.


  • @Tepes Could you give us an update on this. I was able to get decimal points on a test rig today from 32bit Floating points.


  • @craigweb Hi! Sorry about late answer. The root cause of the problem was finally tracked to our outstation which was using wrong DNP3 profile and since that we got only integer values through DNP3.