Problem connecting Ignition to Modbus TCP slave simulator (status: Connected, but no data)

Hi everyone,

I’m trying to connect Ignition to a Modbus TCP slave simulator, but I can’t get it to work properly.

:wrench: What I’m doing:

  • Using Ignition (non-commercial version)
  • Tried two simulators as Modbus slaves: Modbus Slave and ModRSsim2
  • Both work fine with Modbus master tools like Modbus Poll

:magnifying_glass_tilted_left: My problem:

  • In Ignition, under Devices, my Modbus TCP device shows “Connected”
  • But in OPC Quick Client, I don’t see any tags or data
  • Logs show this error:

arduino

KopiujEdytuj

java.io.IOException: End of stream reached.
at com.inductiveautomation.iosession.socket.AsyncSocketIOSession.run

:light_bulb: What I’ve tried so far:

  • Turning firewall on/off
  • Changing ports (502, 1502)
  • Checking Unit IDs and register mapping
  • Restarting Ignition and simulators

I followed this tutorial exactly but it still doesn’t work:
:link: YouTube – Ignition + Modbus TCP example

:backhand_index_pointing_right: Has anyone had a similar issue with Ignition not reading data from a Modbus TCP simulator?

Any ideas or tips would be greatly appreciated.
Thanks!
image






You added a Modbus device instance to Ignition's OPC UA server, but your tag seems to be addressing a Codesys OPC UA server?

What happened to your Ignition OPC UA loopback connection?

Yes, I added a Modbus device. I thought my tag was properly addressed for Modbus, not Codesys. Should I address my tag differently? Do I need to add a separate OPC UA server to connect only with the Modbus slave via Modbus TCP? Do I need two OPC UA servers (one for Codesys and the second for Modbus slave)? I haven’t configured any OPC UA loopback connection for this Modbus test, and I’m not sure what OPC UA loopback means in this context.

It's a connection to Ignition's own OPC UA server that you apparently deleted at some point.

When you configure a device in Ignition, you are configuring it for Ignition's OPC UA server. To access a device you configured you do it through an OPC UA connection to Ignition's OPC UA server. Every default install of Ignition includes an already configured "loopback" connection to the server.

You'll have to add this connection back. When asked for the discovery URL try opc.tcp://localhost:62541/discovery.

1 Like

Thank you for response.


Do you mean this server by Ignition's OPC UA server?

You've made an external OPC connection to a CoDeSys device. For some reason, you didn't add that, but instead you replaced the loopback connection that Ignition has "out of the box".

You need to re-create (add) the loopback connection that Ignition installed with.

Thank you for your response.
Do you mean that I should have the Ignition OPC UA server instead of the Wera OPC UA server (the external OPC connection to CODESYS)?
And that the Wera OPC UA server should appear in the hierarchy under the Ignition OPC UA server?
Is it possible to add this loopback connection without deleting the external OPC connection to CODESYS?

  1. Yes, your tags that connect to the modbus device need to use Ignition's OPC server, which you've disconnected from the rest of Ignition.

  2. No, your external OPC client connection would be a peer to the loopback Ignition connection.

  3. Yes, you can have many OPC client connections in Ignition to various OPC servers. It is expected that one of them will be a loopback connection to Ignition's own OPC server, and that is how Ignition installs. There's a link to create a new connection in your screenshot of your existing client connections.

( Consider doing a fresh install of Ignition into another system and inspect what that normal loopback connection has for properties. )

Thank you for answering my question. I added a new Ignition OPC UA server, but it has a status of faulted. Do you have any idea how to fix it?


At it returns that information: status=Bad_UserAccessDenied, description=User does not have permission to perform the requested operation.

I haven't had to do that in a very long time. Which is why I suggested looking at a pristine example.

The default username is opcuauser and the default password is password. Make sure you configure the connection with these values.

1 Like

Thank you. It is working now.

Thank you. It's working now. I had to change the password to default value like you had said.