9/12/2019 9:24 PM | |
Joined: 1/21/2013 Last visit: 9/4/2024 Posts: 4620 Rating: (707) |
Hello David, I don't know your appkication but have you tried with FC 105 Scale and FC 106 Unscale if for you work? https://www.google.com/url?sa=t&source=web&rct=j&url=https://support.industry.siemens.com/cs/attachments/23330722/Scaling_and_Unscaling_Analog_Values.pdf&ved=2ahUKEwi4oPPBgMzkAhVFIlAKHfE5CiYQFjABegQICBAB&usg=AOvVaw13Lu14CTvEybOeafGIPl0n Attachmentscaling_and_unscaling_analog_values.pdf (101 Downloads) |
Last edited by: Jen_Moderator at: 09/13/2019 09:50:21Added PDF as an attachment. |
|
This contribution was helpful to1 thankful Users |
9/14/2019 1:01 AM | |
Joined: 9/27/2006 Last visit: 9/25/2024 Posts: 12283 Rating: (2685)
|
Hello David; I think you need to review your numbers theory just a little. A REAL value is written as a single-precision floating-point value, based on IEEE 754: https://en.wikipedia.org/wiki/Single-precision_floating-point_format So when you write a Real value to a 32-bit register (MDxxx) it takes the form of mantissa + exponent as described in the article above. If you try to read the same register using binary-to decimal conversion directly without taking into account the internal formatting of the floating-point value (as you are trying to do using your "decimal" format) you will get a totally unrealistic number. See this site for examples of floating-point arithmetic in computers, there are examples for 32-bit floating-point values that should enlighten you. http://sandbox.mc.edu/~bennet/cs110/flt/ftod.html Hope this helps, Daniel Chartier |
Last edited by: dchartier at: 09/14/2019 01:09:01 |
|
This contribution was helpful to2 thankful Users |
9/14/2019 7:12 AM | |
Joined: 1/21/2013 Last visit: 9/4/2024 Posts: 4620 Rating: (707) |
Hello David, and read also from Programming manual at Chapter 27.3.2.1 INT, 27.3.2.2 DINT and 27.3.2.3 REAL |
Follow us on