Unknown Register Addresses Modbus TCP/IP

E

Thread Starter

esung911

Hi there,

I'm using a third party software to send data requests over to a gateway that's polling Modbus data from a PLC on a serial link (supposedly Modbus RTU) and sending it to the master via Modbus TCP/IP. I'm not receiving very good vendor support but I was able to get "some" communication going.

I was able to send a read input register request but the response I get back does not contain any register data, it just ends with the CRC at the end of the line. The bytes preceding the CRC all look proper (no exception codes) with the slave address, function code, number of bytes, but then the CRC. Odd.

Any suggestions? I've been unable to contact the manufacturer with any reliable information.

More background, software is JCGP-80, if that helps.
 
I don't have any immediate ideas, but it might help if you could tell us some more information. For example,

- What is the gateway?

- Are there any gateway configuration parameters, and have you tried changing them?

- Does the gateway require your client (master) to set the unit id (UID) to a certain value in order to route the message? If so, have you set it to that value?

- A search for the software shows your question as the first hit, and nothing else that's relevant on the first page. Can you point us directly to the relevant information?

- What you are trying to talk to?

- What functions you were executing (including addresses and quantity).

- What the actual responses looked like.

- Is there anything else that is on the same serial link?

- Have you tried talking to the device directly from a PC without going through the gateway?

- Have you tried any different functions, addresses, or quantities?

- Anything else that might be relevant.
 
L

Lynn August Linse

>I was able to send a read input register request but the response I get
>back does not contain any register data, it just ends with the CRC at the end of
>the line. The bytes preceding the CRC all look proper (no exception codes)
>with the slave address, function code, number of bytes, but then the CRC. Odd.

I'm not familar with the device you mention.

The only time I've seen this is with a 'configurable collection' area of memory. For example, some flow meters (like OmniFlow) have many hundreds of pieces of data you MIGHT want, but probably don't. So they have a special area - perhaps 125 words worth of space, and the user can cherry-pick just the registers they want to see (so #10, 11, 17, 35, 112, 113 and so on). These are concatenated together into this space.

The weird part of this design is that if you poll 125 words from it, the length returned is ONLY what is configured. If there are 6 registers selected, then only 12 bytes of data is returned. If there is no config, then no data is returned.

Another idea - if the data being read is 32-bit (register pairs), this could be a broken, poorly designed 'error' complaining that you are reading misaligned data, so only 1/2 of a 32-bit value. Try reading 1 register higher or lower, and make sure you read an even number.
 
Top