Sign in to follow this  
Followers 0
Ken Moore

Modbus word order for floating point

9 posts in this topic

Okay, I have a Control Logix PLC with a Prosoft serial modbus card passing data to a DCS, works great. However...(isn't there always a however), we are moving to a new DCS, and I need to know the word order that the floating point is sent over by. I contacted Prosoft, and they said AB controlled the word order. Does anyone know if AB complies with the IEEE standard? Least significant word first? thanks, Ken

Share this post


Link to post
Share on other sites
I have some information here that the A-B floating point format complies with IEEE-754.

Share this post


Link to post
Share on other sites
Can you share, what document?

Share this post


Link to post
Share on other sites
Document attached How floating point numbers are represented in binary.doc

Share this post


Link to post
Share on other sites
I believe he's asking how a real is transmitted via Modbus and the Prosoft card, not how it's stored in memory.

Share this post


Link to post
Share on other sites
If the connection is Modbus/TCP over ethernet, then Modbus TCP can handle multiple masters, or rather, ethernet through a switch can handle sequential requests from more than one Modbus master. So a test using a Modbus Master like Modscan23 or Simply Modbus could be used to poll a pair of registers in the CLX, grab a floating point value. and see whether the value comes through correctly as a "swapped" or not-swapped value. It's hard to believe that any moderm DCS would not have the ability to switch from little to big endian or vice versa, though.

Share this post


Link to post
Share on other sites
My 15 year old DCS can handle either case, just set a bit and the words are swapped. The new system that management has chosen, is not as good as my 15 year old system as far as capability goes. However the new system looks good and they know how to sell to the people buying vs. the people using. So...I'm stuck with it. I'm using Modbus RTU via RS485.

Share this post


Link to post
Share on other sites
I didn't know IEEE had a endianness standard, but more on that later. Apparently CLX uses big endian format, according to an app note, Using Logix5000 Controllers as Masters or Slaves on Modbus (page 4) http://literature.ro...ap129_-en-p.pdf With regard to IEEE preferences, according to Wikipedia, IEEE 754, Floating Point standard does not define endianess: "This means that floating point data written on one machine may not be readable on another, and this is the case even if both use IEEE 754 floating point arithmetic since the endianness of the memory representation is not part of the IEEE specification." And a quick scan through the formatting mentioned here http://www.tacc.utex...g1/pg3formt.htm shows references to both IEEE little endian and IEEE big endian. Here's the lay-out of the two common ones, Big Endian and Little Endian byte swapped. I found a note from early 2000's that says Modicon and Wonderware use Little Endian Byte swapped as their standard format. But it matters not, if you know what you're starting with and what you need on the other end, right?

Share this post


Link to post
Share on other sites
Prosoft should have provided you with this answer instead of passing the buck to AB. There is no excuse for the answer you got.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0