Emotron floating point format & Modbus

Recommended Posts


I have been running Emotron VFD trough modbus with DAQFactory. All the basic reading and writing is working  just fine. Now I´m having a problem converting Emotron floating point format to correct decimal values.

I can read the value from 0 to 32767 with the U16 format but after that I don´t know how to continue reading the value.  I need to read this value from 0 to 200000.

Can I make this work trough "channels"  ?



Part of the Emotron manual attached.



Share this post

Link to post
Share on other sites

OK, that is a new, and quite proprietary way of dealing with floating points.  I don't know why they just didn't do what everyone else does and use two registers and regular IEEE floating point format....

You have to take the U16 value you get from the PLC and process it like they are floating point values in this weird format.  You can tell if they are floating point because the value returned will be > 32767.  

There is not a simple Conversion you can apply.  You would have to use script.  I'd probably either use the to.bit function to get the bits and then calculate it, or use some bitwise math to extract the proper values.  The tricky part is the sign, which is not in a usual place because the breaks aren't at 8 bit intervals.  You will likely need to experiment.


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