java.io.IOException: End of stream reached

I get this error after adding a modbus device. I’m not sure what is causing it. My tag does not work. But when I use a modbus tcp troubleshooting program I can successfully read from the device.

2021-06-02 11:36:20 AM	SocketIODelegate	[hostname=10.10.0.36,port=502] Socket connection closed, DriverState was Connected.
 	
java.io.IOException: End of stream reached.
at com.inductiveautomation.iosession.socket.AsyncSocketIOSession.run(AsyncSocketIOSession.java:74)
at java.lang.Thread.run(Unknown Source)

It’s the device closing the TCP connection for some reason.

If you have successful comms using a Modbus test program then capturing those comms with Wireshark is the easiest way to figure out what’s different with your Ignition setup.

I have never used wireshark and am not even sure what I’m looking at.

Any tips?

You would run the capture on the Ignition server and optionally filter for the IP address of the Modbus device. Ensure it’s capturing/recording on the right network interface before then communicating with the test program.

You can upload the resulting capture here for us to look at.

You could also call support. Troubleshooting Modbus addressing is a fairly common thing for them and they can walk you through using Wireshark.

IT is going to run it and send me the results. But from a troubleshooting program and read and write to the device even though it does time out on me. But Ignition just does not want to see it.

Here are my capture results.

Please upload the capture file somewhere that it can be downloaded.

weird enough today when we ran the capture i was not getting the error in the console i was the other day. never the less here is the capture https://we.tl/t-m5xYnmK65V

So, assuming default settings, try making an Ignition tag with an address (OPC Item Path) like this: [DeviceName]255.C3139

i tired and still get unkown for quality.

but i found this in wireshark
Capture
it lookes like it might be reading one off. I tried doing 3140 instead 3139 but still no luck

Our driver is one-based by default, so you would C3139 will show up as 3138 at the protocol level and in the capture.

Get a Wireshark of the traffic between Ignition and the device with just that one tag enabled and compare the two.

How would I go about that, since i can’t disable my other tags.

Separate device connection or just skip that part and get the Wireshark since it might be related if your other tags are also Coils.

I only have that one bit I am trying for that device.

I’m wondering if there was a solution to this?

I’m have what seems to be a very similar problem.

Unfortunately not, I didn’t have time to dig into it with support. I just ended up using a ethernet IP device instead I knew I could connect.