Hello im using Ignition 7.9 and ive encountered an error i dont really understand using a gateway tag change script. When i use memory tags for the tests, it works perfectly but with opc tags the script doesnt execute properly and shows that error. Can anyone give me a hand over this? thanks in advance.
this is the error
com.inductiveautomation.ignition.common.script.JythonExecException: Traceback (most recent call last): File "", line 36, in java.lang.NullPointerException java.lang.NullPointerException: java.lang.NullPointerException
at org.python.core.Py.JavaError(Py.java:495)
at org.python.core.Py.JavaError(Py.java:488)
at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:188)
at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:204)
at org.python.core.PyObject.__call__(PyObject.java:404)
at org.python.core.PyObject.__call__(PyObject.java:408)
at org.python.pycode._pyx138431.f$0(:50)
at org.python.pycode._pyx138431.call_function()
at org.python.core.PyTableCode.call(PyTableCode.java:165)
at org.python.core.PyCode.call(PyCode.java:18)
at org.python.core.Py.runCode(Py.java:1275)
at com.inductiveautomation.ignition.common.script.ScriptManager.runCode(ScriptManager.java:634)
at com.inductiveautomation.ignition.common.script.ScriptManager.runCode(ScriptManager.java:601)
at com.inductiveautomation.ignition.common.script.TagChangeScriptExecutor$TagChangeExecutionCallback.execute(TagChangeScriptExecutor.java:192)
at com.inductiveautomation.ignition.common.script.TagChangeScriptExecutor$TagChangeExecutionCallback.execute(TagChangeScriptExecutor.java:135)
at com.inductiveautomation.ignition.common.util.SerialExecutionQueue$PollAndExecute.run(SerialExecutionQueue.java:96)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.python.core.PyException: Traceback (most recent call last): File "", line 36, in java.lang.NullPointerException java.lang.NullPointerException: java.lang.NullPointerException
... 21 common frames omitted
and this is the script
if not initialChange:
tagpath = str(event.tagPath)
retort = tagpath[30:31]
action = tagpath[32:]
value = int(newValue.value)
datetimestamp = system.date.now()
database = project.constants.database()
cycletag = 'JEREZ/AUTOCLAVES/AUTOCLAVE' + retort + '/CYCLE'
cycle = system.tag.read(cycletag).value
if action == 'VALVLES/WATER': #This is the action 2 LLENADO MINIMO
minleveltag = 'JEREZ/AUTOCLAVES_ING/AUTOCLAVE' + retort + '/LEVELS/MIN_LEVEL'
minlevel = system.tag.read(minleveltag).value
if value and minlevel == 0:
#We have the water valve opened and the min level not reached.
query = '''
INSERT INTO RETORT_ACTIVITY (RETORT, CYCLE, SUBPHASE, STARTTIME)
VALUES (?, ?, ?, ?)
'''
args = [retort, cycle, 2, datetimestamp]
system.db.runPrepUpdate(query, args, database)
if action == 'LEVELS/MIN_LEVEL':
if value:
query = '''
SELECT MAX(STARTTIME) FROM RETORT_ACTIVITY
WHERE RETORT = ? AND SUBPHASE = 2 AND ENDTIME IS NULL
'''
args = [retort]
starttime = system.db.runScalarPrepQuery(query, args, database)
elapsedtime = system.date.secondsBetween(starttime, datetimestamp)
query = '''
UPDATE RETORT_ACTIVITY SET ENDTIME = ?, ELAPSED = ?
WHERE RETORT = ? AND SUBPHASE = 2 AND ENDTIME IS NULL
'''
args = [datetimestamp, elapsedtime, retort]
system.db.runPrepUpdate(query, args, database)