MODBUS Bit Order

D

Thread Starter

Dan Marr

I've struggled with what is the proper bit order for Modbus serial communication. I took a look at the "MODBUS Protocol Reference Guide" (PI-MBUS-300 Rev. J) and noted that the proper method appears to be LSB to MSB (Left to Right Reading).

I often use MODSCAN and noted that it seems to be MSB to LSB (Right to Left Reading) and there doesn't seem to be an option to reverse this.

I'm not a serial expert, but I thought that serial information (not specifically MODBUS) typically transmits the LSB first, which to my mind seemed to explain why MODSCAN used MSB to LSB (Right to Left Reading).

Is this assumption correct?

I also seem to remember that several HMI programs I've worked with have an option to define who the software should be looking at the MODBUS information. When I use MODSCAN to read MODBUS information, some equipment seems to transmit the MSB first and other equipment seems to transmit the LSB first.

From a MODBUS Purist point of view, should the equipment be transmitting the MSB first?
 
R
I linked a Rosemount DCS to Modicon PLC using the DCS's Modbus link a while back, mapping bits in one system to the other. When I fired it up all my alarms bits were backwards and I spent days re-typing all the messages.

I can't recall if Modicon word is LSB to the left though.

I think most users of Modbus ignore the book and change it to suit themselves.

Roy
 
I think the problem is in naming the bits, and not was is sent first.

I have seen 3 kinds of naming bits.

1. Usually naming bits in computers is 0=LSB 15=MSB.
2. In old Modicon PLCs 1=MSB 16=LSB.
3. I have seen HMIs that use following naming: 1=LSB 16=MSB

Robert
 
You don't need to type it back. You just need to use the special bit that flags the serial card to read data in reverse order. Although you might need an extra/additional modbus driver to load on your DCS.

Vhic
 
Top