ETR Automazione srl

Discrepancy TCP modbus reading

10 posts in this topic

Hello, i have a curios problem in a modbus tcp reading from a client. 
The HC900's answer for the variable 20 (holding register 6375) is clear in the Hybrid Control Designer (the variabile is a simple counter of flow gas counter). The ammount of value is incremented every pulse from a digital input. 
But when i send the request from a client modbus, the value's variable is different (completely). For example the value is frozen from this morning, probably when the machine started up.    

The others value read directly from  analog inputs are correct.

Only this value elaborate from some blocks show this problem.

I can't understand the cpu's logic for elaboration the exchange area memory modbus.

 

Best regards, Ennio

.

Share this post


Link to post
Share on other sites

Do you have a link to the HC900 user manual?

Share this post


Link to post
Share on other sites
15 hours ago, pturmel said:

Do you have a link to the HC900 user manual?

Hello pturmel, yes, i have HC900 user manual (pdf) and with it i have configured the modbus access to analog values. 

User Manual

 

Share this post


Link to post
Share on other sites

OK, so there are a few possibilities to check in your client software.

On page 10 of the manual given, it shows the floating point byte and word order possibilities.  Your client software might be using a different order than the HC900 is configured to use.  Some client products (like Ignition) can configure the word order on their end, but not the byte order.  Fortunately, the manual says the HC900 can be runtime reconfigured for various formats.

The other common problem is address numbering.  The Modbus protocol itself, on the wire, uses holding register offsets 0-65535, corresponding to user-friendly addresses 400001-465536.  But some products expect 400001 to be offset 1 on the wire.  See if your client can adjust for this (possibly in either direction).

Share this post


Link to post
Share on other sites

Hello ptermel, thank you for your reply.

It's not a problem of order byte or address shift of modbus address (because i reply that i read without problem other floating register, like analog values).

I send the same request (i have only type of request 3) from client, but only these values (variable 17 and 20) are frozed on visualisation client side. But on the Honeywell software i see the same variables change (i suppose that the request from Honeywell and my client is the same, but the result not).

I tried different modbus client and the problem is always the same.

Ennio

 

Share this post


Link to post
Share on other sites

Do other variables work correctly in the client side?

Share this post


Link to post
Share on other sites

Other variables work fine without problem

Ennio

Edited by ETR Automazione srl

Share this post


Link to post
Share on other sites

Huh.  I'm stumped.  Not enough Honeywell experience to offer anything more.

Share this post


Link to post
Share on other sites

I did an HC-900 project back in 2010 or thereabouts.  That project used the standard fixed Modbus map, not the user-defined custom Modbus map.

I do recall that Honeywell sold a large project in Europe at which point they discovered that Modbus did not work very well and produced several CPU firmware updates with Modbus revisions, 2010 or earlier.  So one question is, how old is this HC-900?  Could it be from the early period when there were Modbus bugs?

Do you know if the Modbus register ever reported current values instead of stale, out-of-date values or is this the first time anyone's discovered it?

If you can see the variable changing monitor mode in Control Designer, then I suspect that it is a mapping problem.  Somewhere in the presentation it describes how to print or export the Modbus map so you can check which tags are at which Modbus address.

I attempted to upload a 1.5Mb pdf version of Honeywell power point on Modbus training for the HC-900 but the forum doesn't like it and I doubt there's a reasonable solution.

The details in my memory are long gone on specifics of navigating HCD software, so I can't really help you, but if you post a throw-away email address that can handle an attachment, I'll email the training pdf to you.

Share this post


Link to post
Share on other sites

SOLVED

It was difficult receive a information from Honeywell support, but they send me a trace to find the solution.

The customer can't stop HC900 to set the correct order byte (Big/Little endian).

So with the client modbus and another modbus tool we started to try the right byte order and ther right address because with a shift of -2 from manual, we intercepted probably the mantissa of float register with a CDAB order.

The solution is a ABCD byte order and a shift of -1 from manual to find the right value in modbus register.


Ennio
Thank you to everybody

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