we are experiencing a little problem with some modbus devices (3 energy meters, a heat pump and a HRV system), we are currently reading and writing on those devices but we have a large amount of errors (operation timed out), approximately 1 per device every minute.
We tried to ground the shield of the modbus cable and we install two terminating resistors, but nothing seems to work fine. The only way to manage those errors is to set a polling rate at least of 60 seconds, they do not disappear but the system seems to handle them.
We suppose that there are some interferences due to the heat pump because we noticed that when it's running the number of errors tend to increase.
I have seen same issue once and we changed primary (230V side) polarity on the 24V power supply for the W4K and that was the root cause of the errors...
22.01.2021, 15:52 (This post was last modified: 22.01.2021, 16:13 by Kilogica.)
Thank you Erwin, we'll try this ASAP.
Another question:
we have another system (a BT-Modbus interface by Emec for pool monitoring and control) that can read and wite coils but if we try to read or write holding registers 90% of the time give a "invalid data" result.
The line includes two PM-3250 by Schneider Electric and a Datamanager 2.0 interface by Fronius, this device is the third slave on the chain (W4K as master -> PM-3250 n°1 -> PM-3250 n°2 -> BT-Modbus -> Datamanager 2.0).
Any help will be appreciated, thanks
Update:
Often both PM-3250 return an error "response not from requested slave"
In most cases the issue is with wrong topology or poor grounding. As you mentioned heat pump seems to be the problem I would check there. You could try to get an USB to RS485 and try using it as the modbus interface. If possible heat pump could be isolated this way.
Also try disconnecting some of the devices and check if it starts working correctly this way. Do you have 120 ohm termination resistors installed? Is GND connected between all modbus devices?
Right now we have only A and B terminal connected, the cable shield is grounded but some of the modbus devices don't have the GND connector so we choose not to connect the common wire and we installed the termination resistors (120 ohm 1/4W) on both sides. We already tried to disconnect every devices and nothing change.
We don't know what device could cause the problem, maybe even all of them.
Another question: the 0V connector on the W4K is the same things of a common connector? For example, can be used as a 0V reference for the devices that need it? It has to be grounded?
Thank you, we knew most of this but it is surely helpful!
Indeed we tried to connect all of the GND connector to the 0V of the W4K, the question is: after we linked all the common conductors do we have to ground the wire or is already grounded from the W4K?
And beside that, we have two devices without a common connector, so we can't connect literally everything.
All right, we check everything and now the situation is better, there are only two issues:
- Often PM-3250 return an error "response not from requested slave" or "invalid CRC"
- BT-modbus device suddenly stopped communicating after checking the settings, the guy who wired the system told us that he had to make a small branch on the bus for this device, maybe this could cause the issues?
On the line with W4K as master -> PM-3250 n°1 -> PM-3250 n°2 -> BT-Modbus -> Datamanager 2.0 we undo the branch, the situation is almost stable right now but PM-3250 keep doing CRC errors and response not from requested slave, that's strange.
Every device is on 9600 baud 8N1 and we checked for double addresses.
I even thought that maybe one of them could have 2 stop bits and not one but it's not a setting parameter, you can set it only as 8N1 and not as 8N2 plus I tried to set W4K to 8N2,
and, that's really strange, they seems to stop making errors...
Are you sure that you don't have even or odd parity enabled on Modbus devices? Most devices have parity and stop bits configured separately but 2 stop bits can only be enabled if parity bit is disabled.
I'll check ASAP but I'm sure that we are set in 9600 baud 8N (I read it via modbus), stop bits cannot be set in PM-3250 (or so it seems according to manual) but 1 stop bit is set as standard.
The question is: why I can read address either with 8N1 or 8N2 settings in the W4K?
I expect every device in 8N1 to stop working, but the only one that stops is the Fronius inverter.