Please Note This forum exists for community support for the Mango product family and the Radix IoT Platform. Although Radix IoT employees participate in this forum from time to time, there is no guarantee of a response to anything posted here, nor can Radix IoT, LLC guarantee the accuracy of any information expressed or conveyed. Specific project questions from customers with active support contracts are asked to send requests to support@radixiot.com.
Modbus "illigal data adress" RS485 120 Ohm termination
-
Hi !
According to the documentation in the "Mango ES" heading there is a picture showing the Mango ES with the connections and on The DIP-switches it say "RS-485 Biasing and termination"
But in another thread in the forum it is stated:
"The DIP switches on the MangoES should always be in the down position. These are for future expansion so all down is the only valid config for now."So if I am 100% of the up time is getting errors like:
"Modbus RS 485': Boost ON/OFF Device name: Modbus RS 485: Illegal data address" in spite of that it does respond in the data source menu when setting up the Modbus registers on the very same data address.
Could it be that I do need a 120 Ohm termination on the Mango ES terminals ?
Is it a noise thing or problem due to lack of termination or should I look for SW issueS?
If I delete this Data point then the next one pop up as "illigal data address"/ Per
-
Those dip switches won't have any affect on this error and it's also probably not the lack of a terminating resistor although you should always have a terminating register for a properly configured RS-485 network.
Illegal data address is a response from the device so you know that you are communicating to the device. It's telling you that you are requesting a register that it does not support.
These are the settings to check:
It's likely the Contiguous Batches option or the Max read register count or you are just reading the wrong registers.
-
Hi!
Added a 120 hm termination on the Mango ES side.
I have now tried som different settings without progress.
The register is valid when I test the readout on the data point menu.
And if I take it away the next data point in line gets the same error message
Modbus RS 485': Exhaust Air temp Device name: Modbus RS 485: Illegal data address
It is allways the first (from top down in the data point list) active data point that gets this error message!
Bit count from 1000 to 100000
Register 10 to 256Session timeout from 500 to 5000 ms
retries 5 -
You would want the 120 ohm resistor at the very end of your RS-485 network, the MangoES already has the resistor built in.
I'm not sure what you mean by "test the readout on the data point menu"?
Try checking "Contiguous Batches Only" and keep your Bit count and register count low.
-
This post is deleted! -
Hi Stensma,
I also encounter this weird behaviour. The first few consecutive node of device in daisy chain connection also seem "missing in action"
For my case, I had about 12 modbus device in a chain and I noticed first few node always not being discover by node scan.
However if I change the data source from modbus serial to modbus IP, all the node are discovered by node scan.
not sure if total no of devices connected in daisy chain had any implication or it is a known issue. -
@JoelHaggar
Hi!
I mean that the address is correct, when I test the address and settings on the data point the address is correct an it responds well.
When I then disable the data point wich is the first in the list, then the second one in the data point list gives me the same error.
I have now tried bit count from as low as 100 an register to 10 for read and write all with and without the "Contiguous Batches Only" option.
/Stensma -
Try your settings like this:
Also you can try the override timing box and leave your settings as 0 -
Latest news on the Modbus front.
Register value according to you suggestion works !
But then i loose connection to my second device on the Bus a energy meter that have.
My heat ex-changer has slave ID 1 and the Energy meter slave ID 3.
But the Heat ex-changer only has Modbus data type with 2 byte word and the Energy meter has 4 byte word.
This give me following error message:
Modbus RS 485': com.serotonin.modbus4j.exception.ModbusTransportException: Invalid number of registers: 2So I am currently testing read register set to "2" the rest set at "1" it is looking good so far.
By the way:
Where do I find the timing box? -
Nope I still get "Modbus RS 485: Illegal data address" when I have anything other than "1" in the read register setting.
-
Sounds to me like you have two devices that are not compatible to be on the same network.
There are two types of modbus reads for holding registers. One is where Mango requests a single register and the other is where Mango requests multiple registers. For 4 byte registers it's normal for the device to require the multiple register read so that makes sense. You could try changing your Max Register read to 2 which should be ok for your device with 4 byte registers but your other device may not like this so you might be forced to create two separate networks for each type of device.