Modbus Daniels - What is Enron or Daniels Modbus?

n summary: Enron Modbus is just normal Modbus with special handling of 32-bit values as ONE register instead of TWO. Enron or Enron/Daniels Modbus is Standard Modbus with a few vendor extensions. The exact impact of these extensions is context dependent, but most common Modbus commands work as expected. There are some custom vendor-defined functions available - but few users expect or use them. The largest impact has to do with how 32-bit data values are read/written.
Enron-MB defines two special 4x holding register ranges:

  • 4x5001 to 4x5999 are assumed 32-bit long integers (4-bytes per register)
  • 4x7001 to 4x7999 are assumed 32-bit floating points (4-bytes per register)

Dealing with 32-bit values in Modbus is NOT unique to Enron-Modbus. However, Enron-MB takes the debatable step of returning 4-bytes per register instead of the 2-bytes implied by the term "holding register" in the Modbus specification. This means a poll of registers 4x5001 and 4x5002 in Enron-MB returns 8-bytes or two 32-bit integers, whereas Standard Modbus would only return 4-bytes or one 32-bit integer treated as two 16-bit integers. In addition, polling register 4x5010 in Enron-MB returns the tenth 32-bit long integer, whereas Standard Modbus would consider this 1/2 of the fifth 32-bit long integer in this range.
So the "challenges" posed by Enron-MB slaves are:

  • Some Masters/Clients insist on receiving 2-bytes per register, thus they can never successfully poll a slave that returns 40 bytes when they ask for 10 registers and expect only 20 bytes. Worse, the error message the user sees may be simply "comm failure", which leaves the user assuming there was NO response.
  • Some Masters/Clients that handle 32-bit responses will miscalculate the offset to the next block of registers. Thus after they can poll 50 registers starting at 4x5001, they assume the next block of 50 starts at 4x5101 instead of 4x5051 as Enron-MB expects.

Contact Us

Contact us via phone (+1 866-383-1657) or leave a detailed message below for sales, support, or any other needs

*Required Field
*Required Field
I'd like to receive the newsletter. *Check email for confirmation.
*Required Field
8:00am - 12:00pm 12:00pm - 5:00pm