Data Word Interpretation

Hello. I have an Anybus-S Ethernet communication card attached to a Cygnus tension controller in the field which I am using to communicate with a Rockwell 5000 controller system. Per the application note, I set up the communication in Logix 5000 and have 8 16-bit words for communication. The last two words are for float type data. When a request a value from the Cygnus which is a float type, both the float words respond with value changes. I cannot figure out what the conversion protocol is for the two 16-bit words to represent the original floating point real value. Can you help?

Hello @saifghouse,

You will want to reach out to the OEM that embedded the Anybus-S card into the machine. They should be able to provide you with more info about how the card is configured. My guess for the issue is that the endianness is not correct and is causing the data to be misinterpreted.

Deryck

Hi Deryck,

Thanks for getting back to me

The OEM, Cygnus, told me they don’t do the data parsing, and we should contact you L . I’ll press them more on it. It would seem they should know most about what they are selling, even if the data flow it includes a 3rd party communication device.

Do you happen to know of a system engineer at Cygnus? I’ve been working with their support guy who didn’t seem to know how this is supposed to work.

Thanks,

Saif

Hi @saifghouse,

This is an unfortunate common problem. There host process is setting up and configuring the Anybus device endianness being included…

I don’t know of any one at Cygnus, but will ask around.

What data are you getting and what are you expecting. You can typically look at the data as hex bytes and move the individual bytes around to get the correct data.

Deryck

Hello @saifghouse,

Talking to a colleague he pointed out two things that might be useful. First when you are adding the module you should be able to add the device using different data type not necessarily following what many of our examples use of just INTs.

You also should be able to use a MOV command to move the bytes from the a double into a REAL tag.

Deryck

Thanks Deryck.

We are extracting Boolean, integer and real numbers from the Cygnus. The Cygnus service engineer (who couldn’t tell me how to interpret the two fields for real communication) said the input should be coded as 16-bit (INT) variables in the Logix platform. When we did this, the communication started working and Boolean and integer variables were in the expected format. This makes be believe INT is what we need.

I tried using the MOV command and got unexpected values. I think I may need to play with re-ordering bits within the two INT words they say are reserved for real communication. Unfortunately, the permutations are many. The other thing I can do is get a static value when the line is down and compare the field value to the communicated words to see what combo makes sense. The Cygnus engineer volunteered to help with that too.

Saif