Discussion forum about Comet system products
You are not logged in.
Pages: 1
Hi,
I recently purchased the T3610 so I could add a temperature probe in a server room serviced by a ModbusTCP based SCADA system. The T3610 setup very easy and was able to read from the internal webserver and I was able to read through ModbusTCP. However, the ModbusTCP reads change to 0 every other reading.
I am reading address 40049 for Temp and the first read will be 72.1 and the next will be 0. This also applies with the RH, it reads 27.5 one reading and the next will be 75. Then will both start over with the true reading and then go to a default reading. It should not go to a non-true reading between scans
1. Is there a configuration parameter that I have incorrectly setup in the T3610?
2. I thought I could be reading too fast, so I slowed down from 1/sec to 1/15sec. with the same results.
I really like this device, but this problem prevents me from ordering more, can you help me solve this problem.
GBrown
Offline
Hi Geoffry,
sorry for delay.
It looks like you have some problem inside your SCADA system. It may happen you don't wait for the answer before you send another request.
Could you capture communication by Wireshark and send it to us here: email?
Thanks
Mike
Offline
Mike,
Thank you very much for the reply, but before we start to blame my SCADA system, can we examine a few other items first. I don't claim to be a Modbus protocol expert, but I have interfaced a few modus devices in the past and my SCADA system currently interfaces to many devices and different companies that adhere to the Modbus protocol standard without issue.
An observation: There aren't any errors detected in the message format itself. Note, that a master request goes out and the T3610 slave answers immediately (less than 1 second) with a valid response. I conclude that the content for those registers are incorrect.
So here are a few questions to make sure we are on the same page.
1. Are the addresses 40049 Temp, 40050 Relative Humidity correct?
2. What is the delay required for a Comet Device ? Note that I am currently waiting 15 seconds. however the results are the same whether I wait 1 second or 15 seconds.
3. If I am able to show you the message received from the T3610 is correct in format, but the message content is as I have described alternating between a correct temp and RH reading and default values of 0 and 75, what will that indicate to you? What would your next suggestion be?
GBrown
Offline
Hi Geoffry,
Response to your questions:
1. Q: Are the addresses 40049 Temp, 40050 Relative Humidity correct?
A: No. For T3610 you have wrong registers. Please see manual at page 26. Correct registers address are: 49, 50, 51, etc. If you send request to register with number 40049, then device returns Modbus Exception (Illegal Data Address).
2. Q: What is the delay required for a Comet Device?
A: I think it takes to prepare response approximately 200ms. T3610 device measuring interval is set 500ms. Due to not make sense fastest reading than 0.5sec.
3. Q: If I am able to show you the message received from the T3610 is correct in format, but the message content is as I have described alternating between a correct temp and RH reading and default values of 0 and 75, what will that indicate to you? What would your next suggestion be?
A: Temperature and RH are at format int*10. That means read value 201 is interpreted as 20.1°C, etc. Inside device is nothing like default value 0 or 75. It does not make sense. You can try this:
- Just install on your PC our free software Sensor Reader (http://www.cometsystem.com/userfiles/fi … .0.2.2.exe). This software use also Modbus TCP. If will work without any problem then something wrong is with your SCADA.
- Please check if right Modbus registers are used.
- You can sniff communication between your SCADA and T3610 device by Wireshark software (https://www.wireshark.org/download.html). From sniffed communication I will be able say what is wrong.
Jan
Offline
Jan,
Great, now we are getting somewhere, I had put those addresses in my first post.
1. Yes, I looked at page 26, and saw the address 49, 50, etc. but thought that valid Modbus read registers must start with a 4XXX so I added the prefix. Note that when I use address 49 and 50, the data is not valid when I read it, but when I use 40049 I do get the same value as the web page reports. My Modbus interpretation that all addresses that start with 00XXX to actually be coil write commands, not a read.
So I will do two things.
A. I will use a 3rd party ModbusTCP driver independent of my SCADA system to poll the T3610 and see the results. I certainly believe that your Modbus software will work on your device.
B. I will post to the Modbus community site and get their interpretation of the 49 and 50 address versus 40059, 40050.
C. If I don't have clarity from actions A & B, I will use wireshark. My network team, does not like wireshark being used so I tend to use it as a last resort.
2. I didn't think the timing was an issue, so it is good to take that issue off the table.
3. See response C.
GBrown
Offline
Hi,
ad 1) This is a problem with your SCADA. Your SCADA software use addressing according obsolete Modbus specification from 1996. We have some devices which supports of both address models (standard and obsolete 40xxx).
Because T3610 is one of newer devices we did not implemented this obsolete address model. You are first with this problem. Maybe if we will talk about bigger quantity of devices we will be able add obsolete addressing model...
Jan
Offline
Jan,
Hmmm, I must have missed that memo. I just looked around and can't seem to find reference to Modbus 4XXX registers as being obsolete or communicating to them in that manner as being obsolete.
Can you point me to where this is described?
GBrown
Offline
Hi,
Please see Modbus specification at http://www.modbus.org/specs.php. And compare documents:
- MODBUS Protocol Specification (http://www.modbus.org/docs/Modbus_Appli … V1_1b3.pdf)
- MODBUS Over Serial Line FOR LEGACY APPLICATIONS ONLY (http://www.modbus.org/docs/PI_MBUS_300.pdf) - is is the obsolete Modbus specification from 1996. Use only to address legacy issues. Please do not use it for new implementations.
We will discuss if adding this obsolete address model into Tx5xx/Tx6xx will have important benefit for ours customers. Support for obsolete standards is not at top of requirements. But if this will need lot of our customers, we can change approach.
Jan
Offline
Jan,
I spent some time today digging into my actual problem with some research about the Modbus versions that you reference.
1. It turns out that my problem of alternating values had nothing to do with Modbus implementations being obsolete or not. If you think about it, if a value changes, it can only be if something is writing a change. I had an undocumented tag writing to the same location at about the same frequency. So, I changed the Tag location and it easily solved the problem.
2. I really didn't know what to make of your obsolete Modbus claims, so I did a bit of research on that. I looked at a few Modbus simulation tools and asked a couple of experts that I know. Here is what they said.
"You'll perhaps get a lot of answers, but true Modbus numbers registers from 0 to 65535, and coils also are 0 to 65535.
The 4x/0X stuff is a notation used by early Modicon programming tool, where 0 was reserved for none/nop and the address was strictly 0001 to 9999. So 4x0001 was register offset 0, and 0x00001 would be coil offset 0. Eventually, when 64K memory became cheaper than 4x, they bumped this up to 5 digits, but it is still a Modicon notation. You'll find, as example, that SE now use the %MW0 for memory-word instead.
My suggestion to vendors is always just include two columns in the document, so your two registers would be 49 or 4x00050, plus 50 or 4x00051. This makes everyone happy."
I actually printed the protocol documents which was actually good timing as I will be teaching a seminar on this soon. I didn't see anything in the documents indicating obsolete or bad practice to use 4XXXX registers (Maybe you can point out this page). In either case, there is lots of both new and old Modbus equipment that uses the 4XXXX convention, so as the expert has said, I don't see why a vendor wouldn't automatically include both, it is really an easy thing to do.
So at the end of the day, my SCADA system was able to talk to your sensor using 40049, 40050 registers. So I am curious now, does your system actually support 4XXXX registers as every other system I have ever seen does. or is my SCADA system so smart, it could figure out what to do even though I had used an obsolete address format?
GBrown
Offline
Hi,
Your SCADA is probably automatically translating 40XXX address range. As I wrote at previous post that T3610 returns for 40XXX registers Modbus exception.
Actually is not a big problem add 40XXX registers support into device. I think it will be a few lines of code. Biggest problem is a firmware testing. We release firmware to manufacturing only after extensive testing. This testing takes many days. Quality of our products is very important for us.
For this moment we have not listed any bug with latest Tx5xx/Tx6xx firmware (version 1-5-7-01). We can add 40XXX support into next firmware version, that is not a problem. But in the near future is not planned new firmware version. Only if we decide add some features or fix bugs in firmware. For this moment we not know about any bug.
I can promise that longer time horizon we want continuously improving our products. This includes new firmware updates with new features. New firmware is even available for old devices. Updates are free of charge. For example we are still releasing new firmware with new features even for devices manufactured in year 2007. We want to be ours customer happy. Long term firmware updates is one of ways...
Jan
Offline
Pages: 1