3/12/2021 11:01 PM | |
Joined: 9/21/2006 Last visit: 5/25/2023 Posts: 247 Rating: (65) |
A bit pattern of 16#7FC0_0000 corresponds to a floating point NaN (= Not a Number). NaN indicates that the value is not representable in the 32-bit floating point format, or is just not initialized or valid. The value may be coming from your communication partner, or it may be coming from one of the conversion functions you are using. If the raw data coming in from the Modbus communications blocks show this value, then the issue is on the other side - you are seeing what is being sent. If the raw data shows a different bit pattern, then you may have to byte-swap the data to get it into the form that the conversion functions will recognize as valid values. |
3/13/2021 2:51 PM | |
Joined: 9/27/2006 Last visit: 9/26/2024 Posts: 12283 Rating: (2685) |
Hello WaIhere?; It looks like your problem can be due to you using a conversion instruction on the 4 bytes (2 Modbus registers) you receive for your floating-point value over Modbus. A floating-point value that you read from a Modbus slaves occupies 2 registers, so you reserve 4 bytes for it in your Modbus master when you receive it. But it already is a floating-point value (a REAL, in Siemens datatype definition), so you do not treat it as a Dword that you need to convert. First, use the 4-byte register a REAL value, very easy to do in a DB. Then examine tihe value in a monitor table. Either it will appear as a normal floating-point value, say 11,3245, or it will give you a totally absurd value, say 0,439 E-37... In that case, you are facing a Bog Endian/Little Endian proble, where the byte order of REAL variable is not the same between the master and the slave. In that case you must swap the bytes either in the slave or in the master. Often modern Modbus slaves have a parameter that automatically swaps the byte order before it is sent to the master. In the master there are instructions you can use to swap the byte order, such as READ_BIG, READ_LITTLE in Step 7 v16: https://support.industry.siemens.com/cs/ww/en/view/109773506/96084263435 Hope this helps, Daniel Chartier |
3/15/2021 8:07 AM | |
Joined: 1/2/2017 Last visit: 7/23/2024 Posts: 285 Rating: (24) |
Hi here I attached a simple function that I used it for same purpose long time ago. I used tag overlaying. Hope it helps or at least guide you to create one. regards T_Ebrahem AttachmentFC BytesConversion.zip (941 Downloads) |
Disclaimer: While I strive to ensure that the content of posts and answers is accurate and complete, my posts and answers are provided “as is” and “as available.” Your use of my posts and answers content is entirely at your own risk. |
|
This contribution was helpful to1 thankful Users |
Follow us on