Max device connect to Modbus TCP driver

Hi,

I currently have an integrated scada with 114 devices. These devices are integrated by Modbus TCP using the Ignition driver.

The problem is when adding new devices. When I reach 147 devices, it throws me the following error.

With that error the project collapses and it won't let me delete or add new devices.

Ignition Version 7.7.10
Driver modbus TCP

Can you upload your wrapper.log files as well?

I've had 165 or so on 7.8 before. A "dirty" message can sometimes be resolved by simply trying to add/edit again.

Hello Kevin. I'm Victor's co-worker, He can't respond right now.

We tried to add a new device and this is the log entry showed in the console:

9:33:02 RecordEditForm Error updating Device "CT3_CN3_1".
simpleorm.utils.SException$Jdbc: Executing INSERT INTO DeviceSettings (DeviceSettings_ID, Name, Type) VALUES (?, ?, ?)
for [DeviceSettingsRecord 377 NewRecord Dirty0]
at simpleorm.sessionjdbc.SSessionJdbcHelper.flushExecuteUpdate(SSessionJdbcHelper.java:409)
at simpleorm.sessionjdbc.SSessionJdbcHelper.flush(SSessionJdbcHelper.java:376)
at simpleorm.sessionjdbc.SSessionJdbc.flush(SSessionJdbc.java:436)
at simpleorm.sessionjdbc.SSessionJdbc.flush(SSessionJdbc.java:421)
at simpleorm.sessionjdbc.SSessionJdbc.commitAndDetachDataSet(SSessionJdbc.java:362)
at com.inductiveautomation.ignition.gateway.web.components.RecordEditForm.commitRecords(RecordEditForm.java:433)
at com.inductiveautomation.ignition.gateway.web.components.RecordEditForm.onSubmit(RecordEditForm.java:383)
at com.inductiveautomation.ignition.gateway.web.components.RecordEditForm.onSubmit(RecordEditForm.java:350)
at com.inductiveautomation.ignition.gateway.web.components.RecordEditForm$1.onSubmit(RecordEditForm.java:125)
at org.apache.wicket.markup.html.form.Form$9.component(Form.java:1248)
at org.apache.wicket.markup.html.form.Form$9.component(Form.java:1242)
at org.apache.wicket.util.visit.Visits.visitPostOrderHelper(Visits.java:274)
at org.apache.wicket.util.visit.Visits.visitPostOrder(Visits.java:245)
at org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1241)
at org.apache.wicket.markup.html.form.Form.process(Form.java:923)
at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:769)
at org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:702)
at sun.reflect.GeneratedMethodAccessor59.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:216)
at
org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:
240)
at
org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:226)
at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:814)
at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:253)
at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:210)
at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:281)
at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:188)
at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:245)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1156)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1088)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)
at org.eclipse.jetty.server.Server.handle(Server.java:517)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:306)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:245)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
at java.lang.Thread.run(Unknown Source)
Caused by: java.sql.SQLException: [SQLITE_CONSTRAINT] Abort due to constraint violation (UNIQUE constraint failed:
DEVICESETTINGS.DEVICESETTINGS_ID)
at org.sqlite.core.DB.newSQLException(DB.java:890)
at org.sqlite.core.DB.newSQLException(DB.java:901)
4/11/22, 9:33 Ignition : SCADA Crucero
localhost:8088/main/web/config/system.console?141 3/3
at org.sqlite.core.DB.execute(DB.java:810)
at org.sqlite.core.DB.executeUpdate(DB.java:847)
at org.sqlite.jdbc3.JDBC3PreparedStatement.executeUpdate(JDBC3PreparedStatement.java:86)
at
com.inductiveautomation.ignition.gateway.localdb.DelegatingDataSource$DelegatingConnection$DelegatingPreparedStatemen
t.executeUpdate(DelegatingDataSource.java:584)
at simpleorm.sessionjdbc.SSessionJdbcHelper.flushExecuteUpdate(SSessionJdbcHelper.java:407)

After this error, the device is not added to Ignition and we can't add any other device, no matter the driver used (we tried with Siemens driver and get the same error)

This is the parameters of the new Modbus device shown in the log entry we are try to add.
Ignition _ SCADA Crucero.pdf (179.4 KB)

You probably need to restart the Ignition Gateway. If it still doesn't work after that you'll ned to call support.

Yeah, we restarted the gateway, even perform a clean installation in other computer and restore the gateway backup and still get the same error.

We were thinking to create the gateway from scratch, but add the 114 existing devices doesn't sound very fun

Consider upgrading at least to the last release in the v7.7 line. If you can't upgrade to current. v7.7 is very old.

We already are running the last version of the v7.7 branch (7.7.10). The client doesn't have any support plan to upgrade to a newer version.

Sorry, I was thinking of 7.5.14.

{ If this is truly an Ignition bug, your customer is either going to just live with it, or pay to reinstate support. And it certainly looks like an Ignition bug, to me. }