Weird Modbus response/behaviour with Sherrex RTU

darkesha

Member
Join Date
Nov 2007
Location
Calgary
Posts
107
Hi, I am converting Factory Link SCADA to Wonderware and I am stuck with weird behavior of Sherrex RTUs.
The master talks to slaves over radio through Modbus.

Results are pretty consistent and proper as long as I poll the very first register in the comm table (40091f - year in this case). The Factory Link had database with these tables that consist of particular registers and tags associated with registers.
But if I poll date, or any other floating register without including the year, I will see some other result.
So If I poll very next (40093f - month), I will get what I expect in (40094f - date). But if I poll year and month at the same time, I will get both properly displaying date and year.

Did anyone ever encountered this kind of behavior ?

I also have problem by looking at the original system where one floating point is in 40127 register, but I also have 2 different tags that write into 40126 and 40128.
So If I write something in 128, how do I expect to read properly from float 127 (which should include 128 as part of the message)?
These are very strange behaviors for me, and I want to know if someone had similar experience ?
 
Never heard of this brand of RTU before. I would contact the manufacturer. We have some RTUs here that only very loosely implement modbus.. with unexpected results.

We have one brand here that reports RTU time back in one 16 bit register. But how many seconds in a day? More than 65535! So the time is reported as "number of 2 second ticks since midnight". This is why i say speak to the manufacturer as they may have some weird implementation standard
 
I am actually chasing a guy who I believe designed these, and I believe he still fixes them out of his garage.
As for company...it was sold / bought few times and documentation and MB implementation is lost. I was able to get in touch with company who owns some of their technology and I got a manual from 1994, so no luck there.
 
Not much help here I know, but floating point in MODBUS is very strange in general. Try Googling "MODBUS Daniel Option" and see if that sheds any light on your issue. Basically there was this controller made by Daniel did floating point in 32 bit registers and would not report correctly if you only asked for 16 bits. If you ask for 16 bits you get weirdness, but if you ask for 32 bits you get it correctly. However the addressing still looked like 16 bit addressing. It was always a head spinner when you run into one of those.
 
Thanks very much for the idea. I will take a look into it.

I found out, if I poll the very first register of particular table of registers, and than I also poll for register I am interested in, I would get proper results.

Now my reading is ok, everything lines up - every tag gets proper result, but writing is the problem.

If I write to register 40113, I see value being written to it, than I see it changing to 0, and than I see register 40225 having this new value. So by writing to 40113 I am indeed writing to 40225. Something is making this shift as well, and I will have to figure out what.
 

Similar Topics

I currently have a weird issue involving Ethernet IP communication between a ABB CI873 (EthernetIP Module) and a 1756-L83ES. The Layout is as...
Replies
8
Views
693
Good morning. I'm doing a rehab and I need to recycle some part of the old code that won't change and that I need. This is a calculation that...
Replies
22
Views
1,166
I'm trying to figure out a weird behavior I'm seeing in my CCW program. It's for controlling a gas polarizer (for medical imaging). I'm using an...
Replies
6
Views
446
I'm trying to figure out some weird behavior I'm seeing in one of my programs. This should be fairly straightforward - except that it's not...
Replies
11
Views
897
Hello all, I Have a PointIO module with 2 input cards. The Revision is 6.013 and it is connected to a ControlLogix running version 24.11 The...
Replies
16
Views
2,335
Back
Top Bottom