Heartbeat script having effects system wide

Sorry I probably have expressed myself in a wrong way.

As I mentioned I will post all the details on Monday as soon I will have a remote connection.

At the moment, as it is not my own projects, the only thing I can remember is that I’m working on a gateway version that is higher then 7.9.x, and I thoug that could be a useful information as maybe the bug mentioned above was fixed before 8.x.x

So the aim of my post was to ask clarification about my doubts that are not strictly related to the ignition version, waiting then to post the detail on Monday.

Sorry if my English is not so good and if someone sended mail at the wrong Australian address.

2 Likes

Gateway version : 8.1.0 (b2020110211)

The error i’m having is this one (running 2 separate timer scripts, shared - fixed delay performing a single writeblocking each on two separate opc servers. As soon one goes down, no write on the second is performed) :

Error during blocking write of tags through scripting.

java.util.concurrent.TimeoutException: null

at java.base/java.util.concurrent.CompletableFuture.timedGet(Unknown Source)

at java.base/java.util.concurrent.CompletableFuture.get(Unknown Source)

at com.inductiveautomation.ignition.gateway.script.GatewayTagUtilities.writeBlockingImpl(GatewayTagUtilities.java:237)

at com.inductiveautomation.ignition.common.script.builtin.AbstractTagUtilities.writeBlocking(AbstractTagUtilities.java:408)

at jdk.internal.reflect.GeneratedMethodAccessor28.invoke(Unknown Source)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.base/java.lang.reflect.Method.invoke(Unknown Source)

at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:188)

at com.inductiveautomation.ignition.common.script.ScriptManager$ReflectedInstanceFunction.__call__(ScriptManager.java:523)

at org.python.core.PyObject.__call__(PyObject.java:515)

at org.python.core.PyObject.__call__(PyObject.java:519)

at org.python.pycode._pyx99.f$0(:1)

at org.python.pycode._pyx99.call_function()

at org.python.core.PyTableCode.call(PyTableCode.java:171)

at org.python.core.PyCode.call(PyCode.java:18)

at org.python.core.Py.runCode(Py.java:1614)

at com.inductiveautomation.ignition.common.script.ScriptManager.runCode(ScriptManager.java:781)

at com.inductiveautomation.ignition.gateway.project.ProjectScriptLifecycle$TrackingProjectScriptManager.runCode(ProjectScriptLifecycle.java:678)

at com.inductiveautomation.ignition.common.script.ScriptManager.runCode(ScriptManager.java:729)

at com.inductiveautomation.ignition.gateway.project.ProjectScriptLifecycle$TrackingProjectScriptManager.runCode(ProjectScriptLifecycle.java:659)

at com.inductiveautomation.ignition.common.script.TimerScriptTask.run(TimerScriptTask.java:92)

at java.base/java.util.TimerThread.mainLoop(Unknown Source)

Gateway running on this vm :

Then i was wondering what can cause this warning i often see, and if is it something that i should try to fix:

Sounds like an upgrade would help you. From 8.1.3 changelog:

Use separate batches for writes to different OPC servers to prevent a slow-responding server from blocking an unrelated write to a fast-responding server.

2 Likes

Thank you very much Kevin,
I will upgrade then,
have a grate day

If you go into RSlinx and set up an OPC client there is a heartbeat bit in the default communication. As a second check you can write a variable in the PLC and have the Ignition write over it. Use a timer to assure that it was overwritten.