I have 4 different nodes I need to communicate with, nodes 3,4,5,6 from IP address 172.28.161.3 the registers are identical just different node references. I have added one complete set of tags for node 4 with no errors, as soon as I add any of the other nodes I get a communication error on the tags. The Errors seem to intermediately flash between node 4 tags and node 3. I have verified the other nodes are active using modbus data scanner.
What are the modbus TCP servers that the Client is connecting to? Is this a TCP to RTU gateway or multiple nodes on one TCP device?
If you increase the poll time for the topic does this effect this error?
It is a single TCP device with multiple nodes, Changing the Poll Time does not seem to affect it. It seem like the same group of tags for each compressor that are getting the error. Yesterday I had an entire set of Comp 3,4, and 5 tags setup and received random errors on a specific sets of tags I deleted all of Comp 4 and the errors cleared up. I Have Since re-added all the tags and am still getting intermittent errors on the tags It seems like specific groups but I cant what is causing the error.
This might be an issue with just one tag not reading causing issues with the others. Can you disable tags in error from the IO server global settings.
If this does not help we might need to get a wireshark so we can see what transactions are going out and the responses from the server.
It didn’t seem to effect anything changing the setting to disable tags in error.
How does wireshark work? I’m not familiar with that.
If that did not help i think a wireshark capture is necessary.
Here is a brief explanation of the process, you might want to check some resourced on line for details.
Wireshaks captures the traffic on your PC ethernet adapter and presents it in a human readable form. In our case we will be able to filter the traffic to just show the modbus traffic. All you will need to do is take the capture i will be able to analyses it for you. The capture part is simple but what we want to do is capture the traffic from the Ewon, to do this you need to intercept this traffic.
To intercept the traffic you will need to use either an ethernet HUB, similar to a switch but forwards traffic that comes in one port out to all the others. Or a Managed switch that allows you to perform port mirroring.
- A hub is the easiest option but they are older devices not commonly found.
- Connect the ewon the PC and the device the ewon is connecting to.
- start wireshark and tell it to capture traffic on the PC’s port plugged into the hub
- This process can be difficult as depending on the switch the process will vary.
- Plug all the three devices into the switch.
- Get into the switches settings
- Enable port mirroring and mirror the port the ewon is connected to to the port the PC is connected to.
- IE: if the ewon is connected to port 1 and the PC is in port 2 you want to mirror port 1 to port 2. This will copy traffic sent to and from port 1 to port 2 for your PC to see.
- Start wireshark and tell it to capture traffic on the PC’s port plugged into the hub.
Mirroring for a tp link switch. https://www.tp-link.com/us/support/faq/527/
Guide on wireshark https://www.lifewire.com/wireshark-tutorial-4143298
This is already installed in the field so for me to get out there may take awhile.
In the mean time I went through and deleted all the tags and then proceeded to add 1 tag from each node. I noticed as soon as I add another tag from a different node I begin to get communication errors. If I delete the previous tag I am able to establish communication to each of the nodes. But as soon as I add more than one node I get errors. See below for tag addressing example.
Test3: 40101#1,3,172.28.161.3 Alone Communication is fine.
Test4: 40101#1,4,172.28.161.3 Combined with Test 3, Error.
Test4: 40101#1,4,172.28.161.3 Deleted Test3 Communication is fine.
On Another note, is any additional hardware required for what I’m trying to accomplish? I’m working with the base Flexy 205 with no expansion modules.
Also I’m Using a single Topic (Topic A) if that is helpful.
Thank you for your help,
Thanks for an update. Have you had any other modbus Client devices connected to this server before? I am wondering if the server is not correctly handling a single client polling multiple nodes with a single TCP connection. I have used the flexy connecting to several nodes before without issue. Can you provide any more info about the IO server?
You could try splitting up some of the nodes to different topics. This might create multiple connections and help resolve this issue.
The Customer is currently using a Digi One to convert serial to ethernet. Then once on ethernet they have two Allen-Bradley Panelview’s connected to the Digi One(now the Flexy is also connected). They are using Kepserver Enterprise to poll the same nodes that I am with the Flexy. There are a total of 4 nodes, One for each compressor unit. Nodes 3,4,5, and 6.
I did try using the different topics but have the same result.
Just to clarify you have done multiple nodes with just the base unit no expansion modules?
One thought is that the Server is receiving to many requests for multiple nodes and it can’t keep up. This is where a wireshark showing the traffic to the Server might help us identify what messages are incorrect.
Here are a few things to try to see if we can narrow it down remotely.
If you remove another node does this get the node not reading to start working?
Is the Kepserver polling this at the same time as eWon?
With all the nodes and transactions configured can you take a backup in eBuddy with support files and upload it for me to take a look at?
If I remove the other nodes and only reference a single node at a time this clears up all communication errors and the tags start working. As long as I reference only a single node at a time I have no issue. As soon as I add another node I begin to have Communication errors.
The Kepserver is polling at the same time as eWon.
Here is the back up with all tags.
MOVED TO STAFF NOTE (191 KB)
What I am suspecting is happening here is the server is running into issues with all the requests to multiple slave coming in at once. We can try to set a delay between the request of two nodes. Under the modbus IO server config advanced settings add “PreDelayVal: 5000” this should add a 5 second delay between the node requests. If this resolved the problem you can try lower numbers to shorten the time.