Modbus versus Enron Modbus

A

Thread Starter

Anonymous

I am trying to communicate from a Quantum PLC using the XMIT loadable with a Enron-Modbus ASCII slave device. Using a protocol analyzer I
can see the request and the return. In the return from the slave I see no error, but the master is showing an LRC error.

Can any one please shed some light?
 
Your statement doesn't make sense! If the Query leaving the Quantum has an LRC error how can the slave even reply.
 
J

Jerry Miille

ENRON Modbus uses the Modbus register number to define the "type" of data to be returned. If you are trying to read a register in the 5000 or 7000 range, this is either a long integer or a floating point which are 32 bit values. If you ask for a single register in this range, you will get back 4 bytes of data. If you ask for a single register from a "standard" Modbus device you would get 2 bytes of data not 4. The XMIT loadable is probably expecting the LRC where the 3 byte of data is and so is declaring an error.

If you ask for registers in the 3000 range, you will get 2 bytes of data for each register which should work with your loadable.

You can purchase protocol translators that can make this conversion for you if you cannot use the 3000 range registers.

Jerry Miille
 
I have communicated to Enron Modbus devices using the QUCM card (Quantum Universal Communications Module) which is essentially a protocol
converter. Feel free to contact me if details are needed.

Dan ( mayberrd @squared.com )
 
Jerry,

Thanks for the info. Big Help!!!!

Can you recommennd a protocol converter. The one's I've seen are expensive.

I really appreciate your expertise....
 
L

Lynn August Linse

The largest difference between "Modbus" and "Enron Modbus" is that a Modicon PLC assumes always 2 bytes per register requested, while Enron (& OmniFlow & some others) allow the return of any size and assume the poller will calc the size based on the byte count returned. These "creative folks" include registers which are 4-byte longs/floats, 16-byte strings, and 128-byte "buffers" beyond the plain 2-byte words.

Thus:

1) XMIT polls for 10 registers, it assumes/requires that 20 bytes of data come back.

2) XMIT polling for 10 "32-bit Enron registers" will still assume/require that 20 bytes come back, but the Enron will return 40 bytes. Thus the PLC likely assumes the 21st byte is the start of the LRC & you get an LRC error.

I know OmniFlow has what they call a "Modicon compatibility mode bit". Set this bit and all responses are changed to 2-byte words. It affects the register memory map to some extent, so you'll need to rethink things. I'm *NOT* sure if your Enron device has such a "compatibility setting", but given all the DCS gateways and other high-cost products which also assume only 2-byte registers, I'd expect Enron to have asimilar work-around.

regards

Lynn August Linse, Senior IA Application Engineer
15353 Barranca Parkway, Lantronix Inc, Irvine CA 92618
[email protected] www.lantronix.com
Tel: (949)300-6337 Fax: (949)453-7152

Get Plugged-In to the Lantronix quarterly solutions magazine
- subscribe today at www.lantronix.com/plugged-in
 
This could be a timing issue, check Key Off and timeout settings to ensure they take in the lenght of the response...
 
Top