[SOLVED] Unable to use system.tag.writeAsync in the script console

Good afternoon,

I am unable to run the following code in the Script Console. Anyone know what I’m doing wrong?

def callBack(arr):
    pass

path = "[MEPS]MerLine/General/del"
value = 108
system.tag.writeAsync(path, value, callBack)

Gives me the following error.

Java Traceback:
Traceback (most recent call last):
File "<input>", line 6, in <module>
at com.inductiveautomation.ignition.common.TypeUtilities.coerce(TypeUtilities.java:1417)

at com.inductiveautomation.ignition.common.script.builtin.PyArgumentMap.coerce(PyArgumentMap.java:125)

at com.inductiveautomation.ignition.common.script.builtin.PyArgumentMap.interpretPyArgs(PyArgumentMap.java:81)

at com.inductiveautomation.ignition.common.script.builtin.PyArgumentMap.interpretPyArgs(PyArgumentMap.java:39)

at com.inductiveautomation.ignition.common.script.builtin.AbstractTagUtilities.writeAsync(AbstractTagUtilities.java:368)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

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

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

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

java.lang.ClassCastException: java.lang.ClassCastException: Cannot coerce value 
'[MEPS]MerLine/General/del' into type: interface java.util.List


at org.python.core.Py.JavaError(Py.java:552)

at org.python.core.Py.JavaError(Py.java:543)

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

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

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

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

at org.python.pycode._pyx12.f$0(<input>:6)

at org.python.pycode._pyx12.call_function(<input>)

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 org.python.core.Py.exec(Py.java:1658)

at org.python.util.PythonInterpreter.exec(PythonInterpreter.java:276)

at org.python.util.InteractiveInterpreter.runcode(InteractiveInterpreter.java:131)

at com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsoleWorker.doInBackground(JythonConsole.java:605)

at com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsoleWorker.doInBackground(JythonConsole.java:593)

at java.desktop/javax.swing.SwingWorker$1.call(Unknown Source)

at java.base/java.util.concurrent.FutureTask.run(Unknown Source)

at java.desktop/javax.swing.SwingWorker.run(Unknown Source)

at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.base/java.lang.Thread.run(Unknown Source)

Caused by: java.lang.ClassCastException: Cannot coerce value '[MEPS]MerLine/General/del' into type: interface java.util.List

at com.inductiveautomation.ignition.common.TypeUtilities.coerce(TypeUtilities.java:1417)

at com.inductiveautomation.ignition.common.script.builtin.PyArgumentMap.coerce(PyArgumentMap.java:125)

at com.inductiveautomation.ignition.common.script.builtin.PyArgumentMap.interpretPyArgs(PyArgumentMap.java:81)

at com.inductiveautomation.ignition.common.script.builtin.PyArgumentMap.interpretPyArgs(PyArgumentMap.java:39)

at com.inductiveautomation.ignition.common.script.builtin.AbstractTagUtilities.writeAsync(AbstractTagUtilities.java:368)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.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)

... 19 more

Traceback (most recent call last):
  File "<input>", line 6, in <module>
at com.inductiveautomation.ignition.common.TypeUtilities.coerce(TypeUtilities.java:1417)

at com.inductiveautomation.ignition.common.script.builtin.PyArgumentMap.coerce(PyArgumentMap.java:125)

at com.inductiveautomation.ignition.common.script.builtin.PyArgumentMap.interpretPyArgs(PyArgumentMap.java:81)

at com.inductiveautomation.ignition.common.script.builtin.PyArgumentMap.interpretPyArgs(PyArgumentMap.java:39)

at com.inductiveautomation.ignition.common.script.builtin.AbstractTagUtilities.writeAsync(AbstractTagUtilities.java:368)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

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

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

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

java.lang.ClassCastException: java.lang.ClassCastException: Cannot coerce value '[MEPS]MerLine/General/del' into type: interface java.util.List

writeAsync expects a list of paths and values.

Try this instead:

system.tag.writeAsync([path], [value], callBack)
1 Like

Thanks, I was looking at this way too long.