Modbus Errors in HVAC System - Invalid CRC and Response Not from Requested Slave

S

Thread Starter

sx3

Hi Guys,

I'm new to the world of Modbus, and I'm trying to get things working in my house. This is my setup:

- Schneider electric Homelynk (RTU master)
- HVAC systsem, 2-wire + GND RTU, ID-1
- Heatpump, 2-wire RTU, ID-8

I'm running at 19200 baud and I have successfully been running my HVAC together with the maste for a couple of months. It polls correctly and no error messages at all!

Since last week, I have tried to connect my heat pump to the bus, using daisy-chain.

But when I connect the HP, I start to get all kinds of trouble.
I can poll both HP and HVAC and get values. But the communication is very sluggish, and many of my commands to the HVAC gets lost and my error log practically spits out these errors with every or another poll;
- Invalid CRC
- Operation times out
- Response not from requested slave

Even if I haven't mapped or polling the HP, i get the above errors when polling the HVAC as long as the HP interface is connected.

If I disconnect the HVAC from the bus, but let the master still poll the HVAC, and the HP interface is connected without mapping, I still get CRC errors.

In my opinion the HP interface responds to requests that are meant for another RTU device. But according to the manufacturer there is no problem with the interface, and it should only listen to ID-8 and ignore the rest, and 2 other of his customers are running this very interface without issues. (I don't know their setup)

The cable I'm using is a KNX bus-cable, TP cable. The total length is about 30 meters approximately.
 
R

Robert Dusza

Hi,

Sounds like you have some comm settings incorrect on the HP or if it is the last device on the Daisy-chain you need to make sure it is terminated correctly.

I have found that some devices cannot respond to requests quickly enough due to the internal processor speed of the device. Try setting everything up at 9600 Baud and increase the wait time between messages from the Master. Do one change at a time so you can keep track of what works or not.

You might want to try and get the HP working separately with the Master before installing in the circuit. You need to have that working before adding to the full network.

Hope this helps.
Bob
 
> I can poll both HP and HVAC and get values.

If you get VALID values from each device, then the physical RS-485 network connection is functioning.

1) Why the "response not from expected slave" error?

If you're getting valid data from each, then it isn't clear how the slave ID's could not be unique, but are you positive that each slave has a unique slave ID and that you're using that unique slave ID in the master's polling message? I'm puzzled as to how a collision could alter the slave ID byte where the CRC wouldn't catch it. But I have to ask.

2) I assume the scripting
- polls the 1st slave
- waits from a response from the first slave (or times out)
- then polls the 2nd slave
- waits for 2nd slave response (or times out)

Because it sounds like responses from both slaves are colliding on the network, as if one was really slow responding and its delayed response collides with the response from the other device. Or a delayed response collides with a poll.

Master polls #2, times out, master polls #1, #1 replies and #2's delayed response comes at the same time. Errors due to collision.

Try longer time outs or put a several second delay in between each poll. This is residential HVAC so there isn't anything urgent happening that 3 or 4 seconds will make a difference.

3) If you turn off (disconnect) the HVAC and stop polling it, is polling the heat pump by itself error free?
 
>Sounds like you have some comm settings incorrect on the HP
>or if it is the last device on the Daisy-chain you need to
>make sure it is terminated correctly.

It is not the last device, the HVAC/Ventilation unit is the last one.
This is a stand alone interface for the HP, it's more of an gateway between modbus and TTL 5V signals.

>I have found that some devices cannot respond to requests
>quickly enough due to the internal processor speed of the
>device. Try setting everything up at 9600 Baud and increase
>the wait time between messages from the Master. Do one
>change at a time so you can keep track of what works or not.

The interface for the HP is not configurable. It's hard written in the FW, ID-8, 19200, 8N1. The HVAC can run 19200 without any issues if I run it stand alone.

>You might want to try and get the HP working separately with
>the Master before installing in the circuit. You need to
>have that working before adding to the full network.

I've tried that, and get a couple of CRC's on the bus.
My error log states more error than the pure text CRCones on the bus, saying "operation timed out", I have tried increasing the timeout to 5 seconds in the modbus profile. The manufacturer of the interface states that it can be polled every 0,5 seconds.
 
2) It isn't really a script from my point of view, even though the master have scripting capabilities. This is a modbus profile setup. More of an wizard where I use a JSON file to map certain registers then import it to the master. Using this method, the master should handle all the slaves, without trying to access the serial when a poll already is in progress.

As I stated, I get problems even when the HP interface is connected, but not mapped or being polled, this puts the HVAC/Ventilation out of order with CRC's

I tried a new angle today, I set the ID of the HVAC to 15 instead of 1 and the errors are all more or less "response not from requested slave".

When setting the ID to 1, most errors are "invalid CRC"

I have tried updating the HP interface FW with one that have disabled CRC, from 2 different computers with the vendor on the line. it fails finding the interface on both computers. So he will send me a new one, and hopefully this will solve the problem.
 
Assuming this is 1/2 duplex set up, the slave (address 8) may be responding too soon. If so, increase the slave (Address 8) turnaround time.
 
Top